@aztec/stdlib 3.0.0-nightly.20251127 → 3.0.0-nightly.20251128

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 (619) hide show
  1. package/dest/abi/abi.d.ts +83 -83
  2. package/dest/abi/authorization_selector.d.ts +1 -1
  3. package/dest/abi/authorization_selector.d.ts.map +1 -1
  4. package/dest/abi/buffer.d.ts +1 -1
  5. package/dest/abi/contract_artifact.d.ts +1 -1
  6. package/dest/abi/decoder.d.ts +1 -1
  7. package/dest/abi/decoder.d.ts.map +1 -1
  8. package/dest/abi/encoder.d.ts +1 -1
  9. package/dest/abi/event_metadata_definition.d.ts +1 -1
  10. package/dest/abi/event_selector.d.ts +1 -1
  11. package/dest/abi/event_selector.d.ts.map +1 -1
  12. package/dest/abi/function_call.d.ts +1 -9
  13. package/dest/abi/function_call.d.ts.map +1 -1
  14. package/dest/abi/function_selector.d.ts +1 -1
  15. package/dest/abi/function_selector.d.ts.map +1 -1
  16. package/dest/abi/index.d.ts +1 -1
  17. package/dest/abi/mocked_keys.d.ts +1 -1
  18. package/dest/abi/note_selector.d.ts +1 -1
  19. package/dest/abi/note_selector.d.ts.map +1 -1
  20. package/dest/abi/selector.d.ts +1 -1
  21. package/dest/abi/selector.d.ts.map +1 -1
  22. package/dest/abi/utils.d.ts +1 -1
  23. package/dest/auth_witness/auth_witness.d.ts +1 -2
  24. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  25. package/dest/auth_witness/index.d.ts +1 -1
  26. package/dest/avm/avm.d.ts +2413 -2419
  27. package/dest/avm/avm.d.ts.map +1 -1
  28. package/dest/avm/avm_accumulated_data.d.ts +16 -43
  29. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  30. package/dest/avm/avm_circuit_public_inputs.d.ts +171 -171
  31. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  32. package/dest/avm/avm_proving_request.d.ts +1654 -1654
  33. package/dest/avm/contract_storage_read.d.ts +1 -13
  34. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  35. package/dest/avm/contract_storage_update_request.d.ts +1 -13
  36. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  37. package/dest/avm/index.d.ts +1 -1
  38. package/dest/avm/message_pack.d.ts +1 -1
  39. package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
  40. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  41. package/dest/avm/public_data_read.d.ts +1 -10
  42. package/dest/avm/public_data_read.d.ts.map +1 -1
  43. package/dest/avm/public_data_update_request.d.ts +1 -10
  44. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  45. package/dest/avm/public_data_write.d.ts +4 -10
  46. package/dest/avm/public_data_write.d.ts.map +1 -1
  47. package/dest/avm/public_inner_call_request.d.ts +1 -4
  48. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  49. package/dest/avm/revert_code.d.ts +4 -4
  50. package/dest/avm/revert_code.d.ts.map +1 -1
  51. package/dest/aztec-address/index.d.ts +1 -1
  52. package/dest/aztec-address/index.d.ts.map +1 -1
  53. package/dest/block/attestation_info.d.ts +3 -1
  54. package/dest/block/attestation_info.d.ts.map +1 -1
  55. package/dest/block/attestation_info.js +4 -1
  56. package/dest/block/block_hash.d.ts +1 -1
  57. package/dest/block/block_hash.d.ts.map +1 -1
  58. package/dest/block/body.d.ts +5 -2
  59. package/dest/block/body.d.ts.map +1 -1
  60. package/dest/block/body.js +5 -2
  61. package/dest/block/in_block.d.ts +3 -11
  62. package/dest/block/in_block.d.ts.map +1 -1
  63. package/dest/block/index.d.ts +1 -1
  64. package/dest/block/l2_block.d.ts +8 -6
  65. package/dest/block/l2_block.d.ts.map +1 -1
  66. package/dest/block/l2_block.js +22 -1
  67. package/dest/block/l2_block_code_to_purge.d.ts +1 -1
  68. package/dest/block/l2_block_header.d.ts +1 -9
  69. package/dest/block/l2_block_header.d.ts.map +1 -1
  70. package/dest/block/l2_block_info.d.ts +9 -9
  71. package/dest/block/l2_block_new.d.ts +17 -6
  72. package/dest/block/l2_block_new.d.ts.map +1 -1
  73. package/dest/block/l2_block_new.js +22 -0
  74. package/dest/block/l2_block_number.d.ts +1 -1
  75. package/dest/block/l2_block_source.d.ts +8 -7
  76. package/dest/block/l2_block_source.d.ts.map +1 -1
  77. package/dest/block/l2_block_stream/index.d.ts +1 -1
  78. package/dest/block/l2_block_stream/interfaces.d.ts +1 -1
  79. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -6
  80. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  81. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +1 -1
  82. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  83. package/dest/block/proposal/attestations_and_signers.d.ts +1 -1
  84. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  85. package/dest/block/proposal/committee_attestation.d.ts +1 -1
  86. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  87. package/dest/block/proposal/index.d.ts +1 -1
  88. package/dest/block/published_l2_block.d.ts +15 -28
  89. package/dest/block/published_l2_block.d.ts.map +1 -1
  90. package/dest/block/published_l2_block.js +12 -27
  91. package/dest/block/test/index.d.ts +1 -1
  92. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  93. package/dest/block/validate_block_result.d.ts +6 -178
  94. package/dest/block/validate_block_result.d.ts.map +1 -1
  95. package/dest/block/validate_block_result.js +4 -3
  96. package/dest/checkpoint/checkpoint.d.ts +20 -7
  97. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  98. package/dest/checkpoint/checkpoint.js +33 -8
  99. package/dest/checkpoint/index.d.ts +2 -1
  100. package/dest/checkpoint/index.d.ts.map +1 -1
  101. package/dest/checkpoint/index.js +1 -0
  102. package/dest/checkpoint/published_checkpoint.d.ts +212 -0
  103. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -0
  104. package/dest/checkpoint/published_checkpoint.js +71 -0
  105. package/dest/config/chain-config.d.ts +1 -1
  106. package/dest/config/index.d.ts +1 -1
  107. package/dest/config/node-rpc-config.d.ts +1 -1
  108. package/dest/contract/artifact_hash.d.ts +2 -2
  109. package/dest/contract/artifact_hash.d.ts.map +1 -1
  110. package/dest/contract/complete_address.d.ts +1 -4
  111. package/dest/contract/complete_address.d.ts.map +1 -1
  112. package/dest/contract/contract_address.d.ts +1 -1
  113. package/dest/contract/contract_class.d.ts +1 -1
  114. package/dest/contract/contract_class_id.d.ts +1 -1
  115. package/dest/contract/contract_class_metadata.d.ts +1 -1
  116. package/dest/contract/contract_deployment_data.d.ts +17 -17
  117. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  118. package/dest/contract/contract_function_dao.d.ts +1 -1
  119. package/dest/contract/contract_instance.d.ts +1 -1
  120. package/dest/contract/contract_instance.d.ts.map +1 -1
  121. package/dest/contract/contract_instance_update.d.ts +1 -1
  122. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  123. package/dest/contract/contract_metadata.d.ts +1 -1
  124. package/dest/contract/deployment_info.d.ts +1 -1
  125. package/dest/contract/index.d.ts +1 -1
  126. package/dest/contract/interfaces/contract_class.d.ts +29 -29
  127. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  128. package/dest/contract/interfaces/contract_data_source.d.ts +1 -1
  129. package/dest/contract/interfaces/contract_instance.d.ts +11 -11
  130. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  131. package/dest/contract/interfaces/contract_instance_update.d.ts +3 -3
  132. package/dest/contract/interfaces/index.d.ts +1 -1
  133. package/dest/contract/interfaces/node-info.d.ts +1 -1
  134. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +1 -1
  135. package/dest/contract/partial_address.d.ts +1 -1
  136. package/dest/contract/private_function.d.ts +1 -1
  137. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  138. package/dest/contract/utility_function_membership_proof.d.ts +1 -1
  139. package/dest/database-version/index.d.ts +1 -1
  140. package/dest/database-version/version_manager.d.ts +6 -8
  141. package/dest/database-version/version_manager.d.ts.map +1 -1
  142. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +1 -1
  143. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  144. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts +1 -1
  145. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -1
  146. package/dest/delayed_public_mutable/index.d.ts +1 -1
  147. package/dest/delayed_public_mutable/scheduled_delay_change.d.ts +1 -1
  148. package/dest/delayed_public_mutable/scheduled_delay_change.d.ts.map +1 -1
  149. package/dest/delayed_public_mutable/scheduled_value_change.d.ts +1 -1
  150. package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -1
  151. package/dest/epoch-helpers/index.d.ts +9 -8
  152. package/dest/epoch-helpers/index.d.ts.map +1 -1
  153. package/dest/epoch-helpers/index.js +4 -3
  154. package/dest/errors/index.d.ts +1 -1
  155. package/dest/errors/proving_error.d.ts +2 -2
  156. package/dest/errors/proving_error.d.ts.map +1 -1
  157. package/dest/errors/simulation_error.d.ts +1 -1
  158. package/dest/errors/simulation_error.d.ts.map +1 -1
  159. package/dest/fees/index.d.ts +1 -1
  160. package/dest/fees/transaction_fee.d.ts +1 -1
  161. package/dest/file-store/factory.d.ts +1 -1
  162. package/dest/file-store/gcs.d.ts +1 -1
  163. package/dest/file-store/gcs.d.ts.map +1 -1
  164. package/dest/file-store/http.d.ts +1 -1
  165. package/dest/file-store/http.d.ts.map +1 -1
  166. package/dest/file-store/index.d.ts +1 -1
  167. package/dest/file-store/interface.d.ts +1 -1
  168. package/dest/file-store/local.d.ts +1 -1
  169. package/dest/file-store/local.d.ts.map +1 -1
  170. package/dest/file-store/s3.d.ts +1 -1
  171. package/dest/file-store/s3.d.ts.map +1 -1
  172. package/dest/gas/gas.d.ts +1 -1
  173. package/dest/gas/gas.d.ts.map +1 -1
  174. package/dest/gas/gas_fees.d.ts +1 -1
  175. package/dest/gas/gas_fees.d.ts.map +1 -1
  176. package/dest/gas/gas_settings.d.ts +1 -1
  177. package/dest/gas/gas_settings.d.ts.map +1 -1
  178. package/dest/gas/gas_used.d.ts +1 -1
  179. package/dest/gas/index.d.ts +1 -1
  180. package/dest/hash/hash.d.ts +2 -2
  181. package/dest/hash/hash.d.ts.map +1 -1
  182. package/dest/hash/index.d.ts +1 -1
  183. package/dest/hash/map_slot.d.ts +1 -1
  184. package/dest/interfaces/allowed_element.d.ts +5 -5
  185. package/dest/interfaces/api_limit.d.ts +1 -1
  186. package/dest/interfaces/archiver.d.ts +1 -1
  187. package/dest/interfaces/archiver.d.ts.map +1 -1
  188. package/dest/interfaces/archiver.js +5 -4
  189. package/dest/interfaces/aztec-node-admin.d.ts +88 -88
  190. package/dest/interfaces/aztec-node.d.ts +1 -1
  191. package/dest/interfaces/block-builder.d.ts +1 -1
  192. package/dest/interfaces/client.d.ts +1 -1
  193. package/dest/interfaces/configs.d.ts +21 -21
  194. package/dest/interfaces/epoch-prover.d.ts +4 -3
  195. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  196. package/dest/interfaces/get_logs_response.d.ts +1 -1
  197. package/dest/interfaces/l2_logs_source.d.ts +1 -1
  198. package/dest/interfaces/merkle_tree_operations.d.ts +1 -1
  199. package/dest/interfaces/p2p-bootstrap.d.ts +1 -1
  200. package/dest/interfaces/p2p.d.ts +1 -1
  201. package/dest/interfaces/private_kernel_prover.d.ts +1 -1
  202. package/dest/interfaces/processed-tx-handler.d.ts +1 -1
  203. package/dest/interfaces/prover-agent.d.ts +1 -1
  204. package/dest/interfaces/prover-broker.d.ts +1 -1
  205. package/dest/interfaces/prover-client.d.ts +5 -5
  206. package/dest/interfaces/prover-client.d.ts.map +1 -1
  207. package/dest/interfaces/prover-coordination.d.ts +1 -1
  208. package/dest/interfaces/prover-node.d.ts +1 -1
  209. package/dest/interfaces/proving-job-source.d.ts +1 -1
  210. package/dest/interfaces/proving-job.d.ts +1265 -1272
  211. package/dest/interfaces/proving-job.d.ts.map +1 -1
  212. package/dest/interfaces/proving-job.js +3 -2
  213. package/dest/interfaces/public_state_source.d.ts +1 -1
  214. package/dest/interfaces/server.d.ts +1 -1
  215. package/dest/interfaces/server_circuit_prover.d.ts +2 -3
  216. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  217. package/dest/interfaces/service.d.ts +1 -1
  218. package/dest/interfaces/slasher.d.ts +3 -3
  219. package/dest/interfaces/tx_provider.d.ts +1 -1
  220. package/dest/interfaces/validator.d.ts +21 -21
  221. package/dest/interfaces/world_state.d.ts +1 -1
  222. package/dest/kernel/claimed_length_array.d.ts +1 -1
  223. package/dest/kernel/claimed_length_array.d.ts.map +1 -1
  224. package/dest/kernel/hiding_kernel_private_inputs.d.ts +1 -1
  225. package/dest/kernel/hiding_kernel_private_inputs.d.ts.map +1 -1
  226. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
  227. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +1 -1
  228. package/dest/kernel/hints/build_transient_data_hints.d.ts +1 -1
  229. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +1 -1
  230. package/dest/kernel/hints/index.d.ts +1 -1
  231. package/dest/kernel/hints/key_validation_hint.d.ts +1 -2
  232. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  233. package/dest/kernel/hints/key_validation_request.d.ts +1 -2
  234. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  235. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -6
  236. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  237. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +1 -1
  238. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  239. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +1 -1
  240. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  241. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -13
  242. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  243. package/dest/kernel/hints/read_request.d.ts +1 -7
  244. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  245. package/dest/kernel/hints/read_request_hints.d.ts +1 -7
  246. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  247. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -1
  248. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
  249. package/dest/kernel/hints/scoped_value_cache.d.ts +1 -1
  250. package/dest/kernel/hints/scoped_value_cache.d.ts.map +1 -1
  251. package/dest/kernel/hints/transient_data_squashing_hint.d.ts +1 -1
  252. package/dest/kernel/hints/transient_data_squashing_hint.d.ts.map +1 -1
  253. package/dest/kernel/hints/tree_leaf_read_request.d.ts +1 -1
  254. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
  255. package/dest/kernel/index.d.ts +1 -1
  256. package/dest/kernel/log_hash.d.ts +1 -1
  257. package/dest/kernel/log_hash.d.ts.map +1 -1
  258. package/dest/kernel/note_hash.d.ts +1 -1
  259. package/dest/kernel/note_hash.d.ts.map +1 -1
  260. package/dest/kernel/nullifier.d.ts +1 -1
  261. package/dest/kernel/nullifier.d.ts.map +1 -1
  262. package/dest/kernel/padded_side_effects.d.ts +1 -1
  263. package/dest/kernel/padded_side_effects.d.ts.map +1 -1
  264. package/dest/kernel/private_accumulated_data.d.ts +1 -23
  265. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  266. package/dest/kernel/private_call_data.d.ts +1 -25
  267. package/dest/kernel/private_call_data.d.ts.map +1 -1
  268. package/dest/kernel/private_call_request.d.ts +1 -16
  269. package/dest/kernel/private_call_request.d.ts.map +1 -1
  270. package/dest/kernel/private_circuit_public_inputs.d.ts +1 -74
  271. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  272. package/dest/kernel/private_context_inputs.d.ts +1 -1
  273. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  274. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +1 -31
  275. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  276. package/dest/kernel/private_kernel_data.d.ts +1 -7
  277. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  278. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -22
  279. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  280. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -7
  281. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  282. package/dest/kernel/private_kernel_prover_output.d.ts +8 -8
  283. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +1 -4
  284. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  285. package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -1
  286. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  287. package/dest/kernel/private_kernel_simulated_output.d.ts +1 -1
  288. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -10
  289. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  290. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -23
  291. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  292. package/dest/kernel/private_log_data.d.ts +1 -1
  293. package/dest/kernel/private_log_data.d.ts.map +1 -1
  294. package/dest/kernel/private_to_avm_accumulated_data.d.ts +8 -8
  295. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  296. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
  297. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  298. package/dest/kernel/private_to_public_accumulated_data_builder.d.ts +1 -1
  299. package/dest/kernel/private_to_public_accumulated_data_builder.d.ts.map +1 -1
  300. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -1
  301. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  302. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -17
  303. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  304. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +1 -16
  305. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  306. package/dest/kernel/private_validation_requests.d.ts +1 -10
  307. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  308. package/dest/kernel/public_call_request.d.ts +6 -27
  309. package/dest/kernel/public_call_request.d.ts.map +1 -1
  310. package/dest/kernel/utils/index.d.ts +1 -1
  311. package/dest/kernel/utils/interfaces.d.ts +1 -1
  312. package/dest/kernel/utils/optional_number.d.ts +1 -7
  313. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  314. package/dest/kernel/utils/order_and_comparison.d.ts +1 -1
  315. package/dest/keys/derivation.d.ts +1 -1
  316. package/dest/keys/index.d.ts +1 -1
  317. package/dest/keys/key_types.d.ts +1 -1
  318. package/dest/keys/public_key.d.ts +1 -1
  319. package/dest/keys/public_keys.d.ts +1 -5
  320. package/dest/keys/public_keys.d.ts.map +1 -1
  321. package/dest/keys/utils.d.ts +1 -1
  322. package/dest/l1-contracts/index.d.ts +1 -1
  323. package/dest/l1-contracts/slash_factory.d.ts +3 -3
  324. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  325. package/dest/logs/contract_class_log.d.ts +4 -4
  326. package/dest/logs/contract_class_log.d.ts.map +1 -1
  327. package/dest/logs/debug_log.d.ts +1 -1
  328. package/dest/logs/debug_log.d.ts.map +1 -1
  329. package/dest/logs/directional_app_tagging_secret.d.ts +1 -1
  330. package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -1
  331. package/dest/logs/extended_contract_class_log.d.ts +1 -3
  332. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  333. package/dest/logs/extended_public_log.d.ts +2 -4
  334. package/dest/logs/extended_public_log.d.ts.map +1 -1
  335. package/dest/logs/index.d.ts +1 -1
  336. package/dest/logs/log_filter.d.ts +1 -1
  337. package/dest/logs/log_id.d.ts +1 -4
  338. package/dest/logs/log_id.d.ts.map +1 -1
  339. package/dest/logs/log_with_tx_data.d.ts +1 -1
  340. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  341. package/dest/logs/message_context.d.ts +1 -1
  342. package/dest/logs/message_context.d.ts.map +1 -1
  343. package/dest/logs/pending_tagged_log.d.ts +1 -1
  344. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  345. package/dest/logs/pre_tag.d.ts +1 -1
  346. package/dest/logs/private_log.d.ts +1 -1
  347. package/dest/logs/private_log.d.ts.map +1 -1
  348. package/dest/logs/public_log.d.ts +1 -1
  349. package/dest/logs/public_log.d.ts.map +1 -1
  350. package/dest/logs/shared_secret_derivation.d.ts +1 -1
  351. package/dest/logs/tx_scoped_l2_log.d.ts +8 -8
  352. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  353. package/dest/messaging/in_hash.d.ts +1 -1
  354. package/dest/messaging/inbox_leaf.d.ts +1 -3
  355. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  356. package/dest/messaging/index.d.ts +1 -1
  357. package/dest/messaging/l1_actor.d.ts +1 -7
  358. package/dest/messaging/l1_actor.d.ts.map +1 -1
  359. package/dest/messaging/l1_to_l2_message.d.ts +1 -6
  360. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  361. package/dest/messaging/l1_to_l2_message_source.d.ts +1 -1
  362. package/dest/messaging/l2_actor.d.ts +1 -7
  363. package/dest/messaging/l2_actor.d.ts.map +1 -1
  364. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  365. package/dest/messaging/l2_to_l1_message.d.ts +21 -21
  366. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  367. package/dest/messaging/out_hash.d.ts +1 -1
  368. package/dest/noir/index.d.ts +1 -1
  369. package/dest/note/comparator.d.ts +1 -1
  370. package/dest/note/index.d.ts +1 -1
  371. package/dest/note/note.d.ts +1 -1
  372. package/dest/note/note.d.ts.map +1 -1
  373. package/dest/note/note_dao.d.ts +2 -28
  374. package/dest/note/note_dao.d.ts.map +1 -1
  375. package/dest/note/note_status.d.ts +1 -1
  376. package/dest/note/notes_filter.d.ts +1 -1
  377. package/dest/p2p/attestation_utils.d.ts +1 -1
  378. package/dest/p2p/block_attestation.d.ts +1 -4
  379. package/dest/p2p/block_attestation.d.ts.map +1 -1
  380. package/dest/p2p/block_proposal.d.ts +1 -5
  381. package/dest/p2p/block_proposal.d.ts.map +1 -1
  382. package/dest/p2p/client_type.d.ts +1 -1
  383. package/dest/p2p/consensus_payload.d.ts +20 -21
  384. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  385. package/dest/p2p/consensus_payload.js +4 -0
  386. package/dest/p2p/gossipable.d.ts +1 -1
  387. package/dest/p2p/gossipable.d.ts.map +1 -1
  388. package/dest/p2p/index.d.ts +1 -1
  389. package/dest/p2p/interface.d.ts +1 -1
  390. package/dest/p2p/message_validator.d.ts +1 -1
  391. package/dest/p2p/peer_error.d.ts +1 -1
  392. package/dest/p2p/signature_utils.d.ts +1 -1
  393. package/dest/p2p/topic_type.d.ts +1 -1
  394. package/dest/parity/index.d.ts +1 -1
  395. package/dest/parity/parity_base_private_inputs.d.ts +1 -3
  396. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  397. package/dest/parity/parity_public_inputs.d.ts +1 -4
  398. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  399. package/dest/parity/parity_root_private_inputs.d.ts +1 -2
  400. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  401. package/dest/proofs/chonk_proof.d.ts +1 -1
  402. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  403. package/dest/proofs/index.d.ts +1 -1
  404. package/dest/proofs/proof.d.ts +1 -4
  405. package/dest/proofs/proof.d.ts.map +1 -1
  406. package/dest/proofs/proof_data.d.ts +1 -1
  407. package/dest/proofs/proof_data.d.ts.map +1 -1
  408. package/dest/proofs/proving_request_type.d.ts +1 -1
  409. package/dest/proofs/recursive_proof.d.ts +1 -10
  410. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  411. package/dest/rollup/avm_proof_data.d.ts +1 -1
  412. package/dest/rollup/base_rollup_hints.d.ts +1 -34
  413. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  414. package/dest/rollup/block_constant_data.d.ts +1 -12
  415. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  416. package/dest/rollup/block_headers_hash.d.ts +1 -1
  417. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +1 -4
  418. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  419. package/dest/rollup/block_rollup_public_inputs.d.ts +1 -45
  420. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  421. package/dest/rollup/block_root_rollup_private_inputs.d.ts +1 -64
  422. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  423. package/dest/rollup/checkpoint_constant_data.d.ts +1 -10
  424. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  425. package/dest/rollup/checkpoint_header.d.ts +2 -11
  426. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  427. package/dest/rollup/checkpoint_header.js +13 -2
  428. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +1 -4
  429. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  430. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +1 -25
  431. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  432. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +1 -25
  433. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  434. package/dest/rollup/epoch_constant_data.d.ts +1 -16
  435. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  436. package/dest/rollup/index.d.ts +1 -1
  437. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +1 -1
  438. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  439. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +1 -1
  440. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  441. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +1 -1
  442. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  443. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +1 -1
  444. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  445. package/dest/rollup/root_rollup_private_inputs.d.ts +1 -6
  446. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  447. package/dest/rollup/root_rollup_public_inputs.d.ts +1 -3
  448. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  449. package/dest/rollup/tree_snapshot_diff_hints.d.ts +1 -24
  450. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  451. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +1 -4
  452. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  453. package/dest/rollup/tx_rollup_public_inputs.d.ts +1 -29
  454. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  455. package/dest/schemas/index.d.ts +1 -1
  456. package/dest/schemas/schemas.d.ts +2 -2
  457. package/dest/schemas/schemas.d.ts.map +1 -1
  458. package/dest/slashing/empire.d.ts +1 -1
  459. package/dest/slashing/empire.d.ts.map +1 -1
  460. package/dest/slashing/empire.js +4 -3
  461. package/dest/slashing/helpers.d.ts +4 -3
  462. package/dest/slashing/helpers.d.ts.map +1 -1
  463. package/dest/slashing/helpers.js +2 -1
  464. package/dest/slashing/index.d.ts +1 -1
  465. package/dest/slashing/interfaces.d.ts +1 -1
  466. package/dest/slashing/serialization.d.ts +1 -1
  467. package/dest/slashing/tally.d.ts +1 -1
  468. package/dest/slashing/types.d.ts +9 -9
  469. package/dest/snapshots/download.d.ts +1 -1
  470. package/dest/snapshots/index.d.ts +1 -1
  471. package/dest/snapshots/types.d.ts +18 -18
  472. package/dest/snapshots/upload.d.ts +1 -1
  473. package/dest/stats/index.d.ts +1 -1
  474. package/dest/stats/stats.d.ts +1 -1
  475. package/dest/tests/factories.d.ts +5 -8
  476. package/dest/tests/factories.d.ts.map +1 -1
  477. package/dest/tests/factories.js +8 -18
  478. package/dest/tests/fixtures.d.ts +1 -1
  479. package/dest/tests/index.d.ts +1 -1
  480. package/dest/tests/jest.d.ts +1 -1
  481. package/dest/tests/mocks.d.ts +37 -19
  482. package/dest/tests/mocks.d.ts.map +1 -1
  483. package/dest/tests/mocks.js +22 -13
  484. package/dest/trees/append_only_tree_snapshot.d.ts +1 -13
  485. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  486. package/dest/trees/database_public_state_source.d.ts +1 -1
  487. package/dest/trees/database_public_state_source.d.ts.map +1 -1
  488. package/dest/trees/index.d.ts +1 -1
  489. package/dest/trees/merkle_tree_id.d.ts +5 -5
  490. package/dest/trees/merkle_tree_id.d.ts.map +1 -1
  491. package/dest/trees/nullifier_leaf.d.ts +1 -13
  492. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  493. package/dest/trees/nullifier_membership_witness.d.ts +1 -10
  494. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  495. package/dest/trees/public_data_leaf.d.ts +12 -27
  496. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  497. package/dest/trees/public_data_witness.d.ts +8 -18
  498. package/dest/trees/public_data_witness.d.ts.map +1 -1
  499. package/dest/tx/block_header.d.ts +2 -10
  500. package/dest/tx/block_header.d.ts.map +1 -1
  501. package/dest/tx/block_header.js +12 -1
  502. package/dest/tx/call_context.d.ts +6 -18
  503. package/dest/tx/call_context.d.ts.map +1 -1
  504. package/dest/tx/capsule.d.ts +1 -4
  505. package/dest/tx/capsule.d.ts.map +1 -1
  506. package/dest/tx/content_commitment.d.ts +1 -1
  507. package/dest/tx/content_commitment.d.ts.map +1 -1
  508. package/dest/tx/execution_payload.d.ts +1 -9
  509. package/dest/tx/execution_payload.d.ts.map +1 -1
  510. package/dest/tx/function_data.d.ts +4 -6
  511. package/dest/tx/function_data.d.ts.map +1 -1
  512. package/dest/tx/global_variable_builder.d.ts +1 -1
  513. package/dest/tx/global_variables.d.ts +10 -17
  514. package/dest/tx/global_variables.d.ts.map +1 -1
  515. package/dest/tx/global_variables.js +14 -0
  516. package/dest/tx/hashed_values.d.ts +1 -7
  517. package/dest/tx/hashed_values.d.ts.map +1 -1
  518. package/dest/tx/index.d.ts +1 -1
  519. package/dest/tx/indexed_tx_effect.d.ts +2 -2
  520. package/dest/tx/indexed_tx_effect.js +3 -1
  521. package/dest/tx/offchain_effect.d.ts +1 -1
  522. package/dest/tx/partial_state_reference.d.ts +1 -4
  523. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  524. package/dest/tx/private_execution_result.d.ts +6 -28
  525. package/dest/tx/private_execution_result.d.ts.map +1 -1
  526. package/dest/tx/private_tx_constant_data.d.ts +1 -16
  527. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  528. package/dest/tx/processed_tx.d.ts +1 -1
  529. package/dest/tx/profiling.d.ts +35 -35
  530. package/dest/tx/profiling.d.ts.map +1 -1
  531. package/dest/tx/protocol_contracts.d.ts +2 -2
  532. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  533. package/dest/tx/proven_tx.d.ts +18 -18
  534. package/dest/tx/proven_tx.d.ts.map +1 -1
  535. package/dest/tx/public_call_request_with_calldata.d.ts +1 -7
  536. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  537. package/dest/tx/public_simulation_output.d.ts +1 -1
  538. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  539. package/dest/tx/simulated_tx.d.ts +21 -21
  540. package/dest/tx/simulated_tx.d.ts.map +1 -1
  541. package/dest/tx/state_reference.d.ts +7 -9
  542. package/dest/tx/state_reference.d.ts.map +1 -1
  543. package/dest/tx/tree_snapshots.d.ts +7 -7
  544. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  545. package/dest/tx/tx.d.ts +1 -16
  546. package/dest/tx/tx.d.ts.map +1 -1
  547. package/dest/tx/tx_constant_data.d.ts +1 -1
  548. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  549. package/dest/tx/tx_context.d.ts +1 -2
  550. package/dest/tx/tx_context.d.ts.map +1 -1
  551. package/dest/tx/tx_effect.d.ts +12 -33
  552. package/dest/tx/tx_effect.d.ts.map +1 -1
  553. package/dest/tx/tx_effect.js +4 -2
  554. package/dest/tx/tx_execution_request.d.ts +1 -30
  555. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  556. package/dest/tx/tx_hash.d.ts +1 -2
  557. package/dest/tx/tx_hash.d.ts.map +1 -1
  558. package/dest/tx/tx_receipt.d.ts +1 -7
  559. package/dest/tx/tx_receipt.d.ts.map +1 -1
  560. package/dest/tx/tx_request.d.ts +1 -6
  561. package/dest/tx/tx_request.d.ts.map +1 -1
  562. package/dest/tx/validator/empty_validator.d.ts +1 -1
  563. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  564. package/dest/tx/validator/error_texts.d.ts +1 -1
  565. package/dest/tx/validator/tx_validator.d.ts +5 -5
  566. package/dest/types/index.d.ts +1 -1
  567. package/dest/types/shared.d.ts +1 -4
  568. package/dest/types/shared.d.ts.map +1 -1
  569. package/dest/update-checker/index.d.ts +1 -1
  570. package/dest/update-checker/update-checker.d.ts +2 -3
  571. package/dest/update-checker/update-checker.d.ts.map +1 -1
  572. package/dest/validators/errors.d.ts +1 -1
  573. package/dest/validators/errors.d.ts.map +1 -1
  574. package/dest/validators/index.d.ts +1 -1
  575. package/dest/validators/schemas.d.ts +184 -180
  576. package/dest/validators/schemas.d.ts.map +1 -1
  577. package/dest/validators/schemas.js +1 -1
  578. package/dest/validators/types.d.ts +3 -2
  579. package/dest/validators/types.d.ts.map +1 -1
  580. package/dest/versioning/index.d.ts +1 -1
  581. package/dest/versioning/versioning.d.ts +1 -1
  582. package/dest/versioning/versioning.d.ts.map +1 -1
  583. package/dest/vks/index.d.ts +1 -1
  584. package/dest/vks/verification_key.d.ts +1 -22
  585. package/dest/vks/verification_key.d.ts.map +1 -1
  586. package/dest/vks/vk_data.d.ts +1 -7
  587. package/dest/vks/vk_data.d.ts.map +1 -1
  588. package/dest/world-state/index.d.ts +1 -1
  589. package/dest/world-state/world_state_revision.d.ts +7 -7
  590. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  591. package/dest/zkpassport/index.d.ts +1 -1
  592. package/dest/zkpassport/index.d.ts.map +1 -1
  593. package/package.json +11 -10
  594. package/src/block/attestation_info.ts +8 -1
  595. package/src/block/body.ts +9 -7
  596. package/src/block/l2_block.ts +27 -1
  597. package/src/block/l2_block_new.ts +28 -0
  598. package/src/block/l2_block_source.ts +7 -6
  599. package/src/block/published_l2_block.ts +14 -31
  600. package/src/block/validate_block_result.ts +9 -7
  601. package/src/checkpoint/checkpoint.ts +48 -7
  602. package/src/checkpoint/index.ts +1 -0
  603. package/src/checkpoint/published_checkpoint.ts +91 -0
  604. package/src/epoch-helpers/index.ts +13 -11
  605. package/src/interfaces/archiver.ts +5 -4
  606. package/src/interfaces/epoch-prover.ts +3 -2
  607. package/src/interfaces/proving-job.ts +14 -5
  608. package/src/p2p/consensus_payload.ts +6 -0
  609. package/src/rollup/checkpoint_header.ts +13 -12
  610. package/src/slashing/empire.ts +5 -3
  611. package/src/slashing/helpers.ts +6 -4
  612. package/src/tests/factories.ts +22 -21
  613. package/src/tests/mocks.ts +35 -15
  614. package/src/tx/block_header.ts +13 -1
  615. package/src/tx/global_variables.ts +15 -0
  616. package/src/tx/indexed_tx_effect.ts +1 -1
  617. package/src/tx/tx_effect.ts +27 -23
  618. package/src/validators/schemas.ts +1 -1
  619. package/src/validators/types.ts +2 -1
@@ -1,6 +1,8 @@
1
1
  import { encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
+ import { schemas } from '@aztec/foundation/schemas';
3
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
+ import type { FieldsOf } from '@aztec/foundation/types';
4
6
 
5
7
  import { z } from 'zod';
6
8
 
@@ -16,6 +18,8 @@ export class Checkpoint {
16
18
  public header: CheckpointHeader,
17
19
  /** L2 blocks in the checkpoint. */
18
20
  public blocks: L2BlockNew[],
21
+ /** Number of the checkpoint. */
22
+ public number: number,
19
23
  ) {}
20
24
 
21
25
  static get schema() {
@@ -24,24 +28,61 @@ export class Checkpoint {
24
28
  archive: AppendOnlyTreeSnapshot.schema,
25
29
  header: CheckpointHeader.schema,
26
30
  blocks: z.array(L2BlockNew.schema),
31
+ number: schemas.UInt32,
27
32
  })
28
- .transform(({ archive, header, blocks }) => new Checkpoint(archive, header, blocks));
33
+ .transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
34
+ }
35
+
36
+ static from(fields: FieldsOf<Checkpoint>) {
37
+ return new Checkpoint(...Checkpoint.getFields(fields));
38
+ }
39
+
40
+ static getFields(fields: FieldsOf<Checkpoint>) {
41
+ return [fields.archive, fields.header, fields.blocks, fields.number] as const;
29
42
  }
30
43
 
31
44
  static fromBuffer(buf: Buffer | BufferReader) {
32
45
  const reader = BufferReader.asReader(buf);
33
- const archive = reader.readObject(AppendOnlyTreeSnapshot);
34
- const header = reader.readObject(CheckpointHeader);
35
- const blocks = reader.readVector(L2BlockNew);
36
- return new Checkpoint(archive, header, blocks);
46
+ return new Checkpoint(
47
+ reader.readObject(AppendOnlyTreeSnapshot),
48
+ reader.readObject(CheckpointHeader),
49
+ reader.readVector(L2BlockNew),
50
+ reader.readNumber(),
51
+ );
37
52
  }
38
53
 
39
- toBuffer() {
40
- return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks);
54
+ public toBuffer() {
55
+ return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number);
41
56
  }
42
57
 
43
58
  public toBlobFields(): Fr[] {
44
59
  const blocks = this.blocks.map((block, i) => block.toBlockBlobData(i === 0));
45
60
  return encodeCheckpointBlobDataFromBlocks(blocks);
46
61
  }
62
+
63
+ public hash(): Fr {
64
+ return this.header.hash();
65
+ }
66
+
67
+ public getState() {
68
+ return this.blocks.at(-1)!.header.state;
69
+ }
70
+
71
+ static async random(
72
+ checkpointNumber = 1,
73
+ {
74
+ numBlocks = 1,
75
+ startBlockNumber = 1,
76
+ ...options
77
+ }: { numBlocks?: number; startBlockNumber?: number } & Partial<FieldsOf<CheckpointHeader>> &
78
+ Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
79
+ ) {
80
+ const header = CheckpointHeader.random(options);
81
+
82
+ const blocks = await Promise.all(
83
+ Array.from({ length: numBlocks }, (_, i) => L2BlockNew.random(startBlockNumber + i, options)),
84
+ );
85
+
86
+ return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
87
+ }
47
88
  }
@@ -1 +1,2 @@
1
1
  export * from './checkpoint.js';
2
+ export * from './published_checkpoint.js';
@@ -0,0 +1,91 @@
1
+ // Ignoring import issue to fix portable inferred type issue in zod schema
2
+ import { Buffer32 } from '@aztec/foundation/buffer';
3
+ import { randomBigInt } from '@aztec/foundation/crypto';
4
+ import { schemas } from '@aztec/foundation/schemas';
5
+ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
6
+ import type { FieldsOf } from '@aztec/foundation/types';
7
+
8
+ import { z } from 'zod';
9
+
10
+ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
11
+ import { Checkpoint } from './checkpoint.js';
12
+
13
+ export class L1PublishedData {
14
+ constructor(
15
+ public blockNumber: bigint,
16
+ public timestamp: bigint,
17
+ public blockHash: string,
18
+ ) {}
19
+
20
+ static get schema() {
21
+ return z.object({
22
+ blockNumber: schemas.BigInt,
23
+ timestamp: schemas.BigInt,
24
+ blockHash: z.string(),
25
+ });
26
+ }
27
+
28
+ static random() {
29
+ return new L1PublishedData(
30
+ randomBigInt(1000n) + 1n,
31
+ BigInt(Math.floor(Date.now() / 1000)),
32
+ Buffer32.random().toString(),
33
+ );
34
+ }
35
+
36
+ static fromFields(fields: FieldsOf<L1PublishedData>) {
37
+ return new L1PublishedData(fields.blockNumber, fields.timestamp, fields.blockHash);
38
+ }
39
+ }
40
+
41
+ export class PublishedCheckpoint {
42
+ constructor(
43
+ public checkpoint: Checkpoint,
44
+ public l1: L1PublishedData,
45
+ // The attestations for the last block in the checkpoint.
46
+ public attestations: CommitteeAttestation[],
47
+ ) {}
48
+
49
+ static get schema() {
50
+ return z
51
+ .object({
52
+ checkpoint: Checkpoint.schema,
53
+ l1: L1PublishedData.schema,
54
+ attestations: z.array(CommitteeAttestation.schema),
55
+ })
56
+ .transform(obj => PublishedCheckpoint.from(obj));
57
+ }
58
+
59
+ static getFields(fields: FieldsOf<PublishedCheckpoint>) {
60
+ return [fields.checkpoint, fields.l1, fields.attestations] as const;
61
+ }
62
+
63
+ static from(fields: FieldsOf<PublishedCheckpoint>) {
64
+ return new PublishedCheckpoint(...PublishedCheckpoint.getFields(fields));
65
+ }
66
+
67
+ static fromBuffer(bufferOrReader: Buffer | BufferReader): PublishedCheckpoint {
68
+ const reader = BufferReader.asReader(bufferOrReader);
69
+ const checkpoint = reader.readObject(Checkpoint);
70
+ const l1BlockNumber = reader.readBigInt();
71
+ const l1BlockHash = reader.readString();
72
+ const l1Timestamp = reader.readBigInt();
73
+ const attestations = reader.readVector(CommitteeAttestation);
74
+ return new PublishedCheckpoint(
75
+ checkpoint,
76
+ new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash),
77
+ attestations,
78
+ );
79
+ }
80
+
81
+ public toBuffer(): Buffer {
82
+ return serializeToBuffer(
83
+ this.checkpoint,
84
+ this.l1.blockNumber,
85
+ this.l1.blockHash,
86
+ this.l1.timestamp,
87
+ this.attestations.length,
88
+ this.attestations,
89
+ );
90
+ }
91
+ }
@@ -1,3 +1,5 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+
1
3
  import { z } from 'zod';
2
4
 
3
5
  import { type ZodFor, schemas } from '../schemas/index.js';
@@ -46,21 +48,21 @@ export function getSlotAtTimestamp(ts: bigint, constants: Pick<L1RollupConstants
46
48
  export function getEpochNumberAtTimestamp(
47
49
  ts: bigint,
48
50
  constants: Pick<L1RollupConstants, 'epochDuration' | 'slotDuration' | 'l1GenesisTime'>,
49
- ) {
51
+ ): EpochNumber {
50
52
  return getEpochAtSlot(getSlotAtTimestamp(ts, constants), constants);
51
53
  }
52
54
 
53
55
  /** Returns the epoch number for a given slot. */
54
- export function getEpochAtSlot(slot: bigint, constants: Pick<L1RollupConstants, 'epochDuration'>) {
55
- return slot / BigInt(constants.epochDuration);
56
+ export function getEpochAtSlot(slot: bigint, constants: Pick<L1RollupConstants, 'epochDuration'>): EpochNumber {
57
+ return EpochNumber.fromBigInt(slot / BigInt(constants.epochDuration));
56
58
  }
57
59
 
58
60
  /** Returns the range of L2 slots (inclusive) for a given epoch number. */
59
61
  export function getSlotRangeForEpoch(
60
- epochNumber: bigint,
62
+ epochNumber: EpochNumber,
61
63
  constants: Pick<L1RollupConstants, 'epochDuration'>,
62
64
  ): [bigint, bigint] {
63
- const startSlot = epochNumber * BigInt(constants.epochDuration);
65
+ const startSlot = BigInt(epochNumber) * BigInt(constants.epochDuration);
64
66
  return [startSlot, startSlot + BigInt(constants.epochDuration) - 1n];
65
67
  }
66
68
 
@@ -69,7 +71,7 @@ export function getSlotRangeForEpoch(
69
71
  * Note that the endTimestamp is the start timestamp of the last L1 slot for the epoch.
70
72
  */
71
73
  export function getTimestampRangeForEpoch(
72
- epochNumber: bigint,
74
+ epochNumber: EpochNumber,
73
75
  constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration' | 'ethereumSlotDuration'>,
74
76
  ): [bigint, bigint] {
75
77
  const [startSlot, endSlot] = getSlotRangeForEpoch(epochNumber, constants);
@@ -86,7 +88,7 @@ export function getTimestampRangeForEpoch(
86
88
  * Returns the start timestamp for a given epoch number.
87
89
  */
88
90
  export function getStartTimestampForEpoch(
89
- epochNumber: bigint,
91
+ epochNumber: EpochNumber,
90
92
  constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration'>,
91
93
  ) {
92
94
  const [startSlot] = getSlotRangeForEpoch(epochNumber, constants);
@@ -98,10 +100,10 @@ export function getStartTimestampForEpoch(
98
100
  * See l1-contracts/src/core/libraries/TimeLib.sol
99
101
  */
100
102
  export function getProofSubmissionDeadlineEpoch(
101
- epochNumber: bigint,
103
+ epochNumber: EpochNumber,
102
104
  constants: Pick<L1RollupConstants, 'proofSubmissionEpochs'>,
103
- ) {
104
- return epochNumber + BigInt(constants.proofSubmissionEpochs + 1);
105
+ ): EpochNumber {
106
+ return EpochNumber(epochNumber + constants.proofSubmissionEpochs + 1);
105
107
  }
106
108
 
107
109
  /**
@@ -109,7 +111,7 @@ export function getProofSubmissionDeadlineEpoch(
109
111
  * Computed as the start of the given epoch plus the proof submission window.
110
112
  */
111
113
  export function getProofSubmissionDeadlineTimestamp(
112
- epochNumber: bigint,
114
+ epochNumber: EpochNumber,
113
115
  constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration' | 'proofSubmissionEpochs'>,
114
116
  ) {
115
117
  // See l1-contracts/src/core/libraries/TimeLib.sol:
@@ -1,4 +1,5 @@
1
1
  import type { L1ContractAddresses } from '@aztec/ethereum';
2
+ import { EpochNumberSchema } from '@aztec/foundation/branded-types';
2
3
  import type { ApiSchemaFor } from '@aztec/foundation/schemas';
3
4
 
4
5
  import { z } from 'zod';
@@ -94,10 +95,10 @@ export const ArchiverApiSchema: ApiSchemaFor<ArchiverApi> = {
94
95
  getTxEffect: z.function().args(TxHash.schema).returns(indexedTxSchema().optional()),
95
96
  getSettledTxReceipt: z.function().args(TxHash.schema).returns(TxReceipt.schema.optional()),
96
97
  getL2SlotNumber: z.function().args().returns(schemas.BigInt.optional()),
97
- getL2EpochNumber: z.function().args().returns(schemas.BigInt.optional()),
98
- getBlocksForEpoch: z.function().args(schemas.BigInt).returns(z.array(L2Block.schema)),
99
- getBlockHeadersForEpoch: z.function().args(schemas.BigInt).returns(z.array(BlockHeader.schema)),
100
- isEpochComplete: z.function().args(schemas.BigInt).returns(z.boolean()),
98
+ getL2EpochNumber: z.function().args().returns(EpochNumberSchema.optional()),
99
+ getBlocksForEpoch: z.function().args(EpochNumberSchema).returns(z.array(L2Block.schema)),
100
+ getBlockHeadersForEpoch: z.function().args(EpochNumberSchema).returns(z.array(BlockHeader.schema)),
101
+ isEpochComplete: z.function().args(EpochNumberSchema).returns(z.boolean()),
101
102
  getL2Tips: z.function().args().returns(L2TipsSchema),
102
103
  getPrivateLogs: z.function().args(z.number(), z.number()).returns(z.array(PrivateLog.schema)),
103
104
  getLogsByTags: z
@@ -1,4 +1,5 @@
1
- import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib';
1
+ import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
2
+ import type { EpochNumber } from '@aztec/foundation/branded-types';
2
3
  import type { EthAddress } from '@aztec/foundation/eth-address';
3
4
  import type { Fr } from '@aztec/foundation/fields';
4
5
 
@@ -19,7 +20,7 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | '
19
20
  * @param finalBlobBatchingChallenges - The final blob batching challenges for the epoch.
20
21
  **/
21
22
  startNewEpoch(
22
- epochNumber: number,
23
+ epochNumber: EpochNumber,
23
24
  totalNumCheckpoints: number,
24
25
  finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
25
26
  ): void;
@@ -4,6 +4,7 @@ import {
4
4
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
5
  RECURSIVE_PROOF_LENGTH,
6
6
  } from '@aztec/constants';
7
+ import { EpochNumber, EpochNumberSchema } from '@aztec/foundation/branded-types';
7
8
  import type { ZodFor } from '@aztec/foundation/schemas';
8
9
 
9
10
  import { z } from 'zod';
@@ -400,24 +401,32 @@ export const ProofUri = z.string().brand('ProvingJobUri');
400
401
  export type ProofUri = z.infer<typeof ProofUri>;
401
402
 
402
403
  export type ProvingJobId = z.infer<typeof ProvingJobId>;
403
- export const ProvingJob = z.object({
404
+
405
+ type ProvingJobShape = {
406
+ id: ProvingJobId;
407
+ type: ProvingRequestType;
408
+ epochNumber: EpochNumber;
409
+ inputsUri: ProofUri;
410
+ };
411
+
412
+ export const ProvingJob: z.ZodType<ProvingJobShape, z.ZodTypeDef, any> = z.object({
404
413
  id: ProvingJobId,
405
414
  type: z.nativeEnum(ProvingRequestType),
406
- epochNumber: z.number(),
415
+ epochNumber: EpochNumberSchema,
407
416
  inputsUri: ProofUri,
408
417
  });
409
418
 
410
- export const makeProvingJobId = (epochNumber: number, type: ProvingRequestType, inputsHash: string) => {
419
+ export const makeProvingJobId = (epochNumber: EpochNumber, type: ProvingRequestType, inputsHash: string) => {
411
420
  return `${epochNumber}:${ProvingRequestType[type]}:${inputsHash}`;
412
421
  };
413
422
 
414
- export const getEpochFromProvingJobId = (id: ProvingJobId) => {
423
+ export const getEpochFromProvingJobId = (id: ProvingJobId): EpochNumber => {
415
424
  const components = id.split(':');
416
425
  const epochNumber = components.length < 1 ? Number.NaN : parseInt(components[0], 10);
417
426
  if (!Number.isSafeInteger(epochNumber) || epochNumber < 0) {
418
427
  throw new Error(`Proving Job ID ${id} does not contain valid epoch`);
419
428
  }
420
- return epochNumber;
429
+ return EpochNumber(epochNumber);
421
430
  };
422
431
 
423
432
  export type ProvingJob = z.infer<typeof ProvingJob>;
@@ -8,6 +8,7 @@ import { encodeAbiParameters, parseAbiParameters } from 'viem';
8
8
  import { z } from 'zod';
9
9
 
10
10
  import type { L2Block } from '../block/l2_block.js';
11
+ import type { Checkpoint } from '../checkpoint/checkpoint.js';
11
12
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
12
13
  import { StateReference } from '../tx/state_reference.js';
13
14
  import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
@@ -90,6 +91,11 @@ export class ConsensusPayload implements Signable {
90
91
  return new ConsensusPayload(block.header.toCheckpointHeader(), block.archive.root, block.header.state);
91
92
  }
92
93
 
94
+ static fromCheckpoint(checkpoint: Checkpoint): ConsensusPayload {
95
+ const lastBlock = checkpoint.blocks.at(-1)!;
96
+ return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, lastBlock.header.state);
97
+ }
98
+
93
99
  static empty(): ConsensusPayload {
94
100
  return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, StateReference.empty());
95
101
  }
@@ -136,18 +136,19 @@ export class CheckpointHeader {
136
136
  });
137
137
  }
138
138
 
139
- static random(): CheckpointHeader {
140
- return new CheckpointHeader(
141
- Fr.random(),
142
- Fr.random(),
143
- ContentCommitment.random(),
144
- new Fr(BigInt(Math.floor(Math.random() * 1000) + 1)),
145
- BigInt(Math.floor(Date.now() / 1000)),
146
- EthAddress.random(),
147
- new AztecAddress(Fr.random()),
148
- GasFees.random(),
149
- new Fr(BigInt(Math.floor(Math.random() * 1000000))),
150
- );
139
+ static random(overrides: Partial<FieldsOf<CheckpointHeader>> = {}): CheckpointHeader {
140
+ return CheckpointHeader.from({
141
+ lastArchiveRoot: Fr.random(),
142
+ blockHeadersHash: Fr.random(),
143
+ contentCommitment: ContentCommitment.random(),
144
+ slotNumber: new Fr(BigInt(Math.floor(Math.random() * 1000) + 1)),
145
+ timestamp: BigInt(Math.floor(Date.now() / 1000)),
146
+ coinbase: EthAddress.random(),
147
+ feeRecipient: new AztecAddress(Fr.random()),
148
+ gasFees: GasFees.random(),
149
+ totalManaUsed: new Fr(BigInt(Math.floor(Math.random() * 1000000))),
150
+ ...overrides,
151
+ });
151
152
  }
152
153
 
153
154
  isEmpty(): boolean {
@@ -1,3 +1,5 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+
1
3
  import { getRoundForSlot, getRoundsForEpoch } from './helpers.js';
2
4
  import type { Offense, OffenseIdentifier, SlashPayload, SlashPayloadRound, ValidatorSlash } from './types.js';
3
5
  import { OffenseType } from './types.js';
@@ -66,7 +68,7 @@ export function getFirstEligibleRoundForOffense(
66
68
  // Inactivity is detected at the end of the epoch, so we flag it as detected in the first fresh round for the next epoch
67
69
  case OffenseType.INACTIVITY: {
68
70
  const epoch = offense.epochOrSlot;
69
- const detectedEpoch = epoch + 1n;
71
+ const detectedEpoch = EpochNumber.fromBigInt(epoch + 1n);
70
72
  return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
71
73
  }
72
74
  // These offenses are detected once an epoch is pruned, which happens after the proof submission window
@@ -74,7 +76,7 @@ export function getFirstEligibleRoundForOffense(
74
76
  case OffenseType.DATA_WITHHOLDING: {
75
77
  // TODO(palla/slash): Check for off-by-ones especially here
76
78
  const epoch = offense.epochOrSlot;
77
- const detectedEpoch = epoch + BigInt(constants.proofSubmissionEpochs);
79
+ const detectedEpoch = EpochNumber.fromBigInt(epoch + BigInt(constants.proofSubmissionEpochs));
78
80
  return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
79
81
  }
80
82
  // These offenses are detected immediately in the slot they occur, so we assume they are detected in the first round for the following slot
@@ -89,7 +91,7 @@ export function getFirstEligibleRoundForOffense(
89
91
  // Assume these are epoch-based offenses, even though we should never have to process these
90
92
  case OffenseType.UNKNOWN: {
91
93
  const epoch = offense.epochOrSlot;
92
- const detectedEpoch = epoch + 1n;
94
+ const detectedEpoch = EpochNumber.fromBigInt(epoch + 1n);
93
95
  return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
94
96
  }
95
97
  default: {
@@ -1,3 +1,5 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+
1
3
  import { type L1RollupConstants, getEpochAtSlot, getSlotRangeForEpoch } from '../epoch-helpers/index.js';
2
4
  import type { SlasherConfig } from '../interfaces/slasher.js';
3
5
  import { type Offense, OffenseType } from './types.js';
@@ -15,7 +17,7 @@ export function getRoundForSlot(
15
17
 
16
18
  /** Returns the voting round(s) lower and upper bounds (inclusive) covered by the given epoch */
17
19
  export function getRoundsForEpoch(
18
- epoch: bigint,
20
+ epoch: EpochNumber,
19
21
  constants: { slashingRoundSize: number; epochDuration: number },
20
22
  ): [bigint, bigint] {
21
23
  const [start, end] = getSlotRangeForEpoch(epoch, constants);
@@ -28,13 +30,13 @@ export function getRoundsForEpoch(
28
30
  export function getEpochsForRound(
29
31
  round: bigint,
30
32
  constants: { slashingRoundSize: number; epochDuration: number },
31
- ): bigint[] {
32
- const epochs: bigint[] = [];
33
+ ): EpochNumber[] {
34
+ const epochs: EpochNumber[] = [];
33
35
  const firstSlot = round * BigInt(constants.slashingRoundSize);
34
36
  const lastSlot = firstSlot + BigInt(constants.slashingRoundSize) - 1n;
35
37
  const startEpoch = getEpochAtSlot(firstSlot, constants);
36
38
  const endEpoch = getEpochAtSlot(lastSlot, constants);
37
- for (let epoch = startEpoch; epoch <= endEpoch; epoch++) {
39
+ for (let epoch = startEpoch; epoch <= endEpoch; epoch = EpochNumber(epoch + 1)) {
38
40
  epochs.push(epoch);
39
41
  }
40
42
  return epochs;
@@ -1,4 +1,9 @@
1
- import { makeBatchedBlobAccumulator, makeSpongeBlob } from '@aztec/blob-lib/testing';
1
+ import {
2
+ makeBlobAccumulator,
3
+ makeFinalBlobAccumulator,
4
+ makeFinalBlobBatchingChallenges,
5
+ makeSpongeBlob,
6
+ } from '@aztec/blob-lib/testing';
2
7
  import {
3
8
  ARCHIVE_HEIGHT,
4
9
  AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
@@ -77,7 +82,7 @@ import {
77
82
  import { PublicDataRead } from '../avm/public_data_read.js';
78
83
  import { PublicDataWrite } from '../avm/public_data_write.js';
79
84
  import { AztecAddress } from '../aztec-address/index.js';
80
- import { L2BlockHeader } from '../block/index.js';
85
+ import { L2BlockHeader } from '../block/l2_block_header.js';
81
86
  import {
82
87
  type ContractClassPublic,
83
88
  ContractDeploymentData,
@@ -296,7 +301,12 @@ export function makeContractStorageRead(seed = 1): ContractStorageRead {
296
301
  }
297
302
 
298
303
  function makeTxConstantData(seed = 1) {
299
- return new TxConstantData(makeHeader(seed), makeTxContext(seed + 0x100), new Fr(seed + 0x200), new Fr(seed + 0x201));
304
+ return new TxConstantData(
305
+ makeBlockHeader(seed),
306
+ makeTxContext(seed + 0x100),
307
+ new Fr(seed + 0x200),
308
+ new Fr(seed + 0x201),
309
+ );
300
310
  }
301
311
 
302
312
  function makePaddedTuple<T, N extends number>(
@@ -673,7 +683,7 @@ export function makePrivateCircuitPublicInputs(seed = 0): PrivateCircuitPublicIn
673
683
  endSideEffectCounter: fr(seed + 0x850),
674
684
  expectedNonRevertibleSideEffectCounter: fr(seed + 0x860),
675
685
  expectedRevertibleSideEffectCounter: fr(seed + 0x861),
676
- anchorBlockHeader: makeHeader(seed + 0xd00, undefined),
686
+ anchorBlockHeader: makeBlockHeader(seed + 0xd00),
677
687
  txContext: makeTxContext(seed + 0x1400),
678
688
  isFeePayer: false,
679
689
  });
@@ -825,16 +835,15 @@ export function makeBlockRollupPublicInputs(seed = 0): BlockRollupPublicInputs {
825
835
  }
826
836
 
827
837
  export function makeCheckpointRollupPublicInputs(seed = 0) {
828
- const startBlobAccumulator = makeBatchedBlobAccumulator(seed);
829
838
  return new CheckpointRollupPublicInputs(
830
839
  makeEpochConstantData(seed),
831
840
  makeAppendOnlyTreeSnapshot(seed + 0x100),
832
841
  makeAppendOnlyTreeSnapshot(seed + 0x200),
833
842
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
834
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x700),
835
- startBlobAccumulator.toBlobAccumulator(),
836
- makeBatchedBlobAccumulator(seed + 1).toBlobAccumulator(),
837
- startBlobAccumulator.finalBlobChallenges,
843
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x400),
844
+ makeBlobAccumulator(seed + 0x500),
845
+ makeBlobAccumulator(seed + 0x600),
846
+ makeFinalBlobBatchingChallenges(seed + 0x700),
838
847
  );
839
848
  }
840
849
 
@@ -869,7 +878,7 @@ export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
869
878
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
870
879
  makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
871
880
  makeEpochConstantData(seed + 0x600),
872
- makeBatchedBlobAccumulator(seed).toFinalBlobAccumulator(),
881
+ makeFinalBlobAccumulator(seed + 0x700),
873
882
  );
874
883
  }
875
884
 
@@ -880,23 +889,15 @@ export function makeContentCommitment(seed = 0): ContentCommitment {
880
889
  return new ContentCommitment(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300));
881
890
  }
882
891
 
883
- /**
884
- * Makes header.
885
- */
886
- export function makeHeader(
892
+ export function makeBlockHeader(
887
893
  seed = 0,
888
- blockNumber: number | undefined = undefined,
889
- slotNumber: number | undefined = undefined,
890
- overrides: Partial<FieldsOf<BlockHeader>> = {},
894
+ overrides: Partial<FieldsOf<Omit<BlockHeader, 'globalVariables'>>> & Partial<FieldsOf<GlobalVariables>> = {},
891
895
  ): BlockHeader {
892
896
  return BlockHeader.from({
893
897
  lastArchive: makeAppendOnlyTreeSnapshot(seed + 0x100),
894
898
  state: makeStateReference(seed + 0x200),
895
899
  spongeBlobHash: fr(seed + 0x300),
896
- globalVariables: makeGlobalVariables((seed += 0x700), {
897
- ...(blockNumber ? { blockNumber } : {}),
898
- ...(slotNumber ? { slotNumber: new Fr(slotNumber) } : {}),
899
- }),
900
+ globalVariables: makeGlobalVariables((seed += 0x700), overrides),
900
901
  totalFees: fr(seed + 0x800),
901
902
  totalManaUsed: fr(seed + 0x900),
902
903
  ...overrides,
@@ -17,10 +17,12 @@ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
17
17
  import { PublicDataWrite } from '../avm/public_data_write.js';
18
18
  import { RevertCode } from '../avm/revert_code.js';
19
19
  import { AztecAddress } from '../aztec-address/index.js';
20
- import { CommitteeAttestation, L1PublishedData, L2BlockHeader } from '../block/index.js';
20
+ import { CommitteeAttestation, L2BlockHeader } from '../block/index.js';
21
21
  import { L2Block } from '../block/l2_block.js';
22
22
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
23
23
  import { PublishedL2Block } from '../block/published_l2_block.js';
24
+ import type { Checkpoint } from '../checkpoint/checkpoint.js';
25
+ import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
24
26
  import { computeContractAddressFromInstance } from '../contract/contract_address.js';
25
27
  import { getContractClassFromArtifact } from '../contract/contract_class.js';
26
28
  import { SerializableContractInstance } from '../contract/contract_instance.js';
@@ -67,9 +69,9 @@ import { TxHash } from '../tx/tx_hash.js';
67
69
  import {
68
70
  makeAvmCircuitInputs,
69
71
  makeAztecAddress,
72
+ makeBlockHeader,
70
73
  makeGas,
71
74
  makeGlobalVariables,
72
- makeHeader,
73
75
  makeL2BlockHeader,
74
76
  makePrivateToPublicAccumulatedData,
75
77
  makePrivateToRollupAccumulatedData,
@@ -211,7 +213,7 @@ export async function mockProcessedTx({
211
213
  privateOnly?: boolean;
212
214
  } & Parameters<typeof mockTx>[1] = {}) {
213
215
  seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
214
- anchorBlockHeader ??= db?.getInitialHeader() ?? makeHeader(seed);
216
+ anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
215
217
  feePayer ??= makeAztecAddress(seed + 0x100);
216
218
  feePaymentPublicDataWrite ??= makePublicDataWrite(seed + 0x200);
217
219
 
@@ -448,15 +450,15 @@ export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockP
448
450
  };
449
451
 
450
452
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
451
- export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): BlockAttestation => {
452
- const header = options?.header ?? makeL2BlockHeader(1);
453
+ export const makeBlockAttestation = (options: MakeConsensusPayloadOptions = {}): BlockAttestation => {
454
+ const header = options.header ?? makeL2BlockHeader(1);
453
455
  const {
454
456
  signer,
455
- attesterSigner = signer ?? Secp256k1Signer.random(),
456
- proposerSigner = signer ?? Secp256k1Signer.random(),
457
+ attesterSigner = signer,
458
+ proposerSigner = signer,
457
459
  archive = Fr.random(),
458
460
  stateReference = header.state,
459
- } = options ?? {};
461
+ } = options;
460
462
 
461
463
  const payload = ConsensusPayload.fromFields({
462
464
  header: header.toCheckpointHeader(),
@@ -464,15 +466,25 @@ export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): Blo
464
466
  stateReference,
465
467
  });
466
468
 
467
- // Sign as attester
468
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
469
- const attestationSignature = attesterSigner.sign(attestationHash);
469
+ return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
470
+ };
470
471
 
471
- // Sign as proposer
472
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
473
- const proposerSignature = proposerSigner.sign(proposalHash);
472
+ export const makeAttestationFromCheckpoint = (
473
+ checkpoint: Checkpoint,
474
+ attesterSigner?: Secp256k1Signer,
475
+ proposerSigner?: Secp256k1Signer,
476
+ ): BlockAttestation => {
477
+ const header = checkpoint.header;
478
+ const archive = checkpoint.archive.root;
479
+ const stateReference = checkpoint.blocks.at(-1)!.header.state;
474
480
 
475
- return new BlockAttestation(payload, attestationSignature, proposerSignature);
481
+ const payload = ConsensusPayload.fromFields({
482
+ header,
483
+ archive,
484
+ stateReference,
485
+ });
486
+
487
+ return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
476
488
  };
477
489
 
478
490
  export const makeBlockAttestationFromBlock = (
@@ -490,6 +502,14 @@ export const makeBlockAttestationFromBlock = (
490
502
  stateReference,
491
503
  });
492
504
 
505
+ return makeBlockAttestationFromPayload(payload, attesterSigner, proposerSigner);
506
+ };
507
+
508
+ export const makeBlockAttestationFromPayload = (
509
+ payload: ConsensusPayload,
510
+ attesterSigner?: Secp256k1Signer,
511
+ proposerSigner?: Secp256k1Signer,
512
+ ): BlockAttestation => {
493
513
  // Sign as attester
494
514
  const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
495
515
  const attestationSigner = attesterSigner ?? Secp256k1Signer.random();