@aztec/stdlib 0.0.1-commit.1142ef1 → 0.0.1-commit.18ccd8f0

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 (459) hide show
  1. package/dest/abi/function_call.d.ts +9 -1
  2. package/dest/abi/function_call.d.ts.map +1 -1
  3. package/dest/abi/utils.d.ts +7 -1
  4. package/dest/abi/utils.d.ts.map +1 -1
  5. package/dest/abi/utils.js +7 -0
  6. package/dest/auth_witness/auth_witness.d.ts +2 -1
  7. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  8. package/dest/avm/avm.d.ts +62 -62
  9. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  10. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  11. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  12. package/dest/avm/avm_proving_request.d.ts +299 -299
  13. package/dest/avm/contract_storage_read.d.ts +13 -1
  14. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  15. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  16. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  17. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  18. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  19. package/dest/avm/public_data_read.d.ts +10 -1
  20. package/dest/avm/public_data_read.d.ts.map +1 -1
  21. package/dest/avm/public_data_update_request.d.ts +10 -1
  22. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  23. package/dest/avm/public_data_write.d.ts +7 -1
  24. package/dest/avm/public_data_write.d.ts.map +1 -1
  25. package/dest/avm/public_inner_call_request.d.ts +4 -1
  26. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  27. package/dest/avm/revert_code.d.ts +4 -4
  28. package/dest/avm/revert_code.d.ts.map +1 -1
  29. package/dest/block/block_hash.d.ts +16 -9
  30. package/dest/block/block_hash.d.ts.map +1 -1
  31. package/dest/block/block_hash.js +23 -8
  32. package/dest/block/block_parameter.d.ts +4 -3
  33. package/dest/block/block_parameter.d.ts.map +1 -1
  34. package/dest/block/block_parameter.js +2 -0
  35. package/dest/block/body.d.ts +1 -1
  36. package/dest/block/body.d.ts.map +1 -1
  37. package/dest/block/body.js +2 -1
  38. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  39. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  40. package/dest/block/checkpointed_l2_block.js +7 -45
  41. package/dest/block/in_block.d.ts +8 -8
  42. package/dest/block/in_block.d.ts.map +1 -1
  43. package/dest/block/in_block.js +4 -4
  44. package/dest/block/index.d.ts +1 -3
  45. package/dest/block/index.d.ts.map +1 -1
  46. package/dest/block/index.js +0 -2
  47. package/dest/block/l2_block.d.ts +55 -59
  48. package/dest/block/l2_block.d.ts.map +1 -1
  49. package/dest/block/l2_block.js +64 -109
  50. package/dest/block/l2_block_source.d.ts +63 -38
  51. package/dest/block/l2_block_source.d.ts.map +1 -1
  52. package/dest/block/l2_block_source.js +2 -1
  53. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  54. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  55. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  56. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  57. package/dest/block/l2_block_stream/l2_block_stream.js +37 -34
  58. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  59. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  60. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  61. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  62. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  63. package/dest/block/validate_block_result.d.ts +1 -1
  64. package/dest/block/validate_block_result.d.ts.map +1 -1
  65. package/dest/block/validate_block_result.js +5 -4
  66. package/dest/checkpoint/checkpoint.d.ts +30 -20
  67. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  68. package/dest/checkpoint/checkpoint.js +18 -6
  69. package/dest/checkpoint/published_checkpoint.d.ts +17 -15
  70. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  71. package/dest/checkpoint/published_checkpoint.js +4 -3
  72. package/dest/config/node-rpc-config.js +1 -1
  73. package/dest/contract/complete_address.d.ts +4 -1
  74. package/dest/contract/complete_address.d.ts.map +1 -1
  75. package/dest/contract/contract_address.js +1 -1
  76. package/dest/contract/contract_class_id.d.ts +1 -1
  77. package/dest/contract/contract_class_id.js +1 -1
  78. package/dest/contract/contract_deployment_data.d.ts +5 -5
  79. package/dest/contract/index.d.ts +1 -3
  80. package/dest/contract/index.d.ts.map +1 -1
  81. package/dest/contract/index.js +0 -2
  82. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  83. package/dest/contract/private_function.d.ts +1 -1
  84. package/dest/contract/private_function.d.ts.map +1 -1
  85. package/dest/contract/private_function.js +2 -3
  86. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  87. package/dest/contract/private_function_membership_proof.js +1 -1
  88. package/dest/database-version/version_manager.d.ts +4 -2
  89. package/dest/database-version/version_manager.d.ts.map +1 -1
  90. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  91. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  92. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  93. package/dest/deserialization/index.d.ts +11 -0
  94. package/dest/deserialization/index.d.ts.map +1 -0
  95. package/dest/deserialization/index.js +10 -0
  96. package/dest/epoch-helpers/index.d.ts +3 -1
  97. package/dest/epoch-helpers/index.d.ts.map +1 -1
  98. package/dest/epoch-helpers/index.js +5 -1
  99. package/dest/errors/proving_error.d.ts +2 -2
  100. package/dest/errors/proving_error.d.ts.map +1 -1
  101. package/dest/hash/hash.js +2 -2
  102. package/dest/hash/map_slot.d.ts +1 -1
  103. package/dest/hash/map_slot.d.ts.map +1 -1
  104. package/dest/hash/map_slot.js +4 -3
  105. package/dest/interfaces/api_limit.d.ts +2 -1
  106. package/dest/interfaces/api_limit.d.ts.map +1 -1
  107. package/dest/interfaces/api_limit.js +1 -0
  108. package/dest/interfaces/archiver.d.ts +1 -1
  109. package/dest/interfaces/archiver.d.ts.map +1 -1
  110. package/dest/interfaces/archiver.js +16 -14
  111. package/dest/interfaces/aztec-node-admin.d.ts +56 -26
  112. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  113. package/dest/interfaces/aztec-node.d.ts +61 -43
  114. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  115. package/dest/interfaces/aztec-node.js +7 -9
  116. package/dest/interfaces/block-builder.d.ts +17 -14
  117. package/dest/interfaces/block-builder.d.ts.map +1 -1
  118. package/dest/interfaces/configs.d.ts +8 -8
  119. package/dest/interfaces/configs.d.ts.map +1 -1
  120. package/dest/interfaces/get_logs_response.d.ts +3 -3
  121. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  122. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  123. package/dest/interfaces/prover-client.d.ts +10 -1
  124. package/dest/interfaces/prover-client.d.ts.map +1 -1
  125. package/dest/interfaces/prover-client.js +7 -1
  126. package/dest/interfaces/proving-job.d.ts +14 -14
  127. package/dest/interfaces/tx_provider.d.ts +3 -3
  128. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  129. package/dest/interfaces/validator.d.ts +70 -14
  130. package/dest/interfaces/validator.d.ts.map +1 -1
  131. package/dest/interfaces/validator.js +2 -2
  132. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  133. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  134. package/dest/kernel/hints/build_note_hash_read_request_hints.js +16 -6
  135. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  136. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  137. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
  138. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  139. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  140. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  141. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  142. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
  143. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  144. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  145. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  146. package/dest/kernel/hints/read_request.d.ts +7 -1
  147. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  148. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  149. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  150. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  151. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  152. package/dest/kernel/private_call_data.d.ts +25 -1
  153. package/dest/kernel/private_call_data.d.ts.map +1 -1
  154. package/dest/kernel/private_call_request.d.ts +16 -1
  155. package/dest/kernel/private_call_request.d.ts.map +1 -1
  156. package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
  157. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  158. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
  159. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  160. package/dest/kernel/private_kernel_data.d.ts +7 -1
  161. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  162. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  163. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  164. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  165. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  166. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  167. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  168. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  169. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  170. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
  171. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  172. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  173. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  174. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  175. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
  176. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  177. package/dest/kernel/private_validation_requests.d.ts +10 -1
  178. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  179. package/dest/kernel/public_call_request.d.ts +22 -1
  180. package/dest/kernel/public_call_request.d.ts.map +1 -1
  181. package/dest/kernel/utils/optional_number.d.ts +7 -1
  182. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  183. package/dest/keys/public_keys.d.ts +5 -1
  184. package/dest/keys/public_keys.d.ts.map +1 -1
  185. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  186. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  187. package/dest/logs/extended_public_log.d.ts +7 -5
  188. package/dest/logs/extended_public_log.d.ts.map +1 -1
  189. package/dest/logs/log_id.d.ts +10 -6
  190. package/dest/logs/log_id.d.ts.map +1 -1
  191. package/dest/logs/log_id.js +5 -5
  192. package/dest/logs/siloed_tag.d.ts +1 -1
  193. package/dest/logs/siloed_tag.d.ts.map +1 -1
  194. package/dest/logs/siloed_tag.js +4 -3
  195. package/dest/messaging/inbox_leaf.d.ts +3 -1
  196. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  197. package/dest/messaging/l1_actor.d.ts +7 -1
  198. package/dest/messaging/l1_actor.d.ts.map +1 -1
  199. package/dest/messaging/l1_to_l2_message.d.ts +6 -1
  200. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  201. package/dest/messaging/l2_actor.d.ts +7 -1
  202. package/dest/messaging/l2_actor.d.ts.map +1 -1
  203. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  204. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  205. package/dest/messaging/l2_to_l1_membership.js +5 -3
  206. package/dest/messaging/out_hash.d.ts +41 -4
  207. package/dest/messaging/out_hash.d.ts.map +1 -1
  208. package/dest/messaging/out_hash.js +52 -26
  209. package/dest/note/note_dao.d.ts +36 -5
  210. package/dest/note/note_dao.d.ts.map +1 -1
  211. package/dest/note/note_dao.js +15 -12
  212. package/dest/p2p/block_proposal.d.ts +23 -8
  213. package/dest/p2p/block_proposal.d.ts.map +1 -1
  214. package/dest/p2p/block_proposal.js +25 -7
  215. package/dest/p2p/checkpoint_attestation.d.ts +5 -1
  216. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  217. package/dest/p2p/checkpoint_proposal.d.ts +20 -7
  218. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  219. package/dest/p2p/checkpoint_proposal.js +17 -5
  220. package/dest/p2p/consensus_payload.d.ts +4 -3
  221. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  222. package/dest/p2p/consensus_payload.js +0 -3
  223. package/dest/p2p/constants.d.ts +3 -0
  224. package/dest/p2p/constants.d.ts.map +1 -0
  225. package/dest/p2p/constants.js +2 -0
  226. package/dest/p2p/index.d.ts +2 -1
  227. package/dest/p2p/index.d.ts.map +1 -1
  228. package/dest/p2p/index.js +1 -0
  229. package/dest/p2p/message_validator.d.ts +18 -3
  230. package/dest/p2p/message_validator.d.ts.map +1 -1
  231. package/dest/p2p/message_validator.js +2 -1
  232. package/dest/p2p/signed_txs.d.ts +3 -1
  233. package/dest/p2p/signed_txs.d.ts.map +1 -1
  234. package/dest/p2p/signed_txs.js +6 -1
  235. package/dest/p2p/topic_type.js +2 -1
  236. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  237. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  238. package/dest/parity/parity_public_inputs.d.ts +4 -1
  239. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  240. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  241. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  242. package/dest/proofs/chonk_proof.d.ts +1 -1
  243. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  244. package/dest/proofs/chonk_proof.js +9 -4
  245. package/dest/proofs/proof.d.ts +4 -1
  246. package/dest/proofs/proof.d.ts.map +1 -1
  247. package/dest/proofs/recursive_proof.d.ts +10 -1
  248. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  249. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  250. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  251. package/dest/rollup/block_constant_data.d.ts +12 -1
  252. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  253. package/dest/rollup/block_headers_hash.js +1 -1
  254. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  255. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  256. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  257. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  258. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  259. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  260. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  261. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  262. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  263. package/dest/rollup/checkpoint_header.d.ts +29 -2
  264. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  265. package/dest/rollup/checkpoint_header.js +21 -5
  266. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  267. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  268. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -6
  269. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  270. package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
  271. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  272. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  273. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  274. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  275. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  276. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  277. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  278. package/dest/rollup/root_rollup_public_inputs.d.ts +12 -2
  279. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  280. package/dest/rollup/root_rollup_public_inputs.js +4 -1
  281. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  282. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  283. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  284. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  285. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  286. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  287. package/dest/schemas/schemas.d.ts +1 -1
  288. package/dest/tests/factories.d.ts +2 -4
  289. package/dest/tests/factories.d.ts.map +1 -1
  290. package/dest/tests/factories.js +6 -15
  291. package/dest/tests/jest.js +1 -1
  292. package/dest/tests/mocks.d.ts +20 -14
  293. package/dest/tests/mocks.d.ts.map +1 -1
  294. package/dest/tests/mocks.js +45 -27
  295. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  296. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  297. package/dest/trees/nullifier_leaf.d.ts +13 -1
  298. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  299. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  300. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  301. package/dest/trees/public_data_leaf.d.ts +16 -1
  302. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  303. package/dest/trees/public_data_witness.d.ts +11 -1
  304. package/dest/trees/public_data_witness.d.ts.map +1 -1
  305. package/dest/tx/block_header.d.ts +14 -2
  306. package/dest/tx/block_header.d.ts.map +1 -1
  307. package/dest/tx/block_header.js +5 -1
  308. package/dest/tx/call_context.d.ts +13 -1
  309. package/dest/tx/call_context.d.ts.map +1 -1
  310. package/dest/tx/capsule.d.ts +4 -1
  311. package/dest/tx/capsule.d.ts.map +1 -1
  312. package/dest/tx/execution_payload.d.ts +9 -1
  313. package/dest/tx/execution_payload.d.ts.map +1 -1
  314. package/dest/tx/function_data.d.ts +4 -2
  315. package/dest/tx/function_data.d.ts.map +1 -1
  316. package/dest/tx/global_variables.d.ts +9 -1
  317. package/dest/tx/global_variables.d.ts.map +1 -1
  318. package/dest/tx/hashed_values.d.ts +7 -1
  319. package/dest/tx/hashed_values.d.ts.map +1 -1
  320. package/dest/tx/in_tx.d.ts +3 -3
  321. package/dest/tx/indexed_tx_effect.d.ts +4 -4
  322. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  323. package/dest/tx/indexed_tx_effect.js +2 -2
  324. package/dest/tx/partial_state_reference.d.ts +4 -1
  325. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  326. package/dest/tx/private_execution_result.d.ts +23 -2
  327. package/dest/tx/private_execution_result.d.ts.map +1 -1
  328. package/dest/tx/private_execution_result.js +1 -1
  329. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  330. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  331. package/dest/tx/profiling.d.ts +149 -26
  332. package/dest/tx/profiling.d.ts.map +1 -1
  333. package/dest/tx/profiling.js +44 -7
  334. package/dest/tx/protocol_contracts.d.ts +1 -1
  335. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  336. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  337. package/dest/tx/state_reference.d.ts +3 -1
  338. package/dest/tx/state_reference.d.ts.map +1 -1
  339. package/dest/tx/tx.d.ts +24 -1
  340. package/dest/tx/tx.d.ts.map +1 -1
  341. package/dest/tx/tx.js +6 -3
  342. package/dest/tx/tx_context.d.ts +2 -1
  343. package/dest/tx/tx_context.d.ts.map +1 -1
  344. package/dest/tx/tx_effect.d.ts +32 -6
  345. package/dest/tx/tx_effect.d.ts.map +1 -1
  346. package/dest/tx/tx_effect.js +0 -7
  347. package/dest/tx/tx_execution_request.d.ts +30 -1
  348. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  349. package/dest/tx/tx_hash.d.ts +2 -1
  350. package/dest/tx/tx_hash.d.ts.map +1 -1
  351. package/dest/tx/tx_receipt.d.ts +47 -13
  352. package/dest/tx/tx_receipt.d.ts.map +1 -1
  353. package/dest/tx/tx_receipt.js +46 -15
  354. package/dest/tx/tx_request.d.ts +6 -1
  355. package/dest/tx/tx_request.d.ts.map +1 -1
  356. package/dest/tx/validator/error_texts.d.ts +2 -1
  357. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  358. package/dest/tx/validator/error_texts.js +2 -0
  359. package/dest/types/shared.d.ts +4 -1
  360. package/dest/types/shared.d.ts.map +1 -1
  361. package/dest/validators/schemas.d.ts +8 -8
  362. package/dest/vks/verification_key.d.ts +22 -1
  363. package/dest/vks/verification_key.d.ts.map +1 -1
  364. package/dest/vks/vk_data.d.ts +7 -1
  365. package/dest/vks/vk_data.d.ts.map +1 -1
  366. package/dest/zkpassport/index.d.ts +3 -4
  367. package/dest/zkpassport/index.d.ts.map +1 -1
  368. package/dest/zkpassport/index.js +9 -9
  369. package/package.json +12 -10
  370. package/src/abi/utils.ts +17 -0
  371. package/src/block/block_hash.ts +36 -10
  372. package/src/block/block_parameter.ts +4 -2
  373. package/src/block/body.ts +2 -1
  374. package/src/block/checkpointed_l2_block.ts +8 -58
  375. package/src/block/in_block.ts +5 -5
  376. package/src/block/index.ts +0 -2
  377. package/src/block/l2_block.ts +101 -149
  378. package/src/block/l2_block_source.ts +69 -41
  379. package/src/block/l2_block_stream/interfaces.ts +8 -5
  380. package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
  381. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  382. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  383. package/src/block/validate_block_result.ts +5 -4
  384. package/src/checkpoint/checkpoint.ts +33 -11
  385. package/src/checkpoint/published_checkpoint.ts +4 -3
  386. package/src/config/node-rpc-config.ts +1 -1
  387. package/src/contract/contract_address.ts +1 -1
  388. package/src/contract/contract_class_id.ts +1 -1
  389. package/src/contract/index.ts +0 -2
  390. package/src/contract/private_function.ts +2 -3
  391. package/src/contract/private_function_membership_proof.ts +1 -1
  392. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  393. package/src/deserialization/index.ts +21 -0
  394. package/src/epoch-helpers/index.ts +10 -1
  395. package/src/hash/hash.ts +2 -2
  396. package/src/hash/map_slot.ts +3 -2
  397. package/src/interfaces/api_limit.ts +1 -0
  398. package/src/interfaces/archiver.ts +16 -23
  399. package/src/interfaces/aztec-node.ts +76 -74
  400. package/src/interfaces/block-builder.ts +33 -24
  401. package/src/interfaces/configs.ts +1 -3
  402. package/src/interfaces/l2_logs_source.ts +17 -4
  403. package/src/interfaces/prover-client.ts +15 -0
  404. package/src/interfaces/tx_provider.ts +2 -2
  405. package/src/interfaces/validator.ts +9 -11
  406. package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
  407. package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
  408. package/src/logs/log_id.ts +6 -6
  409. package/src/logs/siloed_tag.ts +3 -2
  410. package/src/messaging/l2_to_l1_membership.ts +5 -3
  411. package/src/messaging/out_hash.ts +60 -29
  412. package/src/note/note_dao.ts +18 -13
  413. package/src/p2p/block_proposal.ts +36 -13
  414. package/src/p2p/checkpoint_proposal.ts +29 -11
  415. package/src/p2p/consensus_payload.ts +0 -5
  416. package/src/p2p/constants.ts +3 -0
  417. package/src/p2p/index.ts +1 -0
  418. package/src/p2p/message_validator.ts +14 -2
  419. package/src/p2p/signed_txs.ts +6 -1
  420. package/src/p2p/topic_type.ts +1 -1
  421. package/src/proofs/chonk_proof.ts +9 -5
  422. package/src/rollup/block_headers_hash.ts +1 -1
  423. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  424. package/src/rollup/checkpoint_header.ts +20 -0
  425. package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
  426. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  427. package/src/rollup/root_rollup_public_inputs.ts +4 -1
  428. package/src/tests/factories.ts +6 -26
  429. package/src/tests/jest.ts +1 -1
  430. package/src/tests/mocks.ts +62 -42
  431. package/src/tx/block_header.ts +11 -3
  432. package/src/tx/indexed_tx_effect.ts +2 -2
  433. package/src/tx/private_execution_result.ts +1 -1
  434. package/src/tx/profiling.ts +46 -4
  435. package/src/tx/tx.ts +8 -9
  436. package/src/tx/tx_effect.ts +0 -9
  437. package/src/tx/tx_receipt.ts +75 -18
  438. package/src/tx/validator/error_texts.ts +3 -0
  439. package/src/zkpassport/index.ts +11 -12
  440. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  441. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  442. package/dest/block/l2_block_code_to_purge.js +0 -55
  443. package/dest/block/l2_block_header.d.ts +0 -94
  444. package/dest/block/l2_block_header.d.ts.map +0 -1
  445. package/dest/block/l2_block_header.js +0 -160
  446. package/dest/block/l2_block_new.d.ts +0 -134
  447. package/dest/block/l2_block_new.d.ts.map +0 -1
  448. package/dest/block/l2_block_new.js +0 -155
  449. package/dest/contract/contract_class_metadata.d.ts +0 -8
  450. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  451. package/dest/contract/contract_class_metadata.js +0 -1
  452. package/dest/contract/contract_metadata.d.ts +0 -7
  453. package/dest/contract/contract_metadata.d.ts.map +0 -1
  454. package/dest/contract/contract_metadata.js +0 -1
  455. package/src/block/l2_block_code_to_purge.ts +0 -80
  456. package/src/block/l2_block_header.ts +0 -255
  457. package/src/block/l2_block_new.ts +0 -211
  458. package/src/contract/contract_class_metadata.ts +0 -8
  459. package/src/contract/contract_metadata.ts +0 -7
@@ -1,155 +0,0 @@
1
- import { encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
- import { CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
3
- import { Fr } from '@aztec/foundation/curves/bn254';
4
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
- import { z } from 'zod';
6
- import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
7
- import { BlockHeader } from '../tx/block_header.js';
8
- import { Body } from './body.js';
9
- // TODO(palla/mbps): Delete the existing `L2Block` class and rename this to `L2Block`.
10
- // TODO(palla/mbps): Consider moving the checkpointNumber and indexWithinCheckpoint to the header:
11
- // if the blockNumber is there, why not these as well? Consider whether they should be part of the
12
- // circuits structs though.
13
- /**
14
- * An L2 block with a header and a body.
15
- */ export class L2BlockNew {
16
- archive;
17
- header;
18
- body;
19
- checkpointNumber;
20
- indexWithinCheckpoint;
21
- constructor(/** Snapshot of archive tree after the block is applied. */ archive, /** Header of the block. */ header, /** L2 block body. */ body, /** Number of the checkpoint that the block belongs to. */ checkpointNumber, /** Index of the block within the checkpoint. */ indexWithinCheckpoint){
22
- this.archive = archive;
23
- this.header = header;
24
- this.body = body;
25
- this.checkpointNumber = checkpointNumber;
26
- this.indexWithinCheckpoint = indexWithinCheckpoint;
27
- }
28
- get number() {
29
- return this.header.globalVariables.blockNumber;
30
- }
31
- get timestamp() {
32
- return this.header.globalVariables.timestamp;
33
- }
34
- static get schema() {
35
- return z.object({
36
- archive: AppendOnlyTreeSnapshot.schema,
37
- header: BlockHeader.schema,
38
- body: Body.schema,
39
- checkpointNumber: CheckpointNumberSchema,
40
- indexWithinCheckpoint: z.number()
41
- }).transform(({ archive, header, body, checkpointNumber, indexWithinCheckpoint })=>new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint));
42
- }
43
- /**
44
- * Deserializes a block from a buffer
45
- * @returns A deserialized L2 block.
46
- */ static fromBuffer(buf) {
47
- const reader = BufferReader.asReader(buf);
48
- const header = reader.readObject(BlockHeader);
49
- const archive = reader.readObject(AppendOnlyTreeSnapshot);
50
- const body = reader.readObject(Body);
51
- const checkpointNumber = CheckpointNumber(reader.readNumber());
52
- const indexWithinCheckpoint = reader.readNumber();
53
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
54
- }
55
- /**
56
- * Serializes a block
57
- * @returns A serialized L2 block as a Buffer.
58
- */ toBuffer() {
59
- return serializeToBuffer(this.header, this.archive, this.body, this.checkpointNumber, this.indexWithinCheckpoint);
60
- }
61
- /**
62
- * Returns the block's hash (hash of block header).
63
- * @returns The block's hash.
64
- */ hash() {
65
- return this.header.hash();
66
- }
67
- /**
68
- * Checks if this block equals another block.
69
- * @param other - The other block to compare with.
70
- * @returns True if both blocks are equal.
71
- */ equals(other) {
72
- return this.archive.equals(other.archive) && this.header.equals(other.header) && this.body.equals(other.body) && this.checkpointNumber === other.checkpointNumber && this.indexWithinCheckpoint === other.indexWithinCheckpoint;
73
- }
74
- toBlobFields() {
75
- const blockBlobData = this.toBlockBlobData();
76
- return encodeBlockBlobData(blockBlobData);
77
- }
78
- toBlockBlobData() {
79
- const isFirstBlock = this.indexWithinCheckpoint === 0;
80
- return {
81
- blockEndMarker: {
82
- numTxs: this.body.txEffects.length,
83
- timestamp: this.header.globalVariables.timestamp,
84
- blockNumber: this.number
85
- },
86
- blockEndStateField: {
87
- l1ToL2MessageNextAvailableLeafIndex: this.header.state.l1ToL2MessageTree.nextAvailableLeafIndex,
88
- noteHashNextAvailableLeafIndex: this.header.state.partial.noteHashTree.nextAvailableLeafIndex,
89
- nullifierNextAvailableLeafIndex: this.header.state.partial.nullifierTree.nextAvailableLeafIndex,
90
- publicDataNextAvailableLeafIndex: this.header.state.partial.publicDataTree.nextAvailableLeafIndex,
91
- totalManaUsed: this.header.totalManaUsed.toBigInt()
92
- },
93
- lastArchiveRoot: this.header.lastArchive.root,
94
- noteHashRoot: this.header.state.partial.noteHashTree.root,
95
- nullifierRoot: this.header.state.partial.nullifierTree.root,
96
- publicDataRoot: this.header.state.partial.publicDataTree.root,
97
- l1ToL2MessageRoot: isFirstBlock ? this.header.state.l1ToL2MessageTree.root : undefined,
98
- txs: this.body.toTxBlobData()
99
- };
100
- }
101
- static empty() {
102
- return new L2BlockNew(AppendOnlyTreeSnapshot.empty(), BlockHeader.empty(), Body.empty(), CheckpointNumber(0), 0);
103
- }
104
- /**
105
- * Creates an L2 block containing random data.
106
- * @param l2BlockNum - The number of the L2 block.
107
- * @param txsPerBlock - The number of transactions to include in the block.
108
- * @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
109
- * @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
110
- * @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
111
- * @returns The L2 block.
112
- */ static async random(blockNumber, { checkpointNumber = CheckpointNumber(Number(blockNumber)), indexWithinCheckpoint = 0, txsPerBlock = 1, txOptions = {}, makeTxOptions, ...blockHeaderOverrides } = {}) {
113
- const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
114
- const header = BlockHeader.random({
115
- blockNumber,
116
- ...blockHeaderOverrides
117
- });
118
- const body = await Body.random({
119
- txsPerBlock,
120
- makeTxOptions,
121
- ...txOptions
122
- });
123
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
124
- }
125
- /**
126
- * Returns stats used for logging.
127
- * @returns Stats on tx count, number, and log size and count.
128
- */ getStats() {
129
- const logsStats = {
130
- privateLogCount: this.body.txEffects.reduce((logCount, txEffect)=>logCount + txEffect.privateLogs.length, 0),
131
- publicLogCount: this.body.txEffects.reduce((logCount, txEffect)=>logCount + txEffect.publicLogs.length, 0),
132
- contractClassLogCount: this.body.txEffects.reduce((logCount, txEffect)=>logCount + txEffect.contractClassLogs.length, 0),
133
- contractClassLogSize: this.body.txEffects.reduce((totalLogSize, txEffect)=>totalLogSize + txEffect.contractClassLogs.reduce((acc, log)=>acc + log.emittedLength, 0), 0)
134
- };
135
- return {
136
- txCount: this.body.txEffects.length,
137
- blockNumber: this.number,
138
- blockTimestamp: Number(this.header.globalVariables.timestamp),
139
- ...logsStats
140
- };
141
- }
142
- getPrivateLogs() {
143
- return this.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat();
144
- }
145
- toBlockInfo() {
146
- return {
147
- archive: this.archive.root,
148
- lastArchive: this.header.lastArchive.root,
149
- blockNumber: this.number,
150
- slotNumber: this.header.getSlot(),
151
- txCount: this.body.txEffects.length,
152
- timestamp: this.header.globalVariables.timestamp
153
- };
154
- }
155
- }
@@ -1,8 +0,0 @@
1
- import type { ContractArtifact } from '../abi/abi.js';
2
- import type { ContractClassWithId } from './interfaces/contract_class.js';
3
- export interface ContractClassMetadata {
4
- contractClass?: ContractClassWithId | undefined;
5
- isContractClassPubliclyRegistered: boolean;
6
- artifact?: ContractArtifact | undefined;
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3NfbWV0YWRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9jbGFzc19tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFFLE1BQU0sV0FBVyxxQkFBcUI7SUFDcEMsYUFBYSxDQUFDLEVBQUUsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQ2hELGlDQUFpQyxFQUFFLE9BQU8sQ0FBQztJQUMzQyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7Q0FDekMifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract_class_metadata.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class_metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,iCAAiC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC"}
@@ -1 +0,0 @@
1
- export { };
@@ -1,7 +0,0 @@
1
- import type { ContractInstanceWithAddress } from './interfaces/contract_instance.js';
2
- export interface ContractMetadata {
3
- contractInstance?: ContractInstanceWithAddress | undefined;
4
- isContractInitialized: boolean;
5
- isContractPublished: boolean;
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfbWV0YWRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJGLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsZ0JBQWdCLENBQUMsRUFBRSwyQkFBMkIsR0FBRyxTQUFTLENBQUM7SUFDM0QscUJBQXFCLEVBQUUsT0FBTyxDQUFDO0lBQy9CLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztDQUM5QiJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract_metadata.d.ts","sourceRoot":"","sources":["../../src/contract/contract_metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAErF,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAC3D,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;CAC9B"}
@@ -1 +0,0 @@
1
- export { };
@@ -1,80 +0,0 @@
1
- import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
- import { compact } from '@aztec/foundation/collection';
3
- import { Fr } from '@aztec/foundation/curves/bn254';
4
- import { EthAddress } from '@aztec/foundation/eth-address';
5
- import type { FieldsOf } from '@aztec/foundation/types';
6
-
7
- import { AztecAddress } from '../aztec-address/index.js';
8
- import { GasFees } from '../gas/gas_fees.js';
9
- import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
10
- import { GlobalVariables } from '../tx/global_variables.js';
11
- import { PartialStateReference } from '../tx/partial_state_reference.js';
12
- import { StateReference } from '../tx/state_reference.js';
13
- import { L2BlockHeader } from './l2_block_header.js';
14
-
15
- export function makeL2BlockHeader(
16
- seed = 0,
17
- blockNumber?: number,
18
- slotNumber?: number,
19
- overrides: Partial<FieldsOf<L2BlockHeader>> = {},
20
- ) {
21
- return new L2BlockHeader(
22
- makeAppendOnlyTreeSnapshot(seed + 0x100),
23
- overrides.blobsHash ?? new Fr(seed + 0x200),
24
- overrides.inHash ?? new Fr(seed + 0x300),
25
- overrides.state ?? makeStateReference(seed + 0x600),
26
- makeGlobalVariables((seed += 0x700), {
27
- ...(blockNumber ? { blockNumber: BlockNumber(blockNumber) } : {}),
28
- ...(slotNumber ? { slotNumber: SlotNumber(slotNumber) } : {}),
29
- }),
30
- new Fr(seed + 0x300),
31
- new Fr(seed + 0x800),
32
- new Fr(seed + 0x900),
33
- new Fr(seed + 0xa00),
34
- );
35
- }
36
-
37
- /**
38
- * Makes arbitrary append only tree snapshot.
39
- * @param seed - The seed to use for generating the append only tree snapshot.
40
- * @returns An append only tree snapshot.
41
- */
42
- export function makeAppendOnlyTreeSnapshot(seed = 1): AppendOnlyTreeSnapshot {
43
- return new AppendOnlyTreeSnapshot(new Fr(seed), seed);
44
- }
45
-
46
- /**
47
- * Makes arbitrary state reference.
48
- * @param seed - The seed to use for generating the state reference.
49
- * @returns A state reference.
50
- */
51
- function makeStateReference(seed = 0): StateReference {
52
- return new StateReference(makeAppendOnlyTreeSnapshot(seed), makePartialStateReference(seed + 1));
53
- }
54
-
55
- /**
56
- * Makes arbitrary partial state reference.
57
- * @param seed - The seed to use for generating the partial state reference.
58
- * @returns A partial state reference.
59
- */
60
- function makePartialStateReference(seed = 0): PartialStateReference {
61
- return new PartialStateReference(
62
- makeAppendOnlyTreeSnapshot(seed),
63
- makeAppendOnlyTreeSnapshot(seed + 1),
64
- makeAppendOnlyTreeSnapshot(seed + 2),
65
- );
66
- }
67
-
68
- function makeGlobalVariables(seed = 1, overrides: Partial<FieldsOf<GlobalVariables>> = {}): GlobalVariables {
69
- return GlobalVariables.from({
70
- chainId: new Fr(seed),
71
- version: new Fr(seed + 1),
72
- blockNumber: BlockNumber(seed + 2),
73
- slotNumber: SlotNumber(seed + 3),
74
- timestamp: BigInt(seed + 4),
75
- coinbase: EthAddress.fromField(new Fr(seed + 5)),
76
- feeRecipient: AztecAddress.fromField(new Fr(seed + 6)),
77
- gasFees: new GasFees(seed + 7, seed + 8),
78
- ...compact(overrides),
79
- });
80
- }
@@ -1,255 +0,0 @@
1
- import { SlotNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { type ZodFor, schemas } from '@aztec/foundation/schemas';
4
- import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
5
- import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
- import type { FieldsOf } from '@aztec/foundation/types';
7
-
8
- import { inspect } from 'util';
9
- import { z } from 'zod';
10
-
11
- import { CheckpointHeader } from '../rollup/checkpoint_header.js';
12
- import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
13
- import { BlockHeader, GlobalVariables, StateReference } from '../tx/index.js';
14
-
15
- /**
16
- * TO BE DELETED
17
- *
18
- * A header of an L2 block combining the block header and the checkpoint header.
19
- * This is a temporary workaround to avoid changing too many things before building in chunks is properly implemented.
20
- * This works for now because we only have one block per checkpoint.
21
- *
22
- * @deprecated Use BlockHeader or CheckpointHeader instead.
23
- */
24
- export class L2BlockHeader {
25
- constructor(
26
- /** Snapshot of archive before the block is applied. */
27
- public lastArchive: AppendOnlyTreeSnapshot,
28
- public blobsHash: Fr,
29
- public inHash: Fr,
30
- /** State reference. */
31
- public state: StateReference,
32
- /** Global variables of an L2 block. */
33
- public globalVariables: GlobalVariables,
34
- /** Total fees in the block, computed by the root rollup circuit */
35
- public totalFees: Fr,
36
- /** Total mana used in the block, computed by the root rollup circuit */
37
- public totalManaUsed: Fr,
38
- /** Hash of the sponge blob of the block. */
39
- public spongeBlobHash: Fr,
40
- /** Hash of the block headers in the checkpoint. */
41
- public blockHeadersHash: Fr,
42
- ) {}
43
-
44
- static get schema(): ZodFor<L2BlockHeader> {
45
- return z
46
- .object({
47
- lastArchive: AppendOnlyTreeSnapshot.schema,
48
- blobsHash: schemas.Fr,
49
- inHash: schemas.Fr,
50
- state: StateReference.schema,
51
- globalVariables: GlobalVariables.schema,
52
- totalFees: schemas.Fr,
53
- totalManaUsed: schemas.Fr,
54
- spongeBlobHash: schemas.Fr,
55
- blockHeadersHash: schemas.Fr,
56
- })
57
- .transform(L2BlockHeader.from);
58
- }
59
-
60
- static getFields(fields: FieldsOf<L2BlockHeader>) {
61
- return [
62
- fields.lastArchive,
63
- fields.blobsHash,
64
- fields.inHash,
65
- fields.state,
66
- fields.globalVariables,
67
- fields.totalFees,
68
- fields.totalManaUsed,
69
- fields.spongeBlobHash,
70
- fields.blockHeadersHash,
71
- ] as const;
72
- }
73
-
74
- static from(fields: FieldsOf<L2BlockHeader>) {
75
- return new L2BlockHeader(...L2BlockHeader.getFields(fields));
76
- }
77
-
78
- getSlot(): SlotNumber {
79
- return this.globalVariables.slotNumber;
80
- }
81
-
82
- getBlockNumber() {
83
- return this.globalVariables.blockNumber;
84
- }
85
-
86
- getSize() {
87
- return (
88
- this.lastArchive.getSize() +
89
- this.blobsHash.size +
90
- this.inHash.size +
91
- this.state.getSize() +
92
- this.globalVariables.getSize() +
93
- this.totalFees.size +
94
- this.totalManaUsed.size +
95
- this.spongeBlobHash.size +
96
- this.blockHeadersHash.size
97
- );
98
- }
99
-
100
- toBuffer() {
101
- return serializeToBuffer(...L2BlockHeader.getFields(this));
102
- }
103
-
104
- toFields(): Fr[] {
105
- return serializeToFields(...L2BlockHeader.getFields(this));
106
- }
107
-
108
- clone() {
109
- return L2BlockHeader.fromBuffer(this.toBuffer());
110
- }
111
-
112
- static fromBuffer(buffer: Buffer | BufferReader) {
113
- const reader = BufferReader.asReader(buffer);
114
-
115
- return new L2BlockHeader(
116
- reader.readObject(AppendOnlyTreeSnapshot),
117
- reader.readObject(Fr),
118
- reader.readObject(Fr),
119
- reader.readObject(StateReference),
120
- reader.readObject(GlobalVariables),
121
- reader.readObject(Fr),
122
- reader.readObject(Fr),
123
- reader.readObject(Fr),
124
- reader.readObject(Fr),
125
- );
126
- }
127
-
128
- static fromFields(fields: Fr[] | FieldReader) {
129
- const reader = FieldReader.asReader(fields);
130
-
131
- return new L2BlockHeader(
132
- AppendOnlyTreeSnapshot.fromFields(reader),
133
- reader.readField(),
134
- reader.readField(),
135
- StateReference.fromFields(reader),
136
- GlobalVariables.fromFields(reader),
137
- reader.readField(),
138
- reader.readField(),
139
- reader.readField(),
140
- reader.readField(),
141
- );
142
- }
143
-
144
- static empty(fields: Partial<FieldsOf<L2BlockHeader>> = {}) {
145
- return L2BlockHeader.from({
146
- lastArchive: AppendOnlyTreeSnapshot.empty(),
147
- blobsHash: Fr.ZERO,
148
- inHash: Fr.ZERO,
149
- state: StateReference.empty(),
150
- globalVariables: GlobalVariables.empty(),
151
- totalFees: Fr.ZERO,
152
- totalManaUsed: Fr.ZERO,
153
- spongeBlobHash: Fr.ZERO,
154
- blockHeadersHash: Fr.ZERO,
155
- ...fields,
156
- });
157
- }
158
-
159
- isEmpty(): boolean {
160
- return (
161
- this.lastArchive.isEmpty() &&
162
- this.blobsHash.isZero() &&
163
- this.inHash.isZero() &&
164
- this.state.isEmpty() &&
165
- this.globalVariables.isEmpty() &&
166
- this.totalFees.isZero() &&
167
- this.totalManaUsed.isZero() &&
168
- this.spongeBlobHash.isZero() &&
169
- this.blockHeadersHash.isZero()
170
- );
171
- }
172
-
173
- /**
174
- * Serializes this instance into a string.
175
- * @returns Encoded string.
176
- */
177
- public toString() {
178
- return bufferToHex(this.toBuffer());
179
- }
180
-
181
- static fromString(str: string) {
182
- return L2BlockHeader.fromBuffer(hexToBuffer(str));
183
- }
184
-
185
- toCheckpointHeader() {
186
- return new CheckpointHeader(
187
- this.lastArchive.root,
188
- this.blockHeadersHash,
189
- this.blobsHash,
190
- this.inHash,
191
- this.globalVariables.slotNumber,
192
- this.globalVariables.timestamp,
193
- this.globalVariables.coinbase,
194
- this.globalVariables.feeRecipient,
195
- this.globalVariables.gasFees,
196
- this.totalManaUsed,
197
- );
198
- }
199
-
200
- toBlockHeader() {
201
- return new BlockHeader(
202
- this.lastArchive,
203
- this.state,
204
- this.spongeBlobHash,
205
- this.globalVariables,
206
- this.totalFees,
207
- this.totalManaUsed,
208
- );
209
- }
210
-
211
- toInspect() {
212
- return {
213
- lastArchive: this.lastArchive.root.toString(),
214
- blobsHash: this.blobsHash.toString(),
215
- inHash: this.inHash.toString(),
216
- state: this.state.toInspect(),
217
- globalVariables: this.globalVariables.toInspect(),
218
- totalFees: this.totalFees.toBigInt(),
219
- totalManaUsed: this.totalManaUsed.toBigInt(),
220
- spongeBlobHash: this.spongeBlobHash.toString(),
221
- blockHeadersHash: this.blockHeadersHash.toString(),
222
- };
223
- }
224
-
225
- [inspect.custom]() {
226
- return `L2BlockHeader {
227
- lastArchive: ${inspect(this.lastArchive)},
228
- blobsHash: ${inspect(this.blobsHash)},
229
- inHash: ${inspect(this.inHash)},
230
- state.l1ToL2MessageTree: ${inspect(this.state.l1ToL2MessageTree)},
231
- state.noteHashTree: ${inspect(this.state.partial.noteHashTree)},
232
- state.nullifierTree: ${inspect(this.state.partial.nullifierTree)},
233
- state.publicDataTree: ${inspect(this.state.partial.publicDataTree)},
234
- globalVariables: ${inspect(this.globalVariables)},
235
- totalFees: ${this.totalFees},
236
- totalManaUsed: ${this.totalManaUsed},
237
- spongeBlobHash: ${this.spongeBlobHash},
238
- blockHeadersHash: ${this.blockHeadersHash},
239
- }`;
240
- }
241
-
242
- public equals(other: this): boolean {
243
- return (
244
- this.lastArchive.equals(other.lastArchive) &&
245
- this.blobsHash.equals(other.blobsHash) &&
246
- this.inHash.equals(other.inHash) &&
247
- this.state.equals(other.state) &&
248
- this.globalVariables.equals(other.globalVariables) &&
249
- this.totalFees.equals(other.totalFees) &&
250
- this.totalManaUsed.equals(other.totalManaUsed) &&
251
- this.spongeBlobHash.equals(other.spongeBlobHash) &&
252
- this.blockHeadersHash.equals(other.blockHeadersHash)
253
- );
254
- }
255
- }