@aztec/stdlib 0.0.1-commit.c80b6263 → 0.0.1-commit.cb6bed7c2

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 (486) hide show
  1. package/dest/abi/decoder.d.ts +2 -2
  2. package/dest/abi/decoder.d.ts.map +1 -1
  3. package/dest/abi/decoder.js +7 -5
  4. package/dest/abi/encoder.d.ts +1 -1
  5. package/dest/abi/encoder.d.ts.map +1 -1
  6. package/dest/abi/encoder.js +37 -6
  7. package/dest/abi/event_metadata_definition.d.ts +3 -1
  8. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  9. package/dest/abi/event_metadata_definition.js +1 -1
  10. package/dest/abi/function_call.d.ts +39 -9
  11. package/dest/abi/function_call.d.ts.map +1 -1
  12. package/dest/abi/function_call.js +20 -3
  13. package/dest/abi/utils.d.ts +14 -1
  14. package/dest/abi/utils.d.ts.map +1 -1
  15. package/dest/abi/utils.js +15 -0
  16. package/dest/auth_witness/auth_witness.js +3 -3
  17. package/dest/avm/avm.d.ts +300 -300
  18. package/dest/avm/avm_proving_request.d.ts +166 -166
  19. package/dest/avm/revert_code.d.ts +16 -1
  20. package/dest/avm/revert_code.d.ts.map +1 -1
  21. package/dest/avm/revert_code.js +15 -5
  22. package/dest/block/block_data.d.ts +52 -0
  23. package/dest/block/block_data.d.ts.map +1 -0
  24. package/dest/block/block_data.js +12 -0
  25. package/dest/block/block_hash.d.ts +14 -17
  26. package/dest/block/block_hash.d.ts.map +1 -1
  27. package/dest/block/block_hash.js +21 -34
  28. package/dest/block/block_parameter.d.ts +2 -2
  29. package/dest/block/block_parameter.d.ts.map +1 -1
  30. package/dest/block/in_block.d.ts +5 -5
  31. package/dest/block/in_block.js +2 -2
  32. package/dest/block/index.d.ts +2 -1
  33. package/dest/block/index.d.ts.map +1 -1
  34. package/dest/block/index.js +1 -0
  35. package/dest/block/l2_block.d.ts +11 -2
  36. package/dest/block/l2_block.d.ts.map +1 -1
  37. package/dest/block/l2_block.js +14 -5
  38. package/dest/block/l2_block_source.d.ts +29 -4
  39. package/dest/block/l2_block_source.d.ts.map +1 -1
  40. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  41. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  42. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  43. package/dest/checkpoint/checkpoint.d.ts +22 -7
  44. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  45. package/dest/checkpoint/checkpoint.js +32 -16
  46. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  47. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  48. package/dest/checkpoint/checkpoint_data.js +26 -0
  49. package/dest/checkpoint/index.d.ts +3 -1
  50. package/dest/checkpoint/index.d.ts.map +1 -1
  51. package/dest/checkpoint/index.js +2 -0
  52. package/dest/checkpoint/published_checkpoint.d.ts +17 -2
  53. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  54. package/dest/checkpoint/published_checkpoint.js +1 -2
  55. package/dest/checkpoint/validate.d.ts +36 -0
  56. package/dest/checkpoint/validate.d.ts.map +1 -0
  57. package/dest/checkpoint/validate.js +120 -0
  58. package/dest/config/index.d.ts +2 -1
  59. package/dest/config/index.d.ts.map +1 -1
  60. package/dest/config/index.js +1 -0
  61. package/dest/config/sequencer-config.d.ts +12 -0
  62. package/dest/config/sequencer-config.d.ts.map +1 -0
  63. package/dest/config/sequencer-config.js +24 -0
  64. package/dest/contract/contract_address.js +4 -4
  65. package/dest/contract/contract_class.d.ts +2 -3
  66. package/dest/contract/contract_class.d.ts.map +1 -1
  67. package/dest/contract/contract_class_id.d.ts +2 -2
  68. package/dest/contract/contract_class_id.d.ts.map +1 -1
  69. package/dest/contract/contract_class_id.js +6 -5
  70. package/dest/contract/interfaces/node-info.d.ts +3 -1
  71. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  72. package/dest/contract/interfaces/node-info.js +2 -1
  73. package/dest/contract/private_function.js +2 -2
  74. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  75. package/dest/contract/private_function_membership_proof.js +1 -1
  76. package/dest/database-version/database_version.d.ts +58 -0
  77. package/dest/database-version/database_version.d.ts.map +1 -0
  78. package/dest/database-version/database_version.js +69 -0
  79. package/dest/database-version/version_manager.d.ts +2 -50
  80. package/dest/database-version/version_manager.d.ts.map +1 -1
  81. package/dest/database-version/version_manager.js +1 -66
  82. package/dest/epoch-helpers/index.d.ts +5 -1
  83. package/dest/epoch-helpers/index.d.ts.map +1 -1
  84. package/dest/epoch-helpers/index.js +4 -2
  85. package/dest/file-store/local.d.ts +3 -3
  86. package/dest/file-store/local.d.ts.map +1 -1
  87. package/dest/file-store/local.js +13 -4
  88. package/dest/file-store/s3.d.ts +1 -1
  89. package/dest/file-store/s3.d.ts.map +1 -1
  90. package/dest/file-store/s3.js +11 -3
  91. package/dest/gas/gas_fees.d.ts +1 -1
  92. package/dest/gas/gas_fees.d.ts.map +1 -1
  93. package/dest/gas/gas_fees.js +4 -1
  94. package/dest/ha-signing/config.d.ts +136 -0
  95. package/dest/ha-signing/config.d.ts.map +1 -0
  96. package/dest/ha-signing/config.js +97 -0
  97. package/dest/ha-signing/index.d.ts +4 -0
  98. package/dest/ha-signing/index.d.ts.map +1 -0
  99. package/dest/ha-signing/index.js +3 -0
  100. package/dest/ha-signing/local_config.d.ts +63 -0
  101. package/dest/ha-signing/local_config.d.ts.map +1 -0
  102. package/dest/ha-signing/local_config.js +24 -0
  103. package/dest/ha-signing/types.d.ts +85 -0
  104. package/dest/ha-signing/types.d.ts.map +1 -0
  105. package/dest/ha-signing/types.js +32 -0
  106. package/dest/hash/hash.d.ts +2 -1
  107. package/dest/hash/hash.d.ts.map +1 -1
  108. package/dest/hash/hash.js +16 -10
  109. package/dest/hash/map_slot.d.ts +1 -1
  110. package/dest/hash/map_slot.d.ts.map +1 -1
  111. package/dest/hash/map_slot.js +4 -3
  112. package/dest/interfaces/allowed_element.d.ts +26 -20
  113. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  114. package/dest/interfaces/allowed_element.js +8 -8
  115. package/dest/interfaces/archiver.d.ts +1 -1
  116. package/dest/interfaces/archiver.d.ts.map +1 -1
  117. package/dest/interfaces/archiver.js +10 -3
  118. package/dest/interfaces/aztec-node-admin.d.ts +115 -32
  119. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  120. package/dest/interfaces/aztec-node-admin.js +12 -4
  121. package/dest/interfaces/aztec-node.d.ts +40 -56
  122. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  123. package/dest/interfaces/aztec-node.js +6 -9
  124. package/dest/interfaces/block-builder.d.ts +19 -8
  125. package/dest/interfaces/block-builder.d.ts.map +1 -1
  126. package/dest/interfaces/block-builder.js +14 -2
  127. package/dest/interfaces/configs.d.ts +72 -32
  128. package/dest/interfaces/configs.d.ts.map +1 -1
  129. package/dest/interfaces/configs.js +9 -3
  130. package/dest/interfaces/get_logs_response.d.ts +14 -7
  131. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  132. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  133. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  134. package/dest/interfaces/p2p.d.ts +4 -9
  135. package/dest/interfaces/p2p.d.ts.map +1 -1
  136. package/dest/interfaces/prover-broker.d.ts +16 -1
  137. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  138. package/dest/interfaces/prover-broker.js +4 -1
  139. package/dest/interfaces/prover-client.d.ts +6 -1
  140. package/dest/interfaces/prover-client.d.ts.map +1 -1
  141. package/dest/interfaces/prover-client.js +5 -0
  142. package/dest/interfaces/proving-job.d.ts +202 -202
  143. package/dest/interfaces/slasher.d.ts +9 -1
  144. package/dest/interfaces/slasher.d.ts.map +1 -1
  145. package/dest/interfaces/slasher.js +2 -0
  146. package/dest/interfaces/validator.d.ts +148 -40
  147. package/dest/interfaces/validator.d.ts.map +1 -1
  148. package/dest/interfaces/validator.js +11 -4
  149. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  150. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  151. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  152. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  153. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  154. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  155. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  156. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  157. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  158. package/dest/kernel/hints/index.d.ts +2 -2
  159. package/dest/kernel/hints/index.js +2 -2
  160. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  161. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  162. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  163. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  164. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  165. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  166. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  167. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  168. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  169. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  170. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  171. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  172. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  173. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  174. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  175. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  176. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  177. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  178. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  179. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  180. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  181. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  182. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  183. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  184. package/dest/kernel/private_validation_requests.d.ts +3 -3
  185. package/dest/kernel/private_validation_requests.js +9 -9
  186. package/dest/keys/derivation.d.ts +3 -3
  187. package/dest/keys/derivation.js +15 -15
  188. package/dest/keys/key_types.d.ts +3 -3
  189. package/dest/keys/key_types.d.ts.map +1 -1
  190. package/dest/keys/public_keys.js +2 -2
  191. package/dest/keys/utils.d.ts +1 -1
  192. package/dest/keys/utils.d.ts.map +1 -1
  193. package/dest/keys/utils.js +8 -4
  194. package/dest/kv-store/config.d.ts +17 -0
  195. package/dest/kv-store/config.d.ts.map +1 -0
  196. package/dest/kv-store/config.js +26 -0
  197. package/dest/kv-store/index.d.ts +2 -0
  198. package/dest/kv-store/index.d.ts.map +1 -0
  199. package/dest/kv-store/index.js +1 -0
  200. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  201. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  202. package/dest/l1-contracts/slash_factory.js +1 -0
  203. package/dest/logs/debug_log_store.d.ts +30 -0
  204. package/dest/logs/debug_log_store.d.ts.map +1 -0
  205. package/dest/logs/debug_log_store.js +30 -0
  206. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  207. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  208. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  209. package/dest/logs/extended_public_log.d.ts +12 -6
  210. package/dest/logs/extended_public_log.d.ts.map +1 -1
  211. package/dest/logs/index.d.ts +3 -2
  212. package/dest/logs/index.d.ts.map +1 -1
  213. package/dest/logs/index.js +2 -1
  214. package/dest/logs/log_id.d.ts +13 -10
  215. package/dest/logs/log_id.d.ts.map +1 -1
  216. package/dest/logs/log_id.js +17 -14
  217. package/dest/logs/pre_tag.d.ts +16 -11
  218. package/dest/logs/pre_tag.d.ts.map +1 -1
  219. package/dest/logs/pre_tag.js +2 -2
  220. package/dest/logs/private_log.d.ts +2 -2
  221. package/dest/logs/private_log.d.ts.map +1 -1
  222. package/dest/logs/public_log.d.ts +4 -3
  223. package/dest/logs/public_log.d.ts.map +1 -1
  224. package/dest/logs/public_log.js +2 -1
  225. package/dest/logs/siloed_tag.d.ts +5 -3
  226. package/dest/logs/siloed_tag.d.ts.map +1 -1
  227. package/dest/logs/siloed_tag.js +8 -6
  228. package/dest/logs/tag.js +1 -1
  229. package/dest/messaging/l2_to_l1_membership.d.ts +2 -2
  230. package/dest/messaging/l2_to_l1_membership.js +3 -3
  231. package/dest/note/index.d.ts +1 -2
  232. package/dest/note/index.d.ts.map +1 -1
  233. package/dest/note/index.js +0 -1
  234. package/dest/p2p/attestation_utils.d.ts +11 -1
  235. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  236. package/dest/p2p/attestation_utils.js +45 -0
  237. package/dest/p2p/block_proposal.d.ts +2 -2
  238. package/dest/p2p/block_proposal.d.ts.map +1 -1
  239. package/dest/p2p/block_proposal.js +2 -4
  240. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  241. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  242. package/dest/p2p/checkpoint_attestation.js +1 -1
  243. package/dest/p2p/checkpoint_proposal.d.ts +18 -11
  244. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  245. package/dest/p2p/checkpoint_proposal.js +30 -28
  246. package/dest/p2p/client_type.d.ts +2 -5
  247. package/dest/p2p/client_type.d.ts.map +1 -1
  248. package/dest/p2p/client_type.js +0 -7
  249. package/dest/p2p/consensus_payload.d.ts +12 -3
  250. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  251. package/dest/p2p/consensus_payload.js +22 -15
  252. package/dest/p2p/constants.d.ts +3 -1
  253. package/dest/p2p/constants.d.ts.map +1 -1
  254. package/dest/p2p/constants.js +1 -0
  255. package/dest/p2p/index.d.ts +1 -2
  256. package/dest/p2p/index.d.ts.map +1 -1
  257. package/dest/p2p/index.js +0 -1
  258. package/dest/p2p/peer_error.d.ts +3 -1
  259. package/dest/p2p/peer_error.d.ts.map +1 -1
  260. package/dest/p2p/peer_error.js +5 -0
  261. package/dest/p2p/topic_type.d.ts +3 -4
  262. package/dest/p2p/topic_type.d.ts.map +1 -1
  263. package/dest/p2p/topic_type.js +7 -24
  264. package/dest/rollup/checkpoint_header.d.ts +2 -2
  265. package/dest/rollup/checkpoint_header.js +2 -2
  266. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  267. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  268. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  269. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  270. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  271. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  272. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  273. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  274. package/dest/slashing/empire.d.ts +1 -1
  275. package/dest/slashing/empire.d.ts.map +1 -1
  276. package/dest/slashing/empire.js +2 -0
  277. package/dest/slashing/helpers.d.ts +2 -2
  278. package/dest/slashing/helpers.d.ts.map +1 -1
  279. package/dest/slashing/helpers.js +6 -0
  280. package/dest/slashing/tally.d.ts +8 -2
  281. package/dest/slashing/tally.d.ts.map +1 -1
  282. package/dest/slashing/tally.js +35 -3
  283. package/dest/slashing/types.d.ts +7 -3
  284. package/dest/slashing/types.d.ts.map +1 -1
  285. package/dest/slashing/types.js +13 -1
  286. package/dest/stats/stats.d.ts +1 -3
  287. package/dest/stats/stats.d.ts.map +1 -1
  288. package/dest/tests/factories.d.ts +3 -1
  289. package/dest/tests/factories.d.ts.map +1 -1
  290. package/dest/tests/factories.js +21 -13
  291. package/dest/tests/mocks.d.ts +8 -3
  292. package/dest/tests/mocks.d.ts.map +1 -1
  293. package/dest/tests/mocks.js +31 -21
  294. package/dest/timetable/index.d.ts +37 -0
  295. package/dest/timetable/index.d.ts.map +1 -0
  296. package/dest/timetable/index.js +39 -0
  297. package/dest/trees/public_data_leaf.d.ts +2 -1
  298. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  299. package/dest/trees/public_data_leaf.js +7 -6
  300. package/dest/tx/block_header.d.ts +3 -1
  301. package/dest/tx/block_header.d.ts.map +1 -1
  302. package/dest/tx/block_header.js +7 -3
  303. package/dest/tx/global_variables.d.ts +4 -4
  304. package/dest/tx/global_variables.d.ts.map +1 -1
  305. package/dest/tx/in_tx.d.ts +2 -2
  306. package/dest/tx/indexed_tx_effect.d.ts +3 -3
  307. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  308. package/dest/tx/indexed_tx_effect.js +2 -1
  309. package/dest/tx/profiling.d.ts +4 -4
  310. package/dest/tx/profiling.d.ts.map +1 -1
  311. package/dest/tx/profiling.js +3 -3
  312. package/dest/tx/protocol_contracts.d.ts +1 -1
  313. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  314. package/dest/tx/protocol_contracts.js +2 -2
  315. package/dest/tx/public_simulation_output.d.ts +4 -2
  316. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  317. package/dest/tx/public_simulation_output.js +7 -3
  318. package/dest/tx/simulated_tx.d.ts +5 -2
  319. package/dest/tx/simulated_tx.d.ts.map +1 -1
  320. package/dest/tx/simulated_tx.js +4 -1
  321. package/dest/tx/tx.d.ts +6 -5
  322. package/dest/tx/tx.d.ts.map +1 -1
  323. package/dest/tx/tx.js +18 -6
  324. package/dest/tx/tx_receipt.d.ts +16 -2
  325. package/dest/tx/tx_receipt.d.ts.map +1 -1
  326. package/dest/tx/tx_receipt.js +11 -3
  327. package/dest/tx/tx_request.js +2 -2
  328. package/dest/tx/validator/empty_validator.d.ts +2 -2
  329. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  330. package/dest/tx/validator/error_texts.d.ts +6 -2
  331. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  332. package/dest/tx/validator/error_texts.js +5 -1
  333. package/dest/tx/validator/tx_validator.d.ts +2 -2
  334. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  335. package/dest/update-checker/index.d.ts +3 -2
  336. package/dest/update-checker/index.d.ts.map +1 -1
  337. package/dest/update-checker/index.js +2 -1
  338. package/dest/update-checker/package_version.d.ts +3 -0
  339. package/dest/update-checker/package_version.d.ts.map +1 -0
  340. package/dest/update-checker/package_version.js +11 -0
  341. package/dest/update-checker/version_checker.d.ts +25 -0
  342. package/dest/update-checker/version_checker.d.ts.map +1 -0
  343. package/dest/update-checker/version_checker.js +50 -0
  344. package/dest/validators/schemas.d.ts +30 -30
  345. package/dest/validators/schemas.d.ts.map +1 -1
  346. package/dest/validators/schemas.js +4 -3
  347. package/dest/validators/types.d.ts +3 -3
  348. package/dest/validators/types.d.ts.map +1 -1
  349. package/package.json +26 -13
  350. package/src/abi/decoder.ts +15 -6
  351. package/src/abi/encoder.ts +49 -6
  352. package/src/abi/event_metadata_definition.ts +2 -0
  353. package/src/abi/function_call.ts +25 -3
  354. package/src/abi/utils.ts +25 -0
  355. package/src/auth_witness/auth_witness.ts +3 -3
  356. package/src/avm/revert_code.ts +15 -0
  357. package/src/block/block_data.ts +26 -0
  358. package/src/block/block_hash.ts +25 -50
  359. package/src/block/in_block.ts +2 -2
  360. package/src/block/index.ts +1 -0
  361. package/src/block/l2_block.ts +16 -4
  362. package/src/block/l2_block_source.ts +32 -3
  363. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  364. package/src/checkpoint/checkpoint.ts +43 -16
  365. package/src/checkpoint/checkpoint_data.ts +51 -0
  366. package/src/checkpoint/index.ts +2 -0
  367. package/src/checkpoint/published_checkpoint.ts +3 -1
  368. package/src/checkpoint/validate.ts +230 -0
  369. package/src/config/index.ts +1 -0
  370. package/src/config/sequencer-config.ts +37 -0
  371. package/src/contract/contract_address.ts +4 -4
  372. package/src/contract/contract_class.ts +3 -3
  373. package/src/contract/contract_class_id.ts +6 -5
  374. package/src/contract/interfaces/node-info.ts +3 -0
  375. package/src/contract/private_function.ts +2 -2
  376. package/src/contract/private_function_membership_proof.ts +1 -1
  377. package/src/database-version/database_version.ts +87 -0
  378. package/src/database-version/version_manager.ts +1 -77
  379. package/src/epoch-helpers/index.ts +3 -0
  380. package/src/file-store/local.ts +15 -5
  381. package/src/file-store/s3.ts +12 -3
  382. package/src/gas/gas_fees.ts +7 -1
  383. package/src/ha-signing/config.ts +156 -0
  384. package/src/ha-signing/index.ts +27 -0
  385. package/src/ha-signing/local_config.ts +46 -0
  386. package/src/ha-signing/types.ts +112 -0
  387. package/src/hash/hash.ts +14 -10
  388. package/src/hash/map_slot.ts +3 -2
  389. package/src/interfaces/allowed_element.ts +29 -9
  390. package/src/interfaces/archiver.ts +10 -3
  391. package/src/interfaces/aztec-node-admin.ts +26 -2
  392. package/src/interfaces/aztec-node.ts +52 -93
  393. package/src/interfaces/block-builder.ts +36 -7
  394. package/src/interfaces/configs.ts +33 -8
  395. package/src/interfaces/merkle_tree_operations.ts +1 -1
  396. package/src/interfaces/p2p.ts +3 -14
  397. package/src/interfaces/prover-broker.ts +22 -0
  398. package/src/interfaces/prover-client.ts +7 -0
  399. package/src/interfaces/slasher.ts +4 -0
  400. package/src/interfaces/validator.ts +59 -27
  401. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  402. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  403. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  404. package/src/kernel/hints/index.ts +2 -2
  405. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  406. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  407. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  408. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  409. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  410. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  411. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  412. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  413. package/src/kernel/private_validation_requests.ts +8 -8
  414. package/src/keys/derivation.ts +15 -15
  415. package/src/keys/key_types.ts +6 -2
  416. package/src/keys/public_keys.ts +2 -2
  417. package/src/keys/utils.ts +8 -4
  418. package/src/kv-store/config.ts +36 -0
  419. package/src/kv-store/index.ts +1 -0
  420. package/src/l1-contracts/slash_factory.ts +1 -0
  421. package/src/logs/debug_log_store.ts +54 -0
  422. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  423. package/src/logs/index.ts +2 -1
  424. package/src/logs/log_id.ts +17 -13
  425. package/src/logs/pre_tag.ts +5 -5
  426. package/src/logs/public_log.ts +4 -2
  427. package/src/logs/siloed_tag.ts +10 -4
  428. package/src/logs/tag.ts +1 -1
  429. package/src/messaging/l2_to_l1_membership.ts +3 -3
  430. package/src/note/index.ts +0 -1
  431. package/src/p2p/attestation_utils.ts +56 -0
  432. package/src/p2p/block_proposal.ts +1 -3
  433. package/src/p2p/checkpoint_attestation.ts +6 -1
  434. package/src/p2p/checkpoint_proposal.ts +46 -31
  435. package/src/p2p/client_type.ts +0 -6
  436. package/src/p2p/consensus_payload.ts +25 -12
  437. package/src/p2p/constants.ts +3 -0
  438. package/src/p2p/index.ts +0 -1
  439. package/src/p2p/peer_error.ts +7 -0
  440. package/src/p2p/topic_type.ts +8 -15
  441. package/src/rollup/checkpoint_header.ts +2 -2
  442. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  443. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  444. package/src/slashing/empire.ts +3 -1
  445. package/src/slashing/helpers.ts +8 -0
  446. package/src/slashing/tally.ts +41 -2
  447. package/src/slashing/types.ts +14 -0
  448. package/src/stats/stats.ts +0 -2
  449. package/src/tests/factories.ts +26 -17
  450. package/src/tests/mocks.ts +46 -20
  451. package/src/timetable/index.ts +66 -0
  452. package/src/trees/public_data_leaf.ts +11 -5
  453. package/src/tx/block_header.ts +10 -4
  454. package/src/tx/global_variables.ts +3 -3
  455. package/src/tx/indexed_tx_effect.ts +2 -1
  456. package/src/tx/profiling.ts +5 -5
  457. package/src/tx/protocol_contracts.ts +2 -2
  458. package/src/tx/public_simulation_output.ts +4 -0
  459. package/src/tx/simulated_tx.ts +8 -1
  460. package/src/tx/tx.ts +20 -11
  461. package/src/tx/tx_receipt.ts +10 -0
  462. package/src/tx/tx_request.ts +2 -2
  463. package/src/tx/validator/empty_validator.ts +1 -1
  464. package/src/tx/validator/error_texts.ts +5 -1
  465. package/src/tx/validator/tx_validator.ts +1 -1
  466. package/src/update-checker/index.ts +2 -1
  467. package/src/update-checker/package_version.ts +17 -0
  468. package/src/update-checker/version_checker.ts +65 -0
  469. package/src/validators/schemas.ts +8 -1
  470. package/src/validators/types.ts +5 -4
  471. package/dest/database-version/index.d.ts +0 -2
  472. package/dest/database-version/index.d.ts.map +0 -1
  473. package/dest/database-version/index.js +0 -1
  474. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  475. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  476. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  477. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  478. package/dest/note/notes_filter.d.ts +0 -27
  479. package/dest/note/notes_filter.d.ts.map +0 -1
  480. package/dest/note/notes_filter.js +0 -11
  481. package/dest/update-checker/update-checker.d.ts +0 -49
  482. package/dest/update-checker/update-checker.d.ts.map +0 -1
  483. package/dest/update-checker/update-checker.js +0 -130
  484. package/src/database-version/index.ts +0 -1
  485. package/src/note/notes_filter.ts +0 -38
  486. package/src/update-checker/update-checker.ts +0 -166
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/validators/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,2BAA2B,wGAEvC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;WAOxC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;oBAAwC,CAAC;AAEvF,eAAO,MAAM,+BAA+B;;;;;;;;;;;qBAA8C,CAAC;AAiB3F,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/validators/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,2BAA2B,wIASvC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;WAOxC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;oBAAwC,CAAC;AAEvF,eAAO,MAAM,+BAA+B;;;;;;;;;;;qBAA8C,CAAC;AAiB3F,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActC,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { schemas, zodFor } from '@aztec/foundation/schemas';
2
2
  import { z } from 'zod';
3
3
  export const ValidatorStatusInSlotSchema = zodFor()(z.enum([
4
- 'block-mined',
5
- 'block-proposed',
6
- 'block-missed',
4
+ 'checkpoint-mined',
5
+ 'checkpoint-proposed',
6
+ 'checkpoint-missed',
7
+ 'blocks-missed',
7
8
  'attestation-sent',
8
9
  'attestation-missed'
9
10
  ]));
@@ -1,7 +1,7 @@
1
1
  import type { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
3
- export type ValidatorStatusType = 'block' | 'attestation';
4
- export type ValidatorStatusInSlot = 'block-mined' | 'block-proposed' | 'block-missed' | 'attestation-sent' | 'attestation-missed';
3
+ export type ValidatorStatusType = 'proposer' | 'attestation';
4
+ export type ValidatorStatusInSlot = 'checkpoint-mined' | 'checkpoint-proposed' | 'checkpoint-missed' | 'blocks-missed' | 'attestation-sent' | 'attestation-missed';
5
5
  export type ValidatorStatusHistory = {
6
6
  slot: SlotNumber;
7
7
  status: ValidatorStatusInSlot;
@@ -50,4 +50,4 @@ export type SingleValidatorStats = {
50
50
  initialSlot?: SlotNumber;
51
51
  slotWindow: number;
52
52
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxNQUFNLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxHQUFHLGFBQWEsQ0FBQztBQUUxRCxNQUFNLE1BQU0scUJBQXFCLEdBQzdCLGFBQWEsR0FDYixnQkFBZ0IsR0FDaEIsY0FBYyxHQUNkLGtCQUFrQixHQUNsQixvQkFBb0IsQ0FBQztBQUV6QixNQUFNLE1BQU0sc0JBQXNCLEdBQUc7SUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDO0lBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFBO0NBQUUsRUFBRSxDQUFDO0FBRTNGLE1BQU0sTUFBTSxvQkFBb0IsR0FBRztJQUNqQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNkLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDO0NBQ2YsQ0FBQztBQUVGLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNwQixZQUFZLENBQUMsRUFBRTtRQUFFLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUM7SUFDckUsZUFBZSxDQUFDLEVBQUU7UUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO1FBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQztRQUFDLElBQUksRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQ3hFLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsZUFBZSxFQUFFLG9CQUFvQixDQUFDO0lBQ3RDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO0lBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQztDQUNqQyxDQUFDO0FBRUYsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0QyxpQkFBaUIsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUMvQixXQUFXLENBQUMsRUFBRSxVQUFVLENBQUM7SUFDekIsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQixDQUFDO0FBRUYsTUFBTSxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxLQUFLLE1BQU0sRUFBRSxFQUFFO0lBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUFDLEtBQUssRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDLENBQUM7QUFFbEcsTUFBTSxNQUFNLG9CQUFvQixHQUFHO0lBQ2pDLFNBQVMsRUFBRSxjQUFjLENBQUM7SUFDMUIsd0JBQXdCLEVBQUU7UUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUFDLEtBQUssRUFBRSxXQUFXLENBQUE7S0FBRSxFQUFFLENBQUM7SUFDbEYsaUJBQWlCLENBQUMsRUFBRSxVQUFVLENBQUM7SUFDL0IsV0FBVyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ3pCLFVBQVUsRUFBRSxNQUFNLENBQUM7Q0FDcEIsQ0FBQyJ9
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxNQUFNLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxHQUFHLGFBQWEsQ0FBQztBQUU3RCxNQUFNLE1BQU0scUJBQXFCLEdBQzdCLGtCQUFrQixHQUNsQixxQkFBcUIsR0FDckIsbUJBQW1CLEdBQ25CLGVBQWUsR0FDZixrQkFBa0IsR0FDbEIsb0JBQW9CLENBQUM7QUFFekIsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQztJQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQTtDQUFFLEVBQUUsQ0FBQztBQUUzRixNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsS0FBSyxFQUFFLE1BQU0sQ0FBQztDQUNmLENBQUM7QUFFRixNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQzNCLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFDcEIsWUFBWSxDQUFDLEVBQUU7UUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO1FBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQztRQUFDLElBQUksRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQ3JFLGVBQWUsQ0FBQyxFQUFFO1FBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUFDLElBQUksRUFBRSxVQUFVLENBQUM7UUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztJQUN4RSxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQztJQUN0QyxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQztJQUN6QyxPQUFPLEVBQUUsc0JBQXNCLENBQUM7Q0FDakMsQ0FBQztBQUVGLE1BQU0sTUFBTSxlQUFlLEdBQUc7SUFDNUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdEMsaUJBQWlCLENBQUMsRUFBRSxVQUFVLENBQUM7SUFDL0IsV0FBVyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ3pCLFVBQVUsRUFBRSxNQUFNLENBQUM7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sTUFBTSwwQkFBMEIsR0FBRyxNQUFNLENBQUMsS0FBSyxNQUFNLEVBQUUsRUFBRTtJQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQyxDQUFDO0FBRWxHLE1BQU0sTUFBTSxvQkFBb0IsR0FBRztJQUNqQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQzFCLHdCQUF3QixFQUFFO1FBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLEVBQUUsV0FBVyxDQUFBO0tBQUUsRUFBRSxDQUFDO0lBQ2xGLGlCQUFpQixDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQy9CLFdBQVcsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUN6QixVQUFVLEVBQUUsTUFBTSxDQUFDO0NBQ3BCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAE3F,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,oBAAoB,CAAC;IACtC,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAElG,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,cAAc,CAAC;IAC1B,wBAAwB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,EAAE,CAAC;IAClF,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,aAAa,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,qBAAqB,GACrB,mBAAmB,GACnB,eAAe,GACf,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAE3F,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,oBAAoB,CAAC;IACtC,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAElG,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,cAAc,CAAC;IAC1B,wBAAwB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,EAAE,CAAC;IAClF,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "0.0.1-commit.c80b6263",
3
+ "version": "0.0.1-commit.cb6bed7c2",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -52,19 +52,33 @@
52
52
  "./epoch-helpers": "./dest/epoch-helpers/index.js",
53
53
  "./config": "./dest/config/index.js",
54
54
  "./testing/jest": "./dest/tests/jest.js",
55
- "./database-version": "./dest/database-version/index.js",
55
+ "./database-version/version": "./dest/database-version/database_version.js",
56
+ "./database-version/manager": "./dest/database-version/version_manager.js",
56
57
  "./validators": "./dest/validators/index.js",
58
+ "./ha-signing": "./dest/ha-signing/index.js",
57
59
  "./file-store": "./dest/file-store/index.js",
58
60
  "./snapshots": "./dest/snapshots/index.js",
59
61
  "./update-checker": "./dest/update-checker/index.js",
60
62
  "./zkpassport": "./dest/zkpassport/index.js",
61
63
  "./slashing": "./dest/slashing/index.js",
62
64
  "./l1-contracts": "./dest/l1-contracts/index.js",
63
- "./world-state": "./dest/world-state/index.js"
65
+ "./world-state": "./dest/world-state/index.js",
66
+ "./timetable": "./dest/timetable/index.js",
67
+ "./kv-store": "./dest/kv-store/index.js"
64
68
  },
65
69
  "typedocOptions": {
66
70
  "entryPoints": [
67
- "./src/index.ts"
71
+ "./src/abi/index.ts",
72
+ "./src/aztec-address/index.ts",
73
+ "./src/block/index.ts",
74
+ "./src/contract/index.ts",
75
+ "./src/gas/index.ts",
76
+ "./src/hash/index.ts",
77
+ "./src/keys/index.ts",
78
+ "./src/logs/index.ts",
79
+ "./src/note/index.ts",
80
+ "./src/proofs/index.ts",
81
+ "./src/tx/index.ts"
68
82
  ],
69
83
  "name": "stdlib",
70
84
  "tsconfig": "./tsconfig.json"
@@ -78,16 +92,15 @@
78
92
  },
79
93
  "dependencies": {
80
94
  "@aws-sdk/client-s3": "^3.892.0",
81
- "@aztec/bb.js": "0.0.1-commit.c80b6263",
82
- "@aztec/blob-lib": "0.0.1-commit.c80b6263",
83
- "@aztec/constants": "0.0.1-commit.c80b6263",
84
- "@aztec/ethereum": "0.0.1-commit.c80b6263",
85
- "@aztec/foundation": "0.0.1-commit.c80b6263",
86
- "@aztec/l1-artifacts": "0.0.1-commit.c80b6263",
87
- "@aztec/noir-noirc_abi": "0.0.1-commit.c80b6263",
88
- "@aztec/validator-ha-signer": "0.0.1-commit.c80b6263",
95
+ "@aztec/bb.js": "0.0.1-commit.cb6bed7c2",
96
+ "@aztec/blob-lib": "0.0.1-commit.cb6bed7c2",
97
+ "@aztec/constants": "0.0.1-commit.cb6bed7c2",
98
+ "@aztec/ethereum": "0.0.1-commit.cb6bed7c2",
99
+ "@aztec/foundation": "0.0.1-commit.cb6bed7c2",
100
+ "@aztec/l1-artifacts": "0.0.1-commit.cb6bed7c2",
101
+ "@aztec/noir-noirc_abi": "0.0.1-commit.cb6bed7c2",
89
102
  "@google-cloud/storage": "^7.15.0",
90
- "axios": "^1.12.0",
103
+ "axios": "^1.13.5",
91
104
  "json-stringify-deterministic": "1.0.12",
92
105
  "lodash.chunk": "^4.2.0",
93
106
  "lodash.isequal": "^4.5.0",
@@ -2,12 +2,19 @@ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
 
3
3
  import { AztecAddress } from '../aztec-address/index.js';
4
4
  import type { ABIParameter, ABIVariable, AbiType } from './abi.js';
5
- import { isAztecAddressStruct, parseSignedInt } from './utils.js';
5
+ import { isAztecAddressStruct, isOptionStruct, parseSignedInt } from './utils.js';
6
6
 
7
7
  /**
8
8
  * The type of our decoded ABI.
9
9
  */
10
- export type AbiDecoded = bigint | boolean | string | AztecAddress | AbiDecoded[] | { [key: string]: AbiDecoded };
10
+ export type AbiDecoded =
11
+ | bigint
12
+ | boolean
13
+ | string
14
+ | AztecAddress
15
+ | AbiDecoded[]
16
+ | { [key: string]: AbiDecoded }
17
+ | undefined;
11
18
 
12
19
  /**
13
20
  * Decodes values using a provided ABI.
@@ -51,6 +58,11 @@ class AbiDecoder {
51
58
  if (isAztecAddressStruct(abiType)) {
52
59
  return new AztecAddress(this.getNextField().toBuffer());
53
60
  }
61
+ if (isOptionStruct(abiType)) {
62
+ const isSome = this.decodeNext(abiType.fields[0].type);
63
+ const value = this.decodeNext(abiType.fields[1].type);
64
+ return isSome ? value : undefined;
65
+ }
54
66
 
55
67
  for (const field of abiType.fields) {
56
68
  struct[field.name] = this.decodeNext(field.type);
@@ -135,10 +147,7 @@ export class FunctionSignatureDecoder {
135
147
  case 'field':
136
148
  return 'Field';
137
149
  case 'integer':
138
- if (param.sign === 'signed') {
139
- throw new Error('Unsupported type: signed integer');
140
- }
141
- return `u${param.width}`;
150
+ return param.sign === 'signed' ? `i${param.width}` : `u${param.width}`;
142
151
  case 'boolean':
143
152
  return 'bool';
144
153
  case 'array':
@@ -1,7 +1,13 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
 
3
3
  import type { AbiType, FunctionAbi } from './abi.js';
4
- import { isAddressStruct, isBoundedVecStruct, isFunctionSelectorStruct, isWrappedFieldStruct } from './utils.js';
4
+ import {
5
+ isAddressStruct,
6
+ isBoundedVecStruct,
7
+ isFunctionSelectorStruct,
8
+ isOptionStruct,
9
+ isWrappedFieldStruct,
10
+ } from './utils.js';
5
11
 
6
12
  /**
7
13
  * Encodes arguments for a function call.
@@ -43,6 +49,32 @@ class ArgumentEncoder {
43
49
  * @param name - Name.
44
50
  */
45
51
  private encodeArgument(abiType: AbiType, arg: any, name?: string) {
52
+ if (isOptionStruct(abiType)) {
53
+ const optionType = abiType as Extract<AbiType, { kind: 'struct' }>;
54
+ const [isSomeField, valueField] = optionType.fields;
55
+
56
+ if (arg === undefined || arg === null) {
57
+ this.encodeArgument(isSomeField.type, false, `${name}._is_some`);
58
+ this.#encodeDefaultValue(valueField.type);
59
+ return;
60
+ }
61
+
62
+ if (typeof arg === 'object' && '_is_some' in arg) {
63
+ this.encodeArgument(isSomeField.type, arg._is_some, `${name}._is_some`);
64
+
65
+ if (arg._is_some) {
66
+ this.encodeArgument(valueField.type, arg._value, `${name}._value`);
67
+ } else {
68
+ this.#encodeDefaultValue(valueField.type);
69
+ }
70
+ return;
71
+ }
72
+
73
+ this.encodeArgument(isSomeField.type, true, `${name}._is_some`);
74
+ this.encodeArgument(valueField.type, arg, `${name}._value`);
75
+ return;
76
+ }
77
+
46
78
  if (arg === undefined || arg == null) {
47
79
  throw new Error(`Undefined argument ${name ?? 'unnamed'} of type ${abiType.kind}`);
48
80
  }
@@ -123,14 +155,17 @@ class ArgumentEncoder {
123
155
  }
124
156
  break;
125
157
  }
126
- case 'integer':
127
- if (typeof arg === 'string') {
128
- const value = BigInt(arg);
129
- this.flattened.push(new Fr(value));
158
+ case 'integer': {
159
+ const value = BigInt(arg);
160
+ if (abiType.sign === 'signed' && value < 0n) {
161
+ // Convert negative values to two's complement representation
162
+ const twosComplement = value + (1n << BigInt(abiType.width));
163
+ this.flattened.push(new Fr(twosComplement));
130
164
  } else {
131
- this.flattened.push(new Fr(arg));
165
+ this.flattened.push(new Fr(value));
132
166
  }
133
167
  break;
168
+ }
134
169
  default:
135
170
  throw new Error(`Unsupported type: ${abiType.kind}`);
136
171
  }
@@ -224,6 +259,14 @@ class ArgumentEncoder {
224
259
  this.encodeArgument(lenField.type, arg.length, 'len');
225
260
  }
226
261
  }
262
+
263
+ /**
264
+ * Appends the flattened zero value for an ABI type.
265
+ * Option::None still serializes the wrapped value, so we need to zero-fill its footprint.
266
+ */
267
+ #encodeDefaultValue(abiType: AbiType) {
268
+ this.flattened.push(...new Array(ArgumentEncoder.typeSize(abiType)).fill(Fr.ZERO));
269
+ }
227
270
  }
228
271
 
229
272
  /**
@@ -1,8 +1,10 @@
1
1
  import type { AbiType } from './abi.js';
2
2
  import type { EventSelector } from './event_selector.js';
3
3
 
4
+ /** Metadata for a contract event, used to decode emitted event logs back into structured data. */
4
5
  export type EventMetadataDefinition = {
5
6
  eventSelector: EventSelector;
6
7
  abiType: AbiType;
8
+ /** Names of the event's struct members (not serialized Noir Field elements). */
7
9
  fieldNames: string[];
8
10
  };
@@ -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,70 +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 BlockHash 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 BlockHash 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 BlockHash {
22
- if (value instanceof BlockHash) {
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 BlockHash(Fr.random().toBuffer());
40
- }
10
+ /** Hash of an L2 block. */
11
+ export class BlockHash extends Fr {
12
+ readonly [BLOCK_HASH_BRAND] = true as const;
41
13
 
42
- static override fromNumber(num: number): BlockHash {
43
- return new BlockHash(super.fromNumber(num).toBuffer());
14
+ constructor(hash: Fr) {
15
+ super(hash);
44
16
  }
45
17
 
46
- static override fromBuffer(buffer: Buffer | BufferReader) {
47
- const reader = BufferReader.asReader(buffer);
48
- return new BlockHash(reader.readBytes(BlockHash.SIZE));
18
+ override [inspect.custom]() {
19
+ return `BlockHash<${this.toString()}>`;
49
20
  }
50
21
 
51
- static override fromString(str: string): BlockHash {
52
- return new BlockHash(super.fromString(str).toBuffer());
22
+ toFr(): Fr {
23
+ return new Fr(this.toBigInt());
53
24
  }
54
25
 
55
- static get schema() {
56
- return schemas.BufferHex.transform(value => new BlockHash(value));
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;
57
32
  }
58
33
 
59
- static zero() {
60
- return new BlockHash(Buffer32.ZERO.toBuffer());
34
+ static override random() {
35
+ return new BlockHash(Fr.random());
61
36
  }
62
37
 
63
- static override fromField(hash: Fr) {
64
- return new BlockHash(hash.toBuffer());
38
+ static override fromString(str: string): BlockHash {
39
+ return new BlockHash(Fr.fromString(str));
65
40
  }
66
41
 
67
- toField(): Fr {
68
- return Fr.fromBuffer(this.toBuffer());
42
+ static override get schema() {
43
+ return hexSchemaFor(BlockHash) as ZodFor<BlockHash>;
69
44
  }
70
45
  }
@@ -17,7 +17,7 @@ export type DataInBlock<T> = {
17
17
 
18
18
  export function randomInBlock(): InBlock {
19
19
  return {
20
- l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000)),
20
+ l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000) + 1),
21
21
  l2BlockHash: BlockHash.random(),
22
22
  };
23
23
  }
@@ -33,7 +33,7 @@ export async function wrapDataInBlock<T>(data: T, block: L2Block): Promise<DataI
33
33
  return {
34
34
  data,
35
35
  l2BlockNumber: block.number,
36
- l2BlockHash: BlockHash.fromField(await block.hash()),
36
+ l2BlockHash: await block.hash(),
37
37
  };
38
38
  }
39
39
 
@@ -1,3 +1,4 @@
1
+ export * from './block_data.js';
1
2
  export * from './l2_block.js';
2
3
  export * from './l2_block_stream/index.js';
3
4
  export * from './in_block.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,6 +16,7 @@ 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
 
@@ -89,9 +91,8 @@ export class L2Block {
89
91
  * Returns the block's hash (hash of block header).
90
92
  * @returns The block's hash.
91
93
  */
92
- public async hash(): Promise<Fr> {
93
- const blockHash = await this.header.hash();
94
- return blockHash.toField();
94
+ public hash(): Promise<BlockHash> {
95
+ return this.header.hash();
95
96
  }
96
97
 
97
98
  /**
@@ -175,7 +176,7 @@ export class L2Block {
175
176
  } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
176
177
  ): Promise<L2Block> {
177
178
  const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
178
- const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
179
+ const header = BlockHeader.random({ ...blockHeaderOverrides, blockNumber });
179
180
  const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
180
181
  return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
181
182
  }
@@ -221,4 +222,15 @@ export class L2Block {
221
222
  timestamp: this.header.globalVariables.timestamp,
222
223
  };
223
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
+ }
224
236
  }