@aztec/stdlib 0.86.0 → 0.87.0

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 (570) hide show
  1. package/dest/abi/abi.d.ts +291 -241
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +14 -14
  4. package/dest/abi/buffer.d.ts +0 -2
  5. package/dest/abi/buffer.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.d.ts +0 -2
  7. package/dest/abi/contract_artifact.d.ts.map +1 -1
  8. package/dest/abi/contract_artifact.js +3 -16
  9. package/dest/abi/decoder.d.ts.map +1 -1
  10. package/dest/abi/decoder.js +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +1 -1
  13. package/dest/abi/event_selector.d.ts +0 -2
  14. package/dest/abi/event_selector.d.ts.map +1 -1
  15. package/dest/abi/function_selector.d.ts +0 -2
  16. package/dest/abi/function_selector.d.ts.map +1 -1
  17. package/dest/abi/note_selector.d.ts +0 -2
  18. package/dest/abi/note_selector.d.ts.map +1 -1
  19. package/dest/abi/selector.d.ts +0 -3
  20. package/dest/abi/selector.d.ts.map +1 -1
  21. package/dest/abi/utils.d.ts +0 -2
  22. package/dest/abi/utils.d.ts.map +1 -1
  23. package/dest/auth_witness/auth_witness.d.ts +1 -3
  24. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  25. package/dest/avm/avm.d.ts +39 -40
  26. package/dest/avm/avm.d.ts.map +1 -1
  27. package/dest/avm/avm.js +5 -5
  28. package/dest/avm/avm_accumulated_data.d.ts +4 -4
  29. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  30. package/dest/avm/avm_accumulated_data.js +18 -2
  31. package/dest/avm/avm_circuit_public_inputs.d.ts +2 -4
  32. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  33. package/dest/avm/avm_circuit_public_inputs.js +26 -1
  34. package/dest/avm/avm_proving_request.d.ts +15 -17
  35. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  36. package/dest/avm/contract_storage_read.d.ts +1 -3
  37. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  38. package/dest/avm/contract_storage_update_request.d.ts +1 -3
  39. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  40. package/dest/avm/message_pack.d.ts +0 -2
  41. package/dest/avm/message_pack.d.ts.map +1 -1
  42. package/dest/avm/message_pack.js +7 -1
  43. package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
  44. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  45. package/dest/avm/public_data_hint.d.ts +1 -3
  46. package/dest/avm/public_data_hint.d.ts.map +1 -1
  47. package/dest/avm/public_data_read.d.ts +1 -3
  48. package/dest/avm/public_data_read.d.ts.map +1 -1
  49. package/dest/avm/public_data_update_request.d.ts +1 -4
  50. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  51. package/dest/avm/public_data_write.d.ts +4 -3
  52. package/dest/avm/public_data_write.d.ts.map +1 -1
  53. package/dest/avm/public_data_write.js +19 -1
  54. package/dest/avm/public_inner_call_request.d.ts +1 -4
  55. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  56. package/dest/avm/public_inner_call_request.js +1 -1
  57. package/dest/avm/revert_code.d.ts +0 -3
  58. package/dest/avm/revert_code.d.ts.map +1 -1
  59. package/dest/aztec-address/index.d.ts +1 -4
  60. package/dest/aztec-address/index.d.ts.map +1 -1
  61. package/dest/block/block_hash.d.ts +1 -3
  62. package/dest/block/block_hash.d.ts.map +1 -1
  63. package/dest/block/body.d.ts +1 -4
  64. package/dest/block/body.d.ts.map +1 -1
  65. package/dest/block/body.js +5 -11
  66. package/dest/block/l2_block.d.ts +1 -20
  67. package/dest/block/l2_block.d.ts.map +1 -1
  68. package/dest/block/l2_block.js +1 -41
  69. package/dest/block/l2_block_code_to_purge.d.ts +0 -2
  70. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  71. package/dest/block/l2_block_source.d.ts +0 -1
  72. package/dest/block/l2_block_source.d.ts.map +1 -1
  73. package/dest/block/published_l2_block.d.ts +2 -1
  74. package/dest/block/published_l2_block.d.ts.map +1 -1
  75. package/dest/block/published_l2_block.js +5 -18
  76. package/dest/config/{config.d.ts → chain-config.d.ts} +1 -1
  77. package/dest/config/chain-config.d.ts.map +1 -0
  78. package/dest/config/index.d.ts +2 -1
  79. package/dest/config/index.d.ts.map +1 -1
  80. package/dest/config/index.js +2 -1
  81. package/dest/config/node-rpc-config.d.ts +7 -0
  82. package/dest/config/node-rpc-config.d.ts.map +1 -0
  83. package/dest/config/node-rpc-config.js +8 -0
  84. package/dest/contract/artifact_hash.d.ts +1 -3
  85. package/dest/contract/artifact_hash.d.ts.map +1 -1
  86. package/dest/contract/artifact_hash.js +3 -2
  87. package/dest/contract/complete_address.d.ts +0 -2
  88. package/dest/contract/complete_address.d.ts.map +1 -1
  89. package/dest/contract/contract_class_id.d.ts +0 -2
  90. package/dest/contract/contract_class_id.d.ts.map +1 -1
  91. package/dest/contract/contract_instance.d.ts +1 -3
  92. package/dest/contract/contract_instance.d.ts.map +1 -1
  93. package/dest/contract/contract_instance_update.d.ts +1 -3
  94. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  95. package/dest/contract/interfaces/contract_class.d.ts +17 -19
  96. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  97. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  98. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  99. package/dest/contract/private_function.d.ts +0 -2
  100. package/dest/contract/private_function.d.ts.map +1 -1
  101. package/dest/database-version/version_manager.d.ts +0 -4
  102. package/dest/database-version/version_manager.d.ts.map +1 -1
  103. package/dest/errors/proving_error.d.ts.map +1 -1
  104. package/dest/errors/simulation_error.d.ts.map +1 -1
  105. package/dest/errors/simulation_error.js +2 -2
  106. package/dest/file-store/factory.js +1 -1
  107. package/dest/file-store/gcs.d.ts +0 -2
  108. package/dest/file-store/gcs.d.ts.map +1 -1
  109. package/dest/file-store/http.d.ts +1 -2
  110. package/dest/file-store/http.d.ts.map +1 -1
  111. package/dest/file-store/http.js +32 -16
  112. package/dest/file-store/interface.d.ts +0 -2
  113. package/dest/file-store/interface.d.ts.map +1 -1
  114. package/dest/file-store/local.d.ts +0 -2
  115. package/dest/file-store/local.d.ts.map +1 -1
  116. package/dest/gas/gas.d.ts +1 -4
  117. package/dest/gas/gas.d.ts.map +1 -1
  118. package/dest/gas/gas_fees.d.ts +1 -4
  119. package/dest/gas/gas_fees.d.ts.map +1 -1
  120. package/dest/gas/gas_settings.d.ts +1 -3
  121. package/dest/gas/gas_settings.d.ts.map +1 -1
  122. package/dest/interfaces/aztec-node-admin.d.ts +10 -0
  123. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  124. package/dest/interfaces/aztec-node-admin.js +4 -1
  125. package/dest/interfaces/aztec-node.d.ts +1 -2
  126. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  127. package/dest/interfaces/aztec-node.js +7 -2
  128. package/dest/interfaces/configs.d.ts +5 -0
  129. package/dest/interfaces/configs.d.ts.map +1 -1
  130. package/dest/interfaces/configs.js +1 -0
  131. package/dest/interfaces/merkle_tree_operations.d.ts +0 -2
  132. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  133. package/dest/interfaces/p2p.d.ts +2 -0
  134. package/dest/interfaces/p2p.d.ts.map +1 -1
  135. package/dest/interfaces/p2p.js +1 -0
  136. package/dest/interfaces/private_kernel_prover.d.ts +0 -2
  137. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  138. package/dest/interfaces/prover-client.d.ts.map +1 -1
  139. package/dest/interfaces/proving-job.d.ts +15 -17
  140. package/dest/interfaces/proving-job.d.ts.map +1 -1
  141. package/dest/interfaces/pxe.d.ts +6 -6
  142. package/dest/interfaces/pxe.d.ts.map +1 -1
  143. package/dest/interfaces/pxe.js +4 -4
  144. package/dest/interfaces/service.d.ts +2 -3
  145. package/dest/interfaces/service.d.ts.map +1 -1
  146. package/dest/interfaces/world_state.d.ts +4 -1
  147. package/dest/interfaces/world_state.d.ts.map +1 -1
  148. package/dest/kernel/combined_constant_data.d.ts +1 -3
  149. package/dest/kernel/combined_constant_data.d.ts.map +1 -1
  150. package/dest/kernel/hints/key_validation_hint.d.ts +1 -3
  151. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  152. package/dest/kernel/hints/key_validation_request.d.ts +1 -3
  153. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  154. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -3
  155. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  156. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +0 -2
  157. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  158. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +0 -2
  159. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  160. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -3
  161. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  162. package/dest/kernel/hints/read_request.d.ts +0 -2
  163. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  164. package/dest/kernel/hints/read_request_hints.d.ts +4 -6
  165. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  166. package/dest/kernel/hints/rollup_validation_requests.d.ts +1 -3
  167. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -1
  168. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -3
  169. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
  170. package/dest/kernel/hints/transient_data_index_hint.d.ts +0 -3
  171. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +1 -1
  172. package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -2
  173. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
  174. package/dest/kernel/log_hash.d.ts +27 -9
  175. package/dest/kernel/log_hash.d.ts.map +1 -1
  176. package/dest/kernel/log_hash.js +72 -13
  177. package/dest/kernel/note_hash.d.ts +0 -2
  178. package/dest/kernel/note_hash.d.ts.map +1 -1
  179. package/dest/kernel/nullifier.d.ts +0 -2
  180. package/dest/kernel/nullifier.d.ts.map +1 -1
  181. package/dest/kernel/private_accumulated_data.d.ts +4 -6
  182. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  183. package/dest/kernel/private_accumulated_data.js +3 -3
  184. package/dest/kernel/private_call_data.d.ts +0 -2
  185. package/dest/kernel/private_call_data.d.ts.map +1 -1
  186. package/dest/kernel/private_call_request.d.ts +1 -3
  187. package/dest/kernel/private_call_request.d.ts.map +1 -1
  188. package/dest/kernel/private_call_request.js +1 -1
  189. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -7
  190. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  191. package/dest/kernel/private_circuit_public_inputs.js +4 -4
  192. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -4
  193. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  194. package/dest/kernel/private_kernel_data.d.ts +1 -3
  195. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  196. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -3
  197. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  198. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -3
  199. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  200. package/dest/kernel/private_kernel_prover_output.d.ts +31 -7
  201. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  202. package/dest/kernel/private_kernel_prover_output.js +5 -1
  203. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +2 -4
  204. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  205. package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -3
  206. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  207. package/dest/kernel/private_kernel_simulated_output.d.ts +0 -2
  208. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  209. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -3
  210. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  211. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +8 -8
  212. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  213. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -2
  214. package/dest/kernel/private_log_data.d.ts +1 -4
  215. package/dest/kernel/private_log_data.d.ts.map +1 -1
  216. package/dest/kernel/private_log_data.js +4 -2
  217. package/dest/kernel/private_to_avm_accumulated_data.d.ts +3 -5
  218. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  219. package/dest/kernel/private_to_avm_accumulated_data.js +7 -0
  220. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -4
  221. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  222. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -3
  223. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  224. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +2 -5
  225. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  226. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +2 -4
  227. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  228. package/dest/kernel/private_validation_requests.d.ts +1 -4
  229. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  230. package/dest/kernel/private_validation_requests.js +1 -1
  231. package/dest/kernel/public_call_request.d.ts +2 -5
  232. package/dest/kernel/public_call_request.d.ts.map +1 -1
  233. package/dest/kernel/utils/optional_number.d.ts +1 -3
  234. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  235. package/dest/keys/public_keys.d.ts +0 -2
  236. package/dest/keys/public_keys.d.ts.map +1 -1
  237. package/dest/keys/public_keys.js +0 -1
  238. package/dest/logs/contract_class_log.d.ts +53 -12
  239. package/dest/logs/contract_class_log.d.ts.map +1 -1
  240. package/dest/logs/contract_class_log.js +129 -66
  241. package/dest/logs/extended_contract_class_log.d.ts +0 -2
  242. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  243. package/dest/logs/extended_public_log.d.ts +0 -2
  244. package/dest/logs/extended_public_log.d.ts.map +1 -1
  245. package/dest/logs/indexed_tagging_secret.d.ts.map +1 -1
  246. package/dest/logs/log_id.d.ts +0 -2
  247. package/dest/logs/log_id.d.ts.map +1 -1
  248. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  249. package/dest/logs/log_with_tx_data.js +8 -3
  250. package/dest/logs/private_log.d.ts +13 -7
  251. package/dest/logs/private_log.d.ts.map +1 -1
  252. package/dest/logs/private_log.js +44 -30
  253. package/dest/logs/public_log.d.ts +9 -9
  254. package/dest/logs/public_log.d.ts.map +1 -1
  255. package/dest/logs/public_log.js +45 -32
  256. package/dest/logs/tx_scoped_l2_log.d.ts +8 -6
  257. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  258. package/dest/logs/tx_scoped_l2_log.js +1 -2
  259. package/dest/messaging/inbox_leaf.d.ts +5 -2
  260. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  261. package/dest/messaging/inbox_leaf.js +11 -0
  262. package/dest/messaging/l1_actor.d.ts +0 -2
  263. package/dest/messaging/l1_actor.d.ts.map +1 -1
  264. package/dest/messaging/l1_to_l2_message.d.ts +0 -2
  265. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  266. package/dest/messaging/l2_actor.d.ts +0 -2
  267. package/dest/messaging/l2_actor.d.ts.map +1 -1
  268. package/dest/messaging/l2_to_l1_message.d.ts +0 -2
  269. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  270. package/dest/note/extended_note.d.ts +3 -5
  271. package/dest/note/extended_note.d.ts.map +1 -1
  272. package/dest/note/note.d.ts +5 -13
  273. package/dest/note/note.d.ts.map +1 -1
  274. package/dest/p2p/block_attestation.d.ts +6 -5
  275. package/dest/p2p/block_attestation.d.ts.map +1 -1
  276. package/dest/p2p/block_attestation.js +12 -11
  277. package/dest/p2p/block_proposal.d.ts +17 -8
  278. package/dest/p2p/block_proposal.d.ts.map +1 -1
  279. package/dest/p2p/block_proposal.js +29 -13
  280. package/dest/p2p/consensus_payload.d.ts +185 -12
  281. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  282. package/dest/p2p/consensus_payload.js +24 -14
  283. package/dest/p2p/gossipable.d.ts +14 -4
  284. package/dest/p2p/gossipable.d.ts.map +1 -1
  285. package/dest/p2p/gossipable.js +43 -0
  286. package/dest/p2p/signature_utils.d.ts +0 -2
  287. package/dest/p2p/signature_utils.d.ts.map +1 -1
  288. package/dest/p2p/topic_type.d.ts.map +1 -1
  289. package/dest/p2p/topic_type.js +5 -0
  290. package/dest/parity/base_parity_inputs.d.ts +2 -4
  291. package/dest/parity/base_parity_inputs.d.ts.map +1 -1
  292. package/dest/parity/parity_public_inputs.d.ts +2 -4
  293. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  294. package/dest/parity/root_parity_input.d.ts +4 -6
  295. package/dest/parity/root_parity_input.d.ts.map +1 -1
  296. package/dest/parity/root_parity_inputs.d.ts +2 -4
  297. package/dest/parity/root_parity_inputs.d.ts.map +1 -1
  298. package/dest/proofs/client_ivc_proof.d.ts +2 -4
  299. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  300. package/dest/proofs/proof.d.ts +1 -3
  301. package/dest/proofs/proof.d.ts.map +1 -1
  302. package/dest/proofs/proof.js +5 -5
  303. package/dest/proofs/recursive_proof.d.ts +4 -6
  304. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  305. package/dest/rollup/avm_proof_data.d.ts +1 -3
  306. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  307. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +2 -4
  308. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
  309. package/dest/rollup/base_rollup_hints.d.ts +9 -11
  310. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  311. package/dest/rollup/base_rollup_hints.js +5 -5
  312. package/dest/rollup/block_merge_rollup.d.ts +2 -4
  313. package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
  314. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +11 -5
  315. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +1 -1
  316. package/dest/rollup/block_root_or_block_merge_public_inputs.js +6 -2
  317. package/dest/rollup/block_root_rollup.d.ts +8 -10
  318. package/dest/rollup/block_root_rollup.d.ts.map +1 -1
  319. package/dest/rollup/constant_rollup_data.d.ts +1 -3
  320. package/dest/rollup/constant_rollup_data.d.ts.map +1 -1
  321. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +2 -4
  322. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
  323. package/dest/rollup/merge_rollup.d.ts +2 -4
  324. package/dest/rollup/merge_rollup.d.ts.map +1 -1
  325. package/dest/rollup/previous_rollup_block_data.d.ts +0 -2
  326. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  327. package/dest/rollup/previous_rollup_data.d.ts +0 -2
  328. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  329. package/dest/rollup/private_base_rollup_inputs.d.ts +2 -4
  330. package/dest/rollup/private_base_rollup_inputs.d.ts.map +1 -1
  331. package/dest/rollup/private_tube_data.d.ts +1 -3
  332. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  333. package/dest/rollup/public_base_rollup_inputs.d.ts +2 -4
  334. package/dest/rollup/public_base_rollup_inputs.d.ts.map +1 -1
  335. package/dest/rollup/public_tube_data.d.ts +1 -3
  336. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  337. package/dest/rollup/root_rollup.d.ts +9 -8
  338. package/dest/rollup/root_rollup.d.ts.map +1 -1
  339. package/dest/rollup/root_rollup.js +12 -3
  340. package/dest/rollup/state_diff_hints.d.ts +0 -2
  341. package/dest/rollup/state_diff_hints.d.ts.map +1 -1
  342. package/dest/rollup/tube_inputs.d.ts +2 -4
  343. package/dest/rollup/tube_inputs.d.ts.map +1 -1
  344. package/dest/schemas/schemas.d.ts +4 -6
  345. package/dest/schemas/schemas.d.ts.map +1 -1
  346. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
  347. package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
  348. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -2
  349. package/dest/shared_mutable/shared_mutable_values.d.ts.map +1 -1
  350. package/dest/snapshots/download.d.ts +1 -1
  351. package/dest/snapshots/download.d.ts.map +1 -1
  352. package/dest/snapshots/download.js +3 -3
  353. package/dest/snapshots/index.d.ts +1 -1
  354. package/dest/snapshots/index.d.ts.map +1 -1
  355. package/dest/snapshots/index.js +1 -1
  356. package/dest/snapshots/types.d.ts +27 -4
  357. package/dest/snapshots/types.d.ts.map +1 -1
  358. package/dest/snapshots/types.js +8 -0
  359. package/dest/snapshots/upload.d.ts +6 -3
  360. package/dest/snapshots/upload.d.ts.map +1 -1
  361. package/dest/snapshots/upload.js +10 -6
  362. package/dest/tests/factories.d.ts +0 -2
  363. package/dest/tests/factories.d.ts.map +1 -1
  364. package/dest/tests/factories.js +19 -16
  365. package/dest/tests/mocks.d.ts +13 -3
  366. package/dest/tests/mocks.d.ts.map +1 -1
  367. package/dest/tests/mocks.js +40 -8
  368. package/dest/trees/append_only_tree_snapshot.d.ts +1 -4
  369. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  370. package/dest/trees/nullifier_leaf.d.ts +0 -2
  371. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  372. package/dest/trees/nullifier_membership_witness.d.ts +4 -6
  373. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  374. package/dest/trees/protocol_contract_leaf.d.ts +0 -2
  375. package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
  376. package/dest/trees/public_data_leaf.d.ts +1 -3
  377. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  378. package/dest/trees/public_data_witness.d.ts +4 -6
  379. package/dest/trees/public_data_witness.d.ts.map +1 -1
  380. package/dest/tx/block_header.d.ts +3 -4
  381. package/dest/tx/block_header.d.ts.map +1 -1
  382. package/dest/tx/block_header.js +5 -1
  383. package/dest/tx/call_context.d.ts +1 -4
  384. package/dest/tx/call_context.d.ts.map +1 -1
  385. package/dest/tx/capsule.d.ts +1 -3
  386. package/dest/tx/capsule.d.ts.map +1 -1
  387. package/dest/tx/content_commitment.d.ts +10 -12
  388. package/dest/tx/content_commitment.d.ts.map +1 -1
  389. package/dest/tx/function_data.d.ts +0 -2
  390. package/dest/tx/function_data.d.ts.map +1 -1
  391. package/dest/tx/global_variables.d.ts +1 -4
  392. package/dest/tx/global_variables.d.ts.map +1 -1
  393. package/dest/tx/hashed_values.d.ts +1 -3
  394. package/dest/tx/hashed_values.d.ts.map +1 -1
  395. package/dest/tx/index.d.ts +2 -1
  396. package/dest/tx/index.d.ts.map +1 -1
  397. package/dest/tx/index.js +2 -1
  398. package/dest/tx/max_block_number.d.ts +1 -3
  399. package/dest/tx/max_block_number.d.ts.map +1 -1
  400. package/dest/tx/partial_state_reference.d.ts +1 -3
  401. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  402. package/dest/tx/private_execution_result.d.ts +18 -9
  403. package/dest/tx/private_execution_result.d.ts.map +1 -1
  404. package/dest/tx/private_execution_result.js +12 -3
  405. package/dest/tx/profiling.d.ts +110 -0
  406. package/dest/tx/profiling.d.ts.map +1 -0
  407. package/dest/tx/profiling.js +97 -0
  408. package/dest/tx/proposed_block_header.d.ts +80 -0
  409. package/dest/tx/proposed_block_header.d.ts.map +1 -0
  410. package/dest/tx/proposed_block_header.js +130 -0
  411. package/dest/tx/proven_tx.d.ts +73 -1
  412. package/dest/tx/proven_tx.d.ts.map +1 -1
  413. package/dest/tx/proven_tx.js +7 -2
  414. package/dest/tx/public_call_request_with_calldata.d.ts +1 -4
  415. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  416. package/dest/tx/simulated_tx.d.ts +5 -3
  417. package/dest/tx/simulated_tx.d.ts.map +1 -1
  418. package/dest/tx/simulated_tx.js +10 -5
  419. package/dest/tx/state_reference.d.ts +1 -4
  420. package/dest/tx/state_reference.d.ts.map +1 -1
  421. package/dest/tx/tree_snapshots.d.ts +1 -4
  422. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  423. package/dest/tx/tx.d.ts +6 -11
  424. package/dest/tx/tx.d.ts.map +1 -1
  425. package/dest/tx/tx.js +18 -15
  426. package/dest/tx/tx_constant_data.d.ts +1 -3
  427. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  428. package/dest/tx/tx_context.d.ts +1 -3
  429. package/dest/tx/tx_context.d.ts.map +1 -1
  430. package/dest/tx/tx_effect.d.ts +1 -4
  431. package/dest/tx/tx_effect.d.ts.map +1 -1
  432. package/dest/tx/tx_effect.js +33 -63
  433. package/dest/tx/tx_execution_request.d.ts +13 -6
  434. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  435. package/dest/tx/tx_execution_request.js +14 -7
  436. package/dest/tx/tx_hash.d.ts +2 -4
  437. package/dest/tx/tx_hash.d.ts.map +1 -1
  438. package/dest/tx/tx_receipt.d.ts.map +1 -1
  439. package/dest/tx/tx_receipt.js +1 -1
  440. package/dest/tx/tx_request.d.ts +7 -5
  441. package/dest/tx/tx_request.d.ts.map +1 -1
  442. package/dest/tx/tx_request.js +8 -5
  443. package/dest/tx/validator/error_texts.d.ts +4 -2
  444. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  445. package/dest/tx/validator/error_texts.js +4 -2
  446. package/dest/types/shared.d.ts +5 -3
  447. package/dest/types/shared.d.ts.map +1 -1
  448. package/dest/update-checker/index.d.ts +2 -0
  449. package/dest/update-checker/index.d.ts.map +1 -0
  450. package/dest/update-checker/index.js +1 -0
  451. package/dest/update-checker/update-checker.d.ts +48 -0
  452. package/dest/update-checker/update-checker.d.ts.map +1 -0
  453. package/dest/update-checker/update-checker.js +121 -0
  454. package/dest/validators/schemas.d.ts +24 -24
  455. package/dest/validators/schemas.js +1 -1
  456. package/dest/validators/types.d.ts +2 -2
  457. package/dest/validators/types.d.ts.map +1 -1
  458. package/dest/versioning/versioning.d.ts +1 -1
  459. package/dest/versioning/versioning.d.ts.map +1 -1
  460. package/dest/vks/verification_key.d.ts +7 -9
  461. package/dest/vks/verification_key.d.ts.map +1 -1
  462. package/dest/vks/vk_witness_data.d.ts +1 -3
  463. package/dest/vks/vk_witness_data.d.ts.map +1 -1
  464. package/package.json +16 -13
  465. package/src/abi/abi.ts +29 -12
  466. package/src/abi/contract_artifact.ts +3 -17
  467. package/src/abi/decoder.ts +10 -3
  468. package/src/abi/encoder.ts +5 -2
  469. package/src/avm/avm.ts +13 -7
  470. package/src/avm/avm_accumulated_data.ts +30 -2
  471. package/src/avm/avm_circuit_public_inputs.ts +26 -0
  472. package/src/avm/message_pack.ts +7 -1
  473. package/src/avm/public_data_write.ts +21 -1
  474. package/src/avm/public_inner_call_request.ts +1 -1
  475. package/src/avm/revert_code.ts +5 -5
  476. package/src/block/body.ts +5 -11
  477. package/src/block/l2_block.ts +1 -61
  478. package/src/block/published_l2_block.ts +8 -16
  479. package/src/config/index.ts +2 -1
  480. package/src/config/node-rpc-config.ts +14 -0
  481. package/src/contract/artifact_hash.ts +5 -3
  482. package/src/contract/private_function.ts +4 -2
  483. package/src/errors/proving_error.ts +5 -1
  484. package/src/errors/simulation_error.ts +2 -2
  485. package/src/file-store/factory.ts +1 -1
  486. package/src/file-store/http.ts +27 -18
  487. package/src/gas/gas.ts +4 -1
  488. package/src/interfaces/aztec-node-admin.ts +16 -0
  489. package/src/interfaces/aztec-node.ts +4 -2
  490. package/src/interfaces/configs.ts +3 -0
  491. package/src/interfaces/p2p.ts +4 -0
  492. package/src/interfaces/prover-client.ts +4 -1
  493. package/src/interfaces/pxe.ts +12 -7
  494. package/src/interfaces/service.ts +2 -3
  495. package/src/interfaces/world_state.ts +6 -1
  496. package/src/kernel/hints/note_hash_read_request_hints.ts +4 -1
  497. package/src/kernel/hints/nullifier_read_request_hints.ts +4 -1
  498. package/src/kernel/hints/read_request.ts +4 -1
  499. package/src/kernel/hints/read_request_hints.ts +12 -3
  500. package/src/kernel/hints/transient_data_index_hint.ts +4 -1
  501. package/src/kernel/hints/tree_leaf_read_request.ts +4 -1
  502. package/src/kernel/log_hash.ts +86 -14
  503. package/src/kernel/note_hash.ts +8 -2
  504. package/src/kernel/nullifier.ts +9 -2
  505. package/src/kernel/private_accumulated_data.ts +4 -4
  506. package/src/kernel/private_call_request.ts +1 -1
  507. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  508. package/src/kernel/private_kernel_prover_output.ts +10 -0
  509. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +13 -2
  510. package/src/kernel/private_log_data.ts +13 -4
  511. package/src/kernel/private_to_avm_accumulated_data.ts +9 -1
  512. package/src/kernel/private_validation_requests.ts +1 -1
  513. package/src/kernel/public_call_request.ts +4 -1
  514. package/src/keys/public_keys.ts +1 -1
  515. package/src/logs/contract_class_log.ts +156 -57
  516. package/src/logs/indexed_tagging_secret.ts +4 -1
  517. package/src/logs/log_with_tx_data.ts +7 -2
  518. package/src/logs/private_log.ts +52 -30
  519. package/src/logs/public_log.ts +62 -38
  520. package/src/logs/tx_scoped_l2_log.ts +1 -2
  521. package/src/messaging/inbox_leaf.ts +10 -0
  522. package/src/messaging/l2_to_l1_message.ts +9 -2
  523. package/src/p2p/block_attestation.ts +16 -12
  524. package/src/p2p/block_proposal.ts +42 -11
  525. package/src/p2p/consensus_payload.ts +33 -16
  526. package/src/p2p/gossipable.ts +44 -2
  527. package/src/p2p/topic_type.ts +2 -0
  528. package/src/proofs/proof.ts +5 -5
  529. package/src/rollup/base_rollup_hints.ts +7 -7
  530. package/src/rollup/block_root_or_block_merge_public_inputs.ts +10 -1
  531. package/src/rollup/private_base_rollup_inputs.ts +4 -1
  532. package/src/rollup/root_rollup.ts +12 -0
  533. package/src/rollup/tube_inputs.ts +4 -1
  534. package/src/shared_mutable/scheduled_delay_change.ts +5 -1
  535. package/src/shared_mutable/scheduled_value_change.ts +5 -1
  536. package/src/shared_mutable/shared_mutable_values.ts +4 -1
  537. package/src/snapshots/download.ts +3 -4
  538. package/src/snapshots/index.ts +1 -1
  539. package/src/snapshots/types.ts +12 -0
  540. package/src/snapshots/upload.ts +19 -11
  541. package/src/tests/factories.ts +35 -18
  542. package/src/tests/mocks.ts +69 -10
  543. package/src/tx/block_header.ts +16 -2
  544. package/src/tx/content_commitment.ts +6 -1
  545. package/src/tx/index.ts +2 -1
  546. package/src/tx/private_execution_result.ts +14 -5
  547. package/src/tx/profiling.ts +126 -0
  548. package/src/tx/proposed_block_header.ts +169 -0
  549. package/src/tx/proven_tx.ts +4 -0
  550. package/src/tx/simulated_tx.ts +12 -2
  551. package/src/tx/tx.ts +18 -17
  552. package/src/tx/tx_effect.ts +36 -76
  553. package/src/tx/tx_execution_request.ts +11 -0
  554. package/src/tx/tx_receipt.ts +1 -1
  555. package/src/tx/tx_request.ts +12 -3
  556. package/src/tx/validator/error_texts.ts +4 -2
  557. package/src/types/shared.ts +5 -0
  558. package/src/update-checker/index.ts +1 -0
  559. package/src/update-checker/update-checker.ts +152 -0
  560. package/src/validators/schemas.ts +1 -1
  561. package/src/validators/types.ts +2 -2
  562. package/src/versioning/versioning.ts +1 -1
  563. package/src/vks/verification_key.ts +8 -2
  564. package/dest/config/config.d.ts.map +0 -1
  565. package/dest/tx/profiled_tx.d.ts +0 -9
  566. package/dest/tx/profiled_tx.d.ts.map +0 -1
  567. package/dest/tx/profiled_tx.js +0 -28
  568. package/src/tx/profiled_tx.ts +0 -28
  569. /package/dest/config/{config.js → chain-config.js} +0 -0
  570. /package/src/config/{config.ts → chain-config.ts} +0 -0
@@ -7,7 +7,7 @@ import { MembershipWitness } from '@aztec/foundation/trees';
7
7
  import type { FieldsOf } from '@aztec/foundation/types';
8
8
 
9
9
  import { PublicDataHint } from '../avm/public_data_hint.js';
10
- import { ContractClassLog } from '../logs/contract_class_log.js';
10
+ import { ContractClassLogFields } from '../logs/index.js';
11
11
  import { PartialStateReference } from '../tx/partial_state_reference.js';
12
12
  import { ConstantRollupData } from './constant_rollup_data.js';
13
13
  import { PrivateBaseStateDiffHints } from './state_diff_hints.js';
@@ -39,7 +39,7 @@ export class PrivateBaseRollupHints {
39
39
  /**
40
40
  * Preimages to the kernel's contractClassLogsHashes.
41
41
  */
42
- public contractClassLogsPreimages: Tuple<ContractClassLog, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
42
+ public contractClassLogsPreimages: Tuple<ContractClassLogFields, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
43
43
  /**
44
44
  * Data which is not modified by the base rollup circuit.
45
45
  */
@@ -86,7 +86,7 @@ export class PrivateBaseRollupHints {
86
86
  reader.readObject(PrivateBaseStateDiffHints),
87
87
  reader.readObject(PublicDataHint),
88
88
  MembershipWitness.fromBuffer(reader, ARCHIVE_HEIGHT),
89
- reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog),
89
+ makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
90
90
  reader.readObject(ConstantRollupData),
91
91
  );
92
92
  }
@@ -102,7 +102,7 @@ export class PrivateBaseRollupHints {
102
102
  PrivateBaseStateDiffHints.empty(),
103
103
  PublicDataHint.empty(),
104
104
  MembershipWitness.empty(ARCHIVE_HEIGHT),
105
- makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.empty),
105
+ makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLogFields.empty),
106
106
  ConstantRollupData.empty(),
107
107
  );
108
108
  }
@@ -121,7 +121,7 @@ export class PublicBaseRollupHints {
121
121
  /**
122
122
  * Preimages to the kernel's contractClassLogsHashes.
123
123
  */
124
- public contractClassLogsPreimages: Tuple<ContractClassLog, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
124
+ public contractClassLogsPreimages: Tuple<ContractClassLogFields, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
125
125
  /**
126
126
  * Data which is not modified by the base rollup circuit.
127
127
  */
@@ -162,7 +162,7 @@ export class PublicBaseRollupHints {
162
162
  return new PublicBaseRollupHints(
163
163
  reader.readObject(SpongeBlob),
164
164
  MembershipWitness.fromBuffer(reader, ARCHIVE_HEIGHT),
165
- reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog),
165
+ makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
166
166
  reader.readObject(ConstantRollupData),
167
167
  );
168
168
  }
@@ -175,7 +175,7 @@ export class PublicBaseRollupHints {
175
175
  return new PublicBaseRollupHints(
176
176
  SpongeBlob.empty(),
177
177
  MembershipWitness.empty(ARCHIVE_HEIGHT),
178
- makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.empty),
178
+ makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLogFields.empty),
179
179
  ConstantRollupData.empty(),
180
180
  );
181
181
  }
@@ -36,6 +36,10 @@ export class BlockRootOrBlockMergePublicInputs {
36
36
  * Note: Truncated to 31 bytes to fit in Fr.
37
37
  */
38
38
  public outHash: Fr,
39
+ /**
40
+ * The hashes of the proposed block headers of the constituent blocks.
41
+ */
42
+ public proposedBlockHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
39
43
  /**
40
44
  * The summed `transaction_fee`s and recipients of the constituent blocks.
41
45
  */
@@ -71,6 +75,7 @@ export class BlockRootOrBlockMergePublicInputs {
71
75
  reader.readObject(GlobalVariables),
72
76
  reader.readObject(GlobalVariables),
73
77
  Fr.fromBuffer(reader),
78
+ reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
74
79
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient),
75
80
  Fr.fromBuffer(reader),
76
81
  Fr.fromBuffer(reader),
@@ -90,6 +95,7 @@ export class BlockRootOrBlockMergePublicInputs {
90
95
  this.startGlobalVariables,
91
96
  this.endGlobalVariables,
92
97
  this.outHash,
98
+ this.proposedBlockHeaderHashes,
93
99
  this.fees,
94
100
  this.vkTreeRoot,
95
101
  this.protocolContractTreeRoot,
@@ -127,7 +133,10 @@ export class BlockRootOrBlockMergePublicInputs {
127
133
  }
128
134
 
129
135
  export class FeeRecipient {
130
- constructor(public recipient: EthAddress, public value: Fr) {}
136
+ constructor(
137
+ public recipient: EthAddress,
138
+ public value: Fr,
139
+ ) {}
131
140
 
132
141
  static fromBuffer(buffer: Buffer | BufferReader): FeeRecipient {
133
142
  const reader = BufferReader.asReader(buffer);
@@ -7,7 +7,10 @@ import { PrivateBaseRollupHints } from './base_rollup_hints.js';
7
7
  import { PrivateTubeData } from './private_tube_data.js';
8
8
 
9
9
  export class PrivateBaseRollupInputs {
10
- constructor(public tubeData: PrivateTubeData, public hints: PrivateBaseRollupHints) {}
10
+ constructor(
11
+ public tubeData: PrivateTubeData,
12
+ public hints: PrivateBaseRollupHints,
13
+ ) {}
11
14
 
12
15
  static from(fields: FieldsOf<PrivateBaseRollupInputs>): PrivateBaseRollupInputs {
13
16
  return new PrivateBaseRollupInputs(...PrivateBaseRollupInputs.getFields(fields));
@@ -107,7 +107,10 @@ export class RootRollupPublicInputs {
107
107
  public endTimestamp: Fr,
108
108
  public endBlockNumber: Fr,
109
109
  public outHash: Fr,
110
+ public proposedBlockHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
110
111
  public fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>,
112
+ public chainId: Fr,
113
+ public version: Fr,
111
114
  public vkTreeRoot: Fr,
112
115
  public protocolContractTreeRoot: Fr,
113
116
  public proverId: Fr,
@@ -121,7 +124,10 @@ export class RootRollupPublicInputs {
121
124
  fields.endTimestamp,
122
125
  fields.endBlockNumber,
123
126
  fields.outHash,
127
+ fields.proposedBlockHeaderHashes,
124
128
  fields.fees,
129
+ fields.chainId,
130
+ fields.version,
125
131
  fields.vkTreeRoot,
126
132
  fields.protocolContractTreeRoot,
127
133
  fields.proverId,
@@ -154,10 +160,13 @@ export class RootRollupPublicInputs {
154
160
  Fr.fromBuffer(reader),
155
161
  Fr.fromBuffer(reader),
156
162
  Fr.fromBuffer(reader),
163
+ reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
157
164
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient),
158
165
  Fr.fromBuffer(reader),
159
166
  Fr.fromBuffer(reader),
160
167
  Fr.fromBuffer(reader),
168
+ Fr.fromBuffer(reader),
169
+ Fr.fromBuffer(reader),
161
170
  reader.readArray(AZTEC_MAX_EPOCH_DURATION, BlockBlobPublicInputs),
162
171
  );
163
172
  }
@@ -188,10 +197,13 @@ export class RootRollupPublicInputs {
188
197
  Fr.random(),
189
198
  Fr.random(),
190
199
  Fr.random(),
200
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, Fr.random),
191
201
  makeTuple(AZTEC_MAX_EPOCH_DURATION, FeeRecipient.random),
192
202
  Fr.random(),
193
203
  Fr.random(),
194
204
  Fr.random(),
205
+ Fr.random(),
206
+ Fr.random(),
195
207
  makeTuple(AZTEC_MAX_EPOCH_DURATION, BlockBlobPublicInputs.empty),
196
208
  );
197
209
  }
@@ -10,7 +10,10 @@ import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
10
10
  * 'usePublicTailVk' signifies if we should prove this with the public or private kernel tail client IVC VKs.
11
11
  */
12
12
  export class TubeInputs {
13
- constructor(public usePublicTailVk: boolean, public clientIVCData: ClientIvcProof) {}
13
+ constructor(
14
+ public usePublicTailVk: boolean,
15
+ public clientIVCData: ClientIvcProof,
16
+ ) {}
14
17
 
15
18
  static from(fields: FieldsOf<TubeInputs>): TubeInputs {
16
19
  return new TubeInputs(...TubeInputs.getFields(fields));
@@ -1,7 +1,11 @@
1
1
  import type { UInt32 } from '../types/shared.js';
2
2
 
3
3
  export class ScheduledDelayChange {
4
- constructor(public pre: UInt32 | undefined, public post: UInt32 | undefined, public blockOfChange: UInt32) {}
4
+ constructor(
5
+ public pre: UInt32 | undefined,
6
+ public post: UInt32 | undefined,
7
+ public blockOfChange: UInt32,
8
+ ) {}
5
9
 
6
10
  static empty() {
7
11
  return new this(undefined, undefined, 0);
@@ -1,7 +1,11 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
 
3
3
  export class ScheduledValueChange {
4
- constructor(public previous: Fr[], public post: Fr[], public blockOfChange: number) {
4
+ constructor(
5
+ public previous: Fr[],
6
+ public post: Fr[],
7
+ public blockOfChange: number,
8
+ ) {
5
9
  if (this.previous.length !== this.post.length) {
6
10
  throw new Error('Previous and post must have the same length');
7
11
  }
@@ -9,7 +9,10 @@ import { ScheduledValueChange } from './scheduled_value_change.js';
9
9
  export const SHARED_MUTABLE_VALUES_LEN = 2 * UPDATES_VALUE_SIZE + 1;
10
10
 
11
11
  export class SharedMutableValues {
12
- constructor(public svc: ScheduledValueChange, public sdc: ScheduledDelayChange) {}
12
+ constructor(
13
+ public svc: ScheduledValueChange,
14
+ public sdc: ScheduledDelayChange,
15
+ ) {}
13
16
 
14
17
  static fromFields(fields: Fr[] | FieldReader) {
15
18
  const reader = FieldReader.asReader(fields);
@@ -2,8 +2,6 @@ import { fromEntries, getEntries, maxBy } from '@aztec/foundation/collection';
2
2
  import { jsonParseWithSchemaSync } from '@aztec/foundation/json-rpc';
3
3
  import type { ReadOnlyFileStore } from '@aztec/stdlib/file-store';
4
4
 
5
- import { join } from 'path';
6
-
7
5
  import {
8
6
  SnapshotDataKeys,
9
7
  type SnapshotDataUrls,
@@ -47,8 +45,9 @@ export function getSnapshotIndexPath(metadata: SnapshotsIndexMetadata): string {
47
45
  return `${getBasePath(metadata)}/index.json`;
48
46
  }
49
47
 
50
- export function makeSnapshotLocalPaths(baseDir: string): SnapshotDataUrls {
51
- return fromEntries(SnapshotDataKeys.map(key => [key, join(baseDir, `${key}.db`)]));
48
+ export function makeSnapshotPaths(baseDir: string): SnapshotDataUrls {
49
+ // We do not use path.join since that screws up protocol prefixes
50
+ return fromEntries(SnapshotDataKeys.map(key => [key, `${baseDir}/${key}.db`]));
52
51
  }
53
52
 
54
53
  export async function downloadSnapshot(
@@ -1,3 +1,3 @@
1
1
  export * from './types.js';
2
2
  export * from './upload.js';
3
- export { downloadSnapshot, getLatestSnapshotMetadata, makeSnapshotLocalPaths } from './download.js';
3
+ export { getBasePath, downloadSnapshot, getLatestSnapshotMetadata, makeSnapshotPaths } from './download.js';
@@ -35,6 +35,9 @@ export type SnapshotsIndex = SnapshotsIndexMetadata & {
35
35
  snapshots: SnapshotMetadata[];
36
36
  };
37
37
 
38
+ export type UploadSnapshotMetadata = Pick<SnapshotMetadata, 'l2BlockNumber' | 'l2BlockHash' | 'l1BlockNumber'> &
39
+ Pick<SnapshotsIndex, 'l1ChainId' | 'rollupVersion' | 'rollupAddress'>;
40
+
38
41
  export const SnapshotsIndexSchema = z.object({
39
42
  l1ChainId: z.number(),
40
43
  rollupVersion: z.number(),
@@ -56,3 +59,12 @@ export const SnapshotsIndexSchema = z.object({
56
59
  }),
57
60
  ),
58
61
  }) satisfies ZodFor<SnapshotsIndex>;
62
+
63
+ export const UploadSnapshotMetadataSchema = z.object({
64
+ l2BlockNumber: z.number(),
65
+ l2BlockHash: z.string(),
66
+ l1BlockNumber: z.number(),
67
+ l1ChainId: z.number(),
68
+ rollupVersion: z.number(),
69
+ rollupAddress: schemas.EthAddress,
70
+ }) satisfies ZodFor<UploadSnapshotMetadata>;
@@ -1,41 +1,49 @@
1
1
  import { fromEntries, getEntries, pick } from '@aztec/foundation/collection';
2
2
  import { jsonStringify } from '@aztec/foundation/json-rpc';
3
+ import { isoDate } from '@aztec/foundation/string';
3
4
  import type { FileStore } from '@aztec/stdlib/file-store';
4
5
 
5
6
  import { getBasePath, getSnapshotIndex, getSnapshotIndexPath } from './download.js';
6
- import type { SnapshotDataKeys, SnapshotMetadata, SnapshotsIndex } from './types.js';
7
+ import type { SnapshotDataKeys, SnapshotMetadata, SnapshotsIndex, UploadSnapshotMetadata } from './types.js';
7
8
 
8
- export type UploadSnapshotMetadata = Pick<SnapshotMetadata, 'l2BlockNumber' | 'l2BlockHash' | 'l1BlockNumber'> &
9
- Pick<SnapshotsIndex, 'l1ChainId' | 'rollupVersion' | 'rollupAddress'>;
10
-
11
- export async function uploadSnapshot(
9
+ export async function uploadSnapshotData(
12
10
  localPaths: Record<SnapshotDataKeys, string>,
13
11
  schemaVersions: SnapshotMetadata['schemaVersions'],
14
12
  metadata: UploadSnapshotMetadata,
15
13
  store: FileStore,
14
+ opts: { pathFor?: (key: SnapshotDataKeys) => string; private?: boolean } = {},
16
15
  ): Promise<SnapshotMetadata> {
17
16
  const timestamp = Date.now();
18
- const date = new Date().toISOString().replace(/[-:T]/g, '').replace(/\..+$/, '');
17
+ const date = isoDate();
19
18
  const basePath = getBasePath(metadata);
20
- const targetPathFor = (key: SnapshotDataKeys) => `${basePath}/${key}-${date}-${metadata.l2BlockHash}.db`;
19
+ const targetPathFor =
20
+ opts.pathFor ?? ((key: SnapshotDataKeys) => `${basePath}/${key}-${date}-${metadata.l2BlockHash}.db`);
21
21
 
22
22
  const dataUrls = fromEntries(
23
23
  await Promise.all(
24
24
  getEntries(localPaths).map(
25
25
  async ([key, path]) =>
26
- [key, await store.upload(targetPathFor(key), path, { compress: true, public: true })] as const,
26
+ [key, await store.upload(targetPathFor(key), path, { compress: true, public: !opts.private })] as const,
27
27
  ),
28
28
  ),
29
29
  );
30
30
 
31
- const snapshotsIndex = (await getSnapshotIndex(metadata, store)) ?? createEmptyIndex(metadata);
32
-
33
- const newSnapshotMetadata: SnapshotMetadata = {
31
+ return {
34
32
  ...pick(metadata, 'l1BlockNumber', 'l2BlockHash', 'l2BlockNumber'),
35
33
  schemaVersions,
36
34
  timestamp,
37
35
  dataUrls,
38
36
  };
37
+ }
38
+
39
+ export async function uploadSnapshotToIndex(
40
+ localPaths: Record<SnapshotDataKeys, string>,
41
+ schemaVersions: SnapshotMetadata['schemaVersions'],
42
+ metadata: UploadSnapshotMetadata,
43
+ store: FileStore,
44
+ ): Promise<SnapshotMetadata> {
45
+ const newSnapshotMetadata = await uploadSnapshotData(localPaths, schemaVersions, metadata, store);
46
+ const snapshotsIndex = (await getSnapshotIndex(metadata, store)) ?? createEmptyIndex(metadata);
39
47
  snapshotsIndex.snapshots.unshift(newSnapshotMetadata);
40
48
 
41
49
  await store.save(getSnapshotIndexPath(metadata), Buffer.from(jsonStringify(snapshotsIndex, true)), {
@@ -4,7 +4,7 @@ import {
4
4
  AVM_PROOF_LENGTH_IN_FIELDS,
5
5
  AZTEC_MAX_EPOCH_DURATION,
6
6
  BLOBS_PER_BLOCK,
7
- CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS,
7
+ CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
8
8
  FIELDS_PER_BLOB,
9
9
  FIXED_DA_GAS,
10
10
  FIXED_L2_GAS,
@@ -36,7 +36,7 @@ import {
36
36
  NUM_MSGS_PER_BASE_PARITY,
37
37
  PRIVATE_LOG_SIZE_IN_FIELDS,
38
38
  PUBLIC_DATA_TREE_HEIGHT,
39
- PUBLIC_LOG_DATA_SIZE_IN_FIELDS,
39
+ PUBLIC_LOG_SIZE_IN_FIELDS,
40
40
  RECURSIVE_PROOF_LENGTH,
41
41
  TUBE_PROOF_LENGTH,
42
42
  VK_TREE_HEIGHT,
@@ -108,7 +108,7 @@ import {
108
108
  PrivateToRollupAccumulatedData,
109
109
  mergeAccumulatedData,
110
110
  } from '../kernel/index.js';
111
- import { LogHash, ScopedLogHash } from '../kernel/log_hash.js';
111
+ import { CountedLogHash, LogHash, ScopedLogHash } from '../kernel/log_hash.js';
112
112
  import { NoteHash } from '../kernel/note_hash.js';
113
113
  import { Nullifier } from '../kernel/nullifier.js';
114
114
  import { PrivateCallRequest } from '../kernel/private_call_request.js';
@@ -117,7 +117,7 @@ import { PrivateLogData } from '../kernel/private_log_data.js';
117
117
  import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_rollup_kernel_circuit_public_inputs.js';
118
118
  import { CountedPublicCallRequest, PublicCallRequest } from '../kernel/public_call_request.js';
119
119
  import { PublicKeys, computeAddress } from '../keys/index.js';
120
- import { ContractClassLog } from '../logs/contract_class_log.js';
120
+ import { ContractClassLogFields } from '../logs/index.js';
121
121
  import { PrivateLog } from '../logs/private_log.js';
122
122
  import { PublicLog } from '../logs/public_log.js';
123
123
  import { L2ToL1Message, ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
@@ -178,7 +178,11 @@ import { mockTx } from './mocks.js';
178
178
  * @returns A side effect object.
179
179
  */
180
180
  function makeLogHash(seed: number) {
181
- return new LogHash(fr(seed), seed + 1, seed + 2);
181
+ return new LogHash(fr(seed), seed + 1);
182
+ }
183
+
184
+ function makeCountedLogHash(seed: number) {
185
+ return new CountedLogHash(makeLogHash(seed), seed + 0x10);
182
186
  }
183
187
 
184
188
  function makeScopedLogHash(seed: number) {
@@ -193,16 +197,8 @@ function makeNullifier(seed: number) {
193
197
  return new Nullifier(fr(seed), seed + 1, fr(seed + 2));
194
198
  }
195
199
 
196
- function makeContractClassLog(seed: number) {
197
- // The '* 1' removes the 'Type instantiation is excessively deep and possibly infinite. ts(2589)' err
198
- return new ContractClassLog(
199
- makeAztecAddress(seed),
200
- makeTuple(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS * 1, fr, seed + 1),
201
- );
202
- }
203
-
204
200
  function makePrivateLog(seed: number) {
205
- return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, fr, seed));
201
+ return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, fr, seed), PRIVATE_LOG_SIZE_IN_FIELDS);
206
202
  }
207
203
 
208
204
  function makePrivateLogData(seed: number) {
@@ -210,7 +206,11 @@ function makePrivateLogData(seed: number) {
210
206
  }
211
207
 
212
208
  function makePublicLog(seed: number) {
213
- return new PublicLog(makeAztecAddress(seed), makeTuple(PUBLIC_LOG_DATA_SIZE_IN_FIELDS, fr, seed + 1));
209
+ return new PublicLog(
210
+ makeAztecAddress(seed),
211
+ makeTuple(PUBLIC_LOG_SIZE_IN_FIELDS, fr, seed + 1),
212
+ PUBLIC_LOG_SIZE_IN_FIELDS,
213
+ );
214
214
  }
215
215
 
216
216
  /**
@@ -548,6 +548,7 @@ export function makeTxRequest(seed = 1): TxRequest {
548
548
  functionData: new FunctionData(makeSelector(seed + 0x100), /*isPrivate=*/ true),
549
549
  argsHash: fr(seed + 0x200),
550
550
  txContext: makeTxContext(seed + 0x400),
551
+ salt: fr(seed + 0x500),
551
552
  });
552
553
  }
553
554
 
@@ -577,7 +578,7 @@ export function makePrivateCircuitPublicInputs(seed = 0): PrivateCircuitPublicIn
577
578
  publicTeardownCallRequest: makePublicCallRequest(seed + 0x800),
578
579
  l2ToL1Msgs: makeTuple(MAX_L2_TO_L1_MSGS_PER_CALL, makeL2ToL1Message, seed + 0x800),
579
580
  privateLogs: makeTuple(MAX_PRIVATE_LOGS_PER_CALL, makePrivateLogData, seed + 0x875),
580
- contractClassLogsHashes: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeLogHash, seed + 0xa00),
581
+ contractClassLogsHashes: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeCountedLogHash, seed + 0xa00),
581
582
  startSideEffectCounter: fr(seed + 0x849),
582
583
  endSideEffectCounter: fr(seed + 0x850),
583
584
  historicalHeader: makeHeader(seed + 0xd00, undefined),
@@ -716,6 +717,7 @@ export function makeBlockRootOrBlockMergeRollupPublicInputs(
716
717
  globalVariables ?? makeGlobalVariables(seed + 0x400),
717
718
  globalVariables ?? makeGlobalVariables(seed + 0x500),
718
719
  fr(seed + 0x600),
720
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x650),
719
721
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x700),
720
722
  fr(seed + 0x800),
721
723
  fr(seed + 0x801),
@@ -884,10 +886,13 @@ export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
884
886
  fr(seed + 0x300),
885
887
  fr(seed + 0x400),
886
888
  fr(seed + 0x500),
889
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x650),
887
890
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x600),
888
891
  fr(seed + 0x700),
889
892
  fr(seed + 0x701),
890
893
  fr(seed + 0x702),
894
+ fr(seed + 0x703),
895
+ fr(seed + 0x704),
891
896
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeBlockBlobPublicInputs(seed), 0x800),
892
897
  );
893
898
  }
@@ -1077,6 +1082,10 @@ function makePrivateTubeData(seed = 1, kernelPublicInputs?: PrivateToRollupKerne
1077
1082
  );
1078
1083
  }
1079
1084
 
1085
+ function makeContractClassLogFields(seed = 1) {
1086
+ return new ContractClassLogFields(makeArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, fr, seed));
1087
+ }
1088
+
1080
1089
  function makePrivateBaseRollupHints(seed = 1) {
1081
1090
  const start = makePartialStateReference(seed + 0x100);
1082
1091
 
@@ -1086,7 +1095,11 @@ function makePrivateBaseRollupHints(seed = 1) {
1086
1095
 
1087
1096
  const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
1088
1097
 
1089
- const contractClassLogsPreimages = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLog, seed + 0x800);
1098
+ const contractClassLogsPreimages = makeTuple(
1099
+ MAX_CONTRACT_CLASS_LOGS_PER_TX,
1100
+ makeContractClassLogFields,
1101
+ seed + 0x800,
1102
+ );
1090
1103
 
1091
1104
  const constants = makeConstantRollupData(0x100);
1092
1105
 
@@ -1108,7 +1121,11 @@ function makePublicBaseRollupHints(seed = 1) {
1108
1121
 
1109
1122
  const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
1110
1123
 
1111
- const contractClassLogsPreimages = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLog, seed + 0x800);
1124
+ const contractClassLogsPreimages = makeTuple(
1125
+ MAX_CONTRACT_CLASS_LOGS_PER_TX,
1126
+ makeContractClassLogFields,
1127
+ seed + 0x800,
1128
+ );
1112
1129
 
1113
1130
  const constants = makeConstantRollupData(0x100);
1114
1131
 
@@ -1,10 +1,13 @@
1
1
  import { MAX_ENQUEUED_CALLS_PER_TX } from '@aztec/constants';
2
+ import { Buffer32 } from '@aztec/foundation/buffer';
2
3
  import { times } from '@aztec/foundation/collection';
3
4
  import { Secp256k1Signer, randomBytes } from '@aztec/foundation/crypto';
4
5
  import { Fr } from '@aztec/foundation/fields';
5
6
 
6
7
  import type { ContractArtifact } from '../abi/abi.js';
7
8
  import { AztecAddress } from '../aztec-address/index.js';
9
+ import { L2Block } from '../block/l2_block.js';
10
+ import type { PublishedL2Block } from '../block/published_l2_block.js';
8
11
  import { computeContractAddressFromInstance } from '../contract/contract_address.js';
9
12
  import { getContractClassFromArtifact } from '../contract/contract_class.js';
10
13
  import { SerializableContractInstance } from '../contract/contract_instance.js';
@@ -25,7 +28,14 @@ import { BlockProposal } from '../p2p/block_proposal.js';
25
28
  import { ConsensusPayload } from '../p2p/consensus_payload.js';
26
29
  import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
27
30
  import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
28
- import { BlockHeader, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx } from '../tx/index.js';
31
+ import {
32
+ BlockHeader,
33
+ HashedValues,
34
+ PrivateCallExecutionResult,
35
+ PrivateExecutionResult,
36
+ StateReference,
37
+ Tx,
38
+ } from '../tx/index.js';
29
39
  import { PublicSimulationOutput } from '../tx/public_simulation_output.js';
30
40
  import { TxSimulationResult, accumulatePrivateReturnValues } from '../tx/simulated_tx.js';
31
41
  import { TxEffect } from '../tx/tx_effect.js';
@@ -79,6 +89,10 @@ export const mockTx = async (
79
89
  feePayer,
80
90
  clientIvcProof = ClientIvcProof.empty(),
81
91
  maxPriorityFeesPerGas,
92
+ chainId = Fr.ZERO,
93
+ version = Fr.ZERO,
94
+ vkTreeRoot = Fr.ZERO,
95
+ protocolContractTreeRoot = Fr.ZERO,
82
96
  }: {
83
97
  numberOfNonRevertiblePublicCallRequests?: number;
84
98
  numberOfRevertiblePublicCallRequests?: number;
@@ -88,6 +102,10 @@ export const mockTx = async (
88
102
  feePayer?: AztecAddress;
89
103
  clientIvcProof?: ClientIvcProof;
90
104
  maxPriorityFeesPerGas?: GasFees;
105
+ chainId?: Fr;
106
+ version?: Fr;
107
+ vkTreeRoot?: Fr;
108
+ protocolContractTreeRoot?: Fr;
91
109
  } = {},
92
110
  ) => {
93
111
  const totalPublicCallRequests =
@@ -102,6 +120,10 @@ export const mockTx = async (
102
120
  maxPriorityFeesPerGas,
103
121
  });
104
122
  data.feePayer = feePayer ?? (await AztecAddress.random());
123
+ data.constants.txContext.chainId = chainId;
124
+ data.constants.txContext.version = version;
125
+ data.constants.vkTreeRoot = vkTreeRoot;
126
+ data.constants.protocolContractTreeRoot = protocolContractTreeRoot;
105
127
 
106
128
  const publicFunctionCalldata: HashedValues[] = [];
107
129
  if (!isForPublic) {
@@ -143,8 +165,8 @@ export const mockTx = async (
143
165
  return new Tx(data, clientIvcProof, [], publicFunctionCalldata);
144
166
  };
145
167
 
146
- export const mockTxForRollup = (seed = 1) =>
147
- mockTx(seed, { numberOfNonRevertiblePublicCallRequests: 0, numberOfRevertiblePublicCallRequests: 0 });
168
+ export const mockTxForRollup = (seed = 1, opts: Parameters<typeof mockTx>[1] = {}) =>
169
+ mockTx(seed, { ...opts, numberOfNonRevertiblePublicCallRequests: 0, numberOfRevertiblePublicCallRequests: 0 });
148
170
 
149
171
  const emptyPrivateCallExecutionResult = () =>
150
172
  new PrivateCallExecutionResult(
@@ -218,39 +240,76 @@ export interface MakeConsensusPayloadOptions {
218
240
  signer?: Secp256k1Signer;
219
241
  header?: BlockHeader;
220
242
  archive?: Fr;
243
+ stateReference?: StateReference;
221
244
  txHashes?: TxHash[];
245
+ txs?: Tx[];
222
246
  }
223
247
 
224
248
  const makeAndSignConsensusPayload = (
225
249
  domainSeparator: SignatureDomainSeparator,
226
250
  options?: MakeConsensusPayloadOptions,
227
251
  ) => {
252
+ const header = options?.header ?? makeHeader(1);
228
253
  const {
229
254
  signer = Secp256k1Signer.random(),
230
- header = makeHeader(1),
231
255
  archive = Fr.random(),
256
+ stateReference = header.state,
232
257
  txHashes = [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
233
258
  } = options ?? {};
234
259
 
235
260
  const payload = ConsensusPayload.fromFields({
236
- header,
261
+ header: header.toPropose(),
237
262
  archive,
263
+ stateReference,
238
264
  txHashes,
239
265
  });
240
266
 
241
267
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
242
268
  const signature = signer.sign(hash);
243
269
 
244
- return { payload, signature };
270
+ return { blockNumber: header.globalVariables.blockNumber, payload, signature };
245
271
  };
246
272
 
247
273
  export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockProposal => {
248
- const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockProposal, options);
249
- return new BlockProposal(payload, signature);
274
+ const { blockNumber, payload, signature } = makeAndSignConsensusPayload(
275
+ SignatureDomainSeparator.blockProposal,
276
+ options,
277
+ );
278
+ return new BlockProposal(blockNumber, payload, signature, options?.txs ?? []);
250
279
  };
251
280
 
252
281
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
253
282
  export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): BlockAttestation => {
254
- const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockAttestation, options);
255
- return new BlockAttestation(payload, signature);
283
+ const { blockNumber, payload, signature } = makeAndSignConsensusPayload(
284
+ SignatureDomainSeparator.blockAttestation,
285
+ options,
286
+ );
287
+ return new BlockAttestation(blockNumber, payload, signature);
256
288
  };
289
+
290
+ export async function randomPublishedL2Block(
291
+ l2BlockNumber: number,
292
+ opts: { signers?: Secp256k1Signer[] } = {},
293
+ ): Promise<PublishedL2Block> {
294
+ const block = await L2Block.random(l2BlockNumber);
295
+ const l1 = {
296
+ blockNumber: BigInt(block.number),
297
+ timestamp: block.header.globalVariables.timestamp.toBigInt(),
298
+ blockHash: Buffer32.random().toString(),
299
+ };
300
+
301
+ const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
302
+ const attestations = await Promise.all(
303
+ signers.map(signer =>
304
+ makeBlockAttestation({
305
+ signer,
306
+ header: block.header,
307
+ archive: block.archive.root,
308
+ stateReference: block.header.state,
309
+ txHashes: block.body.txEffects.map(tx => tx.txHash),
310
+ }),
311
+ ),
312
+ );
313
+ const signatures = attestations.map(attestation => attestation.signature);
314
+ return { block, l1, signatures };
315
+ }
@@ -12,6 +12,7 @@ import { z } from 'zod';
12
12
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
13
13
  import { ContentCommitment } from './content_commitment.js';
14
14
  import { GlobalVariables } from './global_variables.js';
15
+ import { ProposedBlockHeader } from './proposed_block_header.js';
15
16
  import { StateReference } from './state_reference.js';
16
17
 
17
18
  /** A header of an L2 block. */
@@ -64,8 +65,8 @@ export class BlockHeader {
64
65
  return this.globalVariables.slotNumber.toBigInt();
65
66
  }
66
67
 
67
- getBlockNumber(): number {
68
- return Number(this.globalVariables.blockNumber.toBigInt());
68
+ getBlockNumber() {
69
+ return this.globalVariables.blockNumber.toNumber();
69
70
  }
70
71
 
71
72
  getSize() {
@@ -160,6 +161,19 @@ export class BlockHeader {
160
161
  return poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
161
162
  }
162
163
 
164
+ toPropose(): ProposedBlockHeader {
165
+ return new ProposedBlockHeader(
166
+ this.lastArchive.root,
167
+ this.contentCommitment,
168
+ this.globalVariables.slotNumber,
169
+ this.globalVariables.timestamp.toBigInt(),
170
+ this.globalVariables.coinbase,
171
+ this.globalVariables.feeRecipient,
172
+ this.globalVariables.gasFees,
173
+ this.totalManaUsed,
174
+ );
175
+ }
176
+
163
177
  toInspect() {
164
178
  return {
165
179
  lastArchive: this.lastArchive.root.toString(),