@aztec/stdlib 2.1.0-rc.9 → 3.0.0-devnet.2

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 (550) hide show
  1. package/dest/abi/abi.d.ts +8 -8
  2. package/dest/abi/abi.js +1 -1
  3. package/dest/abi/contract_artifact.js +3 -0
  4. package/dest/abi/event_metadata_definition.d.ts +8 -0
  5. package/dest/abi/event_metadata_definition.d.ts.map +1 -0
  6. package/dest/abi/event_metadata_definition.js +1 -0
  7. package/dest/abi/function_call.d.ts +7 -2
  8. package/dest/abi/function_call.d.ts.map +1 -1
  9. package/dest/abi/function_call.js +6 -2
  10. package/dest/abi/index.d.ts +1 -0
  11. package/dest/abi/index.d.ts.map +1 -1
  12. package/dest/abi/index.js +1 -0
  13. package/dest/avm/avm.d.ts +131 -72
  14. package/dest/avm/avm.d.ts.map +1 -1
  15. package/dest/avm/avm.js +8 -4
  16. package/dest/avm/avm_accumulated_data.d.ts +10 -21
  17. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  18. package/dest/avm/avm_accumulated_data.js +19 -22
  19. package/dest/avm/avm_circuit_public_inputs.d.ts +30 -13
  20. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  21. package/dest/avm/avm_circuit_public_inputs.js +17 -6
  22. package/dest/avm/avm_proving_request.d.ts +96 -48
  23. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  24. package/dest/avm/index.d.ts +1 -1
  25. package/dest/avm/index.d.ts.map +1 -1
  26. package/dest/avm/index.js +1 -1
  27. package/dest/avm/message_pack.d.ts +1 -0
  28. package/dest/avm/message_pack.d.ts.map +1 -1
  29. package/dest/avm/message_pack.js +28 -5
  30. package/dest/block/attestation_info.d.ts +30 -0
  31. package/dest/block/attestation_info.d.ts.map +1 -0
  32. package/dest/block/attestation_info.js +39 -0
  33. package/dest/block/body.d.ts +4 -1
  34. package/dest/block/body.d.ts.map +1 -1
  35. package/dest/block/body.js +17 -15
  36. package/dest/block/index.d.ts +2 -0
  37. package/dest/block/index.d.ts.map +1 -1
  38. package/dest/block/index.js +2 -0
  39. package/dest/block/l2_block.d.ts +19 -5
  40. package/dest/block/l2_block.d.ts.map +1 -1
  41. package/dest/block/l2_block.js +28 -7
  42. package/dest/block/l2_block_code_to_purge.d.ts +3 -14
  43. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  44. package/dest/block/l2_block_code_to_purge.js +23 -13
  45. package/dest/block/l2_block_header.d.ts +100 -0
  46. package/dest/block/l2_block_header.d.ts.map +1 -0
  47. package/dest/block/l2_block_header.js +146 -0
  48. package/dest/block/l2_block_source.d.ts +29 -0
  49. package/dest/block/l2_block_source.d.ts.map +1 -1
  50. package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
  51. package/dest/block/proposal/attestations_and_signers.d.ts +1 -1
  52. package/dest/block/proposal/attestations_and_signers.js +1 -1
  53. package/dest/block/proposal/committee_attestation.d.ts +0 -1
  54. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  55. package/dest/block/proposal/committee_attestation.js +0 -3
  56. package/dest/block/published_l2_block.d.ts +2 -8
  57. package/dest/block/published_l2_block.d.ts.map +1 -1
  58. package/dest/block/published_l2_block.js +0 -9
  59. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  60. package/dest/block/test/l2_tips_store_test_suite.js +1 -3
  61. package/dest/checkpoint/checkpoint_body.d.ts +4 -0
  62. package/dest/checkpoint/checkpoint_body.d.ts.map +1 -0
  63. package/dest/checkpoint/checkpoint_body.js +9 -0
  64. package/dest/checkpoint/index.d.ts +2 -0
  65. package/dest/checkpoint/index.d.ts.map +1 -0
  66. package/dest/checkpoint/index.js +1 -0
  67. package/dest/config/node-rpc-config.d.ts +2 -0
  68. package/dest/config/node-rpc-config.d.ts.map +1 -1
  69. package/dest/config/node-rpc-config.js +6 -0
  70. package/dest/contract/contract_address.d.ts +1 -1
  71. package/dest/contract/contract_address.js +1 -1
  72. package/dest/contract/contract_class_metadata.d.ts +8 -0
  73. package/dest/contract/contract_class_metadata.d.ts.map +1 -0
  74. package/dest/contract/contract_class_metadata.js +1 -0
  75. package/dest/contract/contract_instance.d.ts +9 -8
  76. package/dest/contract/contract_instance.d.ts.map +1 -1
  77. package/dest/contract/contract_instance.js +1 -2
  78. package/dest/contract/contract_metadata.d.ts +7 -0
  79. package/dest/contract/contract_metadata.d.ts.map +1 -0
  80. package/dest/contract/contract_metadata.js +1 -0
  81. package/dest/contract/index.d.ts +2 -0
  82. package/dest/contract/index.d.ts.map +1 -1
  83. package/dest/contract/index.js +2 -0
  84. package/dest/contract/interfaces/contract_class.d.ts +1 -1
  85. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  86. package/dest/hash/hash.d.ts.map +1 -1
  87. package/dest/hash/hash.js +0 -3
  88. package/dest/interfaces/archiver.d.ts +1 -1
  89. package/dest/interfaces/archiver.d.ts.map +1 -1
  90. package/dest/interfaces/archiver.js +7 -0
  91. package/dest/interfaces/aztec-node-admin.d.ts +40 -36
  92. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  93. package/dest/interfaces/aztec-node-admin.js +2 -2
  94. package/dest/interfaces/aztec-node.d.ts +30 -0
  95. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  96. package/dest/interfaces/aztec-node.js +7 -1
  97. package/dest/interfaces/block-builder.d.ts +1 -2
  98. package/dest/interfaces/block-builder.d.ts.map +1 -1
  99. package/dest/interfaces/client.d.ts +0 -1
  100. package/dest/interfaces/client.d.ts.map +1 -1
  101. package/dest/interfaces/client.js +0 -1
  102. package/dest/interfaces/configs.d.ts +5 -0
  103. package/dest/interfaces/configs.d.ts.map +1 -1
  104. package/dest/interfaces/configs.js +1 -0
  105. package/dest/interfaces/epoch-prover.d.ts +26 -9
  106. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  107. package/dest/interfaces/merkle_tree_operations.d.ts +5 -0
  108. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  109. package/dest/interfaces/p2p.d.ts +2 -0
  110. package/dest/interfaces/p2p.d.ts.map +1 -1
  111. package/dest/interfaces/p2p.js +2 -1
  112. package/dest/interfaces/private_kernel_prover.d.ts +2 -2
  113. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  114. package/dest/interfaces/proving-job.d.ts +343 -194
  115. package/dest/interfaces/proving-job.d.ts.map +1 -1
  116. package/dest/interfaces/proving-job.js +131 -113
  117. package/dest/interfaces/server_circuit_prover.d.ts +34 -34
  118. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  119. package/dest/interfaces/tx_provider.d.ts +1 -1
  120. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  121. package/dest/interfaces/validator.d.ts +99 -3
  122. package/dest/interfaces/validator.d.ts.map +1 -1
  123. package/dest/interfaces/validator.js +7 -0
  124. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -2
  125. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  126. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +4 -3
  127. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  128. package/dest/kernel/nullifier.d.ts +2 -2
  129. package/dest/kernel/nullifier.d.ts.map +1 -1
  130. package/dest/kernel/nullifier.js +11 -11
  131. package/dest/kernel/private_call_data.d.ts +4 -24
  132. package/dest/kernel/private_call_data.d.ts.map +1 -1
  133. package/dest/kernel/private_call_data.js +4 -16
  134. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -5
  135. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  136. package/dest/kernel/private_circuit_public_inputs.js +7 -7
  137. package/dest/kernel/private_context_inputs.d.ts +2 -2
  138. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  139. package/dest/kernel/private_context_inputs.js +4 -4
  140. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  141. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  142. package/dest/kernel/private_kernel_circuit_public_inputs.js +3 -3
  143. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +5 -4
  144. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  145. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +7 -6
  146. package/dest/kernel/private_kernel_prover_output.d.ts +1 -1
  147. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  148. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -0
  149. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  150. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
  151. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
  152. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +2 -0
  153. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  154. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -0
  155. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -1
  156. package/dest/keys/derivation.d.ts +0 -2
  157. package/dest/keys/derivation.d.ts.map +1 -1
  158. package/dest/keys/derivation.js +1 -21
  159. package/dest/logs/contract_class_log.d.ts +1 -1
  160. package/dest/logs/contract_class_log.d.ts.map +1 -1
  161. package/dest/logs/contract_class_log.js +1 -3
  162. package/dest/logs/debug_log.d.ts +13 -0
  163. package/dest/logs/debug_log.d.ts.map +1 -0
  164. package/dest/logs/debug_log.js +26 -0
  165. package/dest/logs/directional_app_tagging_secret.d.ts +40 -0
  166. package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -0
  167. package/dest/logs/directional_app_tagging_secret.js +64 -0
  168. package/dest/logs/index.d.ts +3 -1
  169. package/dest/logs/index.d.ts.map +1 -1
  170. package/dest/logs/index.js +3 -1
  171. package/dest/logs/log_with_tx_data.d.ts +9 -12
  172. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  173. package/dest/logs/log_with_tx_data.js +18 -23
  174. package/dest/logs/pre_tag.d.ts +34 -0
  175. package/dest/logs/pre_tag.d.ts.map +1 -0
  176. package/dest/logs/pre_tag.js +7 -0
  177. package/dest/logs/public_log.d.ts +23 -10
  178. package/dest/logs/public_log.d.ts.map +1 -1
  179. package/dest/logs/public_log.js +117 -42
  180. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  181. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  182. package/dest/messaging/l2_to_l1_membership.js +16 -18
  183. package/dest/noir/index.d.ts +11 -0
  184. package/dest/noir/index.d.ts.map +1 -1
  185. package/dest/note/index.d.ts +1 -1
  186. package/dest/note/index.d.ts.map +1 -1
  187. package/dest/note/index.js +1 -1
  188. package/dest/note/notes_filter.d.ts +0 -5
  189. package/dest/note/notes_filter.d.ts.map +1 -1
  190. package/dest/note/notes_filter.js +0 -3
  191. package/dest/note/unique_note.d.ts +43 -0
  192. package/dest/note/unique_note.d.ts.map +1 -0
  193. package/dest/note/{extended_note.js → unique_note.js} +9 -48
  194. package/dest/p2p/block_attestation.d.ts +13 -13
  195. package/dest/p2p/block_attestation.d.ts.map +1 -1
  196. package/dest/p2p/block_attestation.js +27 -25
  197. package/dest/p2p/block_proposal.d.ts +6 -8
  198. package/dest/p2p/block_proposal.d.ts.map +1 -1
  199. package/dest/p2p/block_proposal.js +10 -13
  200. package/dest/p2p/consensus_payload.d.ts +7 -6
  201. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  202. package/dest/p2p/consensus_payload.js +7 -6
  203. package/dest/parity/index.d.ts +2 -3
  204. package/dest/parity/index.d.ts.map +1 -1
  205. package/dest/parity/index.js +2 -3
  206. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +7 -7
  207. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  208. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +10 -6
  209. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  210. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  211. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  212. package/dest/proofs/client_ivc_proof.d.ts +17 -7
  213. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  214. package/dest/proofs/client_ivc_proof.js +78 -19
  215. package/dest/proofs/index.d.ts +1 -0
  216. package/dest/proofs/index.d.ts.map +1 -1
  217. package/dest/proofs/index.js +1 -0
  218. package/dest/proofs/proof_data.d.ts +21 -0
  219. package/dest/proofs/proof_data.d.ts.map +1 -0
  220. package/dest/proofs/proof_data.js +22 -0
  221. package/dest/proofs/proving_request_type.d.ts +17 -13
  222. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  223. package/dest/proofs/proving_request_type.js +17 -12
  224. package/dest/rollup/avm_proof_data.d.ts +2 -12
  225. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  226. package/dest/rollup/avm_proof_data.js +0 -24
  227. package/dest/rollup/base_rollup_hints.d.ts +17 -17
  228. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  229. package/dest/rollup/base_rollup_hints.js +26 -26
  230. package/dest/rollup/block_constant_data.d.ts +24 -10
  231. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  232. package/dest/rollup/block_constant_data.js +18 -10
  233. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
  234. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  235. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
  236. package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
  237. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  238. package/dest/rollup/block_rollup_public_inputs.js +85 -0
  239. package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
  240. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  241. package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
  242. package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
  243. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  244. package/dest/rollup/checkpoint_constant_data.js +55 -0
  245. package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +12 -13
  246. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  247. package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
  248. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
  249. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  250. package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
  251. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +106 -0
  252. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  253. package/dest/rollup/checkpoint_rollup_public_inputs.js +108 -0
  254. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
  255. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  256. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
  257. package/dest/rollup/epoch_constant_data.d.ts +23 -6
  258. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  259. package/dest/rollup/epoch_constant_data.js +25 -12
  260. package/dest/rollup/index.d.ts +17 -16
  261. package/dest/rollup/index.d.ts.map +1 -1
  262. package/dest/rollup/index.js +17 -16
  263. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +21 -0
  264. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  265. package/dest/rollup/private_tx_base_rollup_private_inputs.js +42 -0
  266. package/dest/rollup/public_tube_private_inputs.d.ts +21 -0
  267. package/dest/rollup/public_tube_private_inputs.d.ts.map +1 -0
  268. package/dest/rollup/public_tube_private_inputs.js +42 -0
  269. package/dest/rollup/public_tube_public_inputs.d.ts +20 -0
  270. package/dest/rollup/public_tube_public_inputs.d.ts.map +1 -0
  271. package/dest/rollup/public_tube_public_inputs.js +41 -0
  272. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +23 -0
  273. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  274. package/dest/rollup/public_tx_base_rollup_private_inputs.js +46 -0
  275. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  276. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  277. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  278. package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
  279. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  280. package/dest/rollup/root_rollup_public_inputs.js +71 -0
  281. package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
  282. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
  283. package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
  284. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  285. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  286. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  287. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +14 -14
  288. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  289. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +15 -15
  290. package/dest/stats/stats.d.ts +1 -1
  291. package/dest/stats/stats.d.ts.map +1 -1
  292. package/dest/tests/factories.d.ts +42 -74
  293. package/dest/tests/factories.d.ts.map +1 -1
  294. package/dest/tests/factories.js +144 -167
  295. package/dest/tests/mocks.d.ts +11 -7
  296. package/dest/tests/mocks.d.ts.map +1 -1
  297. package/dest/tests/mocks.js +44 -23
  298. package/dest/trees/index.d.ts +0 -1
  299. package/dest/trees/index.d.ts.map +1 -1
  300. package/dest/trees/index.js +0 -1
  301. package/dest/trees/merkle_tree_id.d.ts +4 -4
  302. package/dest/trees/nullifier_membership_witness.d.ts +3 -3
  303. package/dest/tx/block_header.d.ts +12 -13
  304. package/dest/tx/block_header.d.ts.map +1 -1
  305. package/dest/tx/block_header.js +16 -21
  306. package/dest/tx/global_variables.d.ts.map +1 -1
  307. package/dest/tx/global_variables.js +0 -1
  308. package/dest/tx/index.d.ts +2 -1
  309. package/dest/tx/index.d.ts.map +1 -1
  310. package/dest/tx/index.js +2 -1
  311. package/dest/tx/private_execution_result.d.ts +7 -2
  312. package/dest/tx/private_execution_result.d.ts.map +1 -1
  313. package/dest/tx/private_execution_result.js +10 -6
  314. package/dest/tx/private_tx_constant_data.d.ts +60 -0
  315. package/dest/tx/private_tx_constant_data.d.ts.map +1 -0
  316. package/dest/tx/private_tx_constant_data.js +69 -0
  317. package/dest/tx/processed_tx.d.ts +0 -1
  318. package/dest/tx/processed_tx.d.ts.map +1 -1
  319. package/dest/tx/processed_tx.js +1 -6
  320. package/dest/tx/profiling.d.ts.map +1 -1
  321. package/dest/tx/profiling.js +0 -2
  322. package/dest/tx/protocol_contracts.d.ts +29 -0
  323. package/dest/tx/protocol_contracts.d.ts.map +1 -0
  324. package/dest/tx/protocol_contracts.js +49 -0
  325. package/dest/tx/simulated_tx.d.ts +3 -3
  326. package/dest/tx/tx.d.ts +6 -2
  327. package/dest/tx/tx.d.ts.map +1 -1
  328. package/dest/tx/tx.js +10 -3
  329. package/dest/tx/tx_constant_data.d.ts +6 -38
  330. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  331. package/dest/tx/tx_constant_data.js +11 -20
  332. package/dest/tx/tx_effect.d.ts +3 -36
  333. package/dest/tx/tx_effect.d.ts.map +1 -1
  334. package/dest/tx/tx_effect.js +63 -202
  335. package/dest/tx/validator/error_texts.d.ts +1 -1
  336. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  337. package/dest/tx/validator/error_texts.js +1 -1
  338. package/dest/versioning/versioning.d.ts +2 -2
  339. package/dest/versioning/versioning.d.ts.map +1 -1
  340. package/dest/versioning/versioning.js +18 -13
  341. package/dest/world-state/index.d.ts +2 -0
  342. package/dest/world-state/index.d.ts.map +1 -0
  343. package/dest/world-state/index.js +1 -0
  344. package/dest/world-state/world_state_revision.d.ts +22 -0
  345. package/dest/world-state/world_state_revision.d.ts.map +1 -0
  346. package/dest/world-state/world_state_revision.js +21 -0
  347. package/dest/zkpassport/index.d.ts +15 -9
  348. package/dest/zkpassport/index.d.ts.map +1 -1
  349. package/dest/zkpassport/index.js +17 -11
  350. package/package.json +12 -10
  351. package/src/abi/abi.ts +1 -1
  352. package/src/abi/contract_artifact.ts +3 -0
  353. package/src/abi/event_metadata_definition.ts +8 -0
  354. package/src/abi/function_call.ts +5 -1
  355. package/src/abi/index.ts +1 -0
  356. package/src/avm/avm.ts +13 -2
  357. package/src/avm/avm_accumulated_data.ts +25 -29
  358. package/src/avm/avm_circuit_public_inputs.ts +21 -0
  359. package/src/avm/index.ts +1 -1
  360. package/src/avm/message_pack.ts +25 -1
  361. package/src/block/attestation_info.ts +62 -0
  362. package/src/block/body.ts +25 -23
  363. package/src/block/index.ts +2 -0
  364. package/src/block/l2_block.ts +33 -8
  365. package/src/block/l2_block_code_to_purge.ts +30 -31
  366. package/src/block/l2_block_header.ts +232 -0
  367. package/src/block/l2_block_source.ts +32 -0
  368. package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
  369. package/src/block/proposal/attestations_and_signers.ts +1 -1
  370. package/src/block/proposal/committee_attestation.ts +0 -4
  371. package/src/block/published_l2_block.ts +0 -17
  372. package/src/block/test/l2_tips_store_test_suite.ts +1 -2
  373. package/src/checkpoint/checkpoint_body.ts +10 -0
  374. package/src/checkpoint/index.ts +1 -0
  375. package/src/config/node-rpc-config.ts +9 -0
  376. package/src/contract/contract_address.ts +1 -1
  377. package/src/contract/contract_class_metadata.ts +8 -0
  378. package/src/contract/contract_instance.ts +11 -10
  379. package/src/contract/contract_metadata.ts +7 -0
  380. package/src/contract/index.ts +2 -0
  381. package/src/contract/interfaces/contract_class.ts +1 -1
  382. package/src/hash/hash.ts +0 -4
  383. package/src/interfaces/archiver.ts +9 -1
  384. package/src/interfaces/aztec-node-admin.ts +2 -2
  385. package/src/interfaces/aztec-node.ts +45 -0
  386. package/src/interfaces/block-builder.ts +1 -6
  387. package/src/interfaces/client.ts +0 -1
  388. package/src/interfaces/configs.ts +3 -0
  389. package/src/interfaces/epoch-prover.ts +35 -11
  390. package/src/interfaces/merkle_tree_operations.ts +6 -0
  391. package/src/interfaces/p2p.ts +4 -0
  392. package/src/interfaces/private_kernel_prover.ts +2 -2
  393. package/src/interfaces/proving-job.ts +215 -134
  394. package/src/interfaces/server_circuit_prover.ts +87 -61
  395. package/src/interfaces/tx_provider.ts +1 -0
  396. package/src/interfaces/validator.ts +19 -4
  397. package/src/kernel/hints/build_nullifier_read_request_hints.ts +3 -2
  398. package/src/kernel/hints/nullifier_read_request_hints.ts +3 -3
  399. package/src/kernel/nullifier.ts +8 -8
  400. package/src/kernel/private_call_data.ts +2 -21
  401. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  402. package/src/kernel/private_context_inputs.ts +2 -2
  403. package/src/kernel/private_kernel_circuit_public_inputs.ts +4 -4
  404. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +5 -4
  405. package/src/kernel/private_kernel_prover_output.ts +1 -1
  406. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +8 -2
  407. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +9 -0
  408. package/src/keys/derivation.ts +1 -26
  409. package/src/logs/contract_class_log.ts +2 -3
  410. package/src/logs/debug_log.ts +32 -0
  411. package/src/logs/directional_app_tagging_secret.ts +78 -0
  412. package/src/logs/index.ts +3 -1
  413. package/src/logs/log_with_tx_data.ts +14 -24
  414. package/src/logs/pre_tag.ts +25 -0
  415. package/src/logs/public_log.ts +120 -58
  416. package/src/messaging/l2_to_l1_membership.ts +20 -26
  417. package/src/noir/index.ts +11 -0
  418. package/src/note/index.ts +1 -1
  419. package/src/note/notes_filter.ts +0 -7
  420. package/src/note/{extended_note.ts → unique_note.ts} +14 -75
  421. package/src/p2p/block_attestation.ts +31 -24
  422. package/src/p2p/block_proposal.ts +11 -16
  423. package/src/p2p/consensus_payload.ts +8 -7
  424. package/src/parity/index.ts +2 -3
  425. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +13 -11
  426. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  427. package/src/proofs/client_ivc_proof.ts +86 -20
  428. package/src/proofs/index.ts +1 -0
  429. package/src/proofs/proof_data.ts +36 -0
  430. package/src/proofs/proving_request_type.ts +14 -10
  431. package/src/rollup/avm_proof_data.ts +2 -31
  432. package/src/rollup/base_rollup_hints.ts +22 -22
  433. package/src/rollup/block_constant_data.ts +16 -6
  434. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
  435. package/src/rollup/block_rollup_public_inputs.ts +123 -0
  436. package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
  437. package/src/rollup/checkpoint_constant_data.ts +84 -0
  438. package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +17 -18
  439. package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
  440. package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +30 -52
  441. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
  442. package/src/rollup/epoch_constant_data.ts +28 -10
  443. package/src/rollup/index.ts +17 -16
  444. package/src/rollup/private_tx_base_rollup_private_inputs.ts +53 -0
  445. package/src/rollup/public_tube_private_inputs.ts +53 -0
  446. package/src/rollup/public_tube_public_inputs.ts +52 -0
  447. package/src/rollup/public_tx_base_rollup_private_inputs.ts +57 -0
  448. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  449. package/src/rollup/root_rollup_public_inputs.ts +99 -0
  450. package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
  451. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  452. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +13 -13
  453. package/src/stats/stats.ts +19 -13
  454. package/src/tests/factories.ts +217 -275
  455. package/src/tests/mocks.ts +71 -53
  456. package/src/trees/index.ts +0 -1
  457. package/src/tx/block_header.ts +17 -32
  458. package/src/tx/global_variables.ts +0 -1
  459. package/src/tx/index.ts +2 -1
  460. package/src/tx/private_execution_result.ts +9 -3
  461. package/src/tx/private_tx_constant_data.ts +94 -0
  462. package/src/tx/processed_tx.ts +1 -7
  463. package/src/tx/profiling.ts +0 -2
  464. package/src/tx/protocol_contracts.ts +70 -0
  465. package/src/tx/tx.ts +12 -3
  466. package/src/tx/tx_constant_data.ts +8 -21
  467. package/src/tx/tx_effect.ts +64 -213
  468. package/src/tx/validator/error_texts.ts +1 -1
  469. package/src/versioning/versioning.ts +20 -15
  470. package/src/world-state/index.ts +1 -0
  471. package/src/world-state/world_state_revision.ts +21 -0
  472. package/src/zkpassport/index.ts +40 -28
  473. package/dest/avm/public_data_hint.d.ts +0 -16
  474. package/dest/avm/public_data_hint.d.ts.map +0 -1
  475. package/dest/avm/public_data_hint.js +0 -27
  476. package/dest/interfaces/pxe.d.ts +0 -336
  477. package/dest/interfaces/pxe.d.ts.map +0 -1
  478. package/dest/interfaces/pxe.js +0 -101
  479. package/dest/logs/indexed_tagging_secret.d.ts +0 -28
  480. package/dest/logs/indexed_tagging_secret.d.ts.map +0 -1
  481. package/dest/logs/indexed_tagging_secret.js +0 -50
  482. package/dest/note/extended_note.d.ts +0 -111
  483. package/dest/note/extended_note.d.ts.map +0 -1
  484. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  485. package/dest/parity/root_parity_input.d.ts +0 -52
  486. package/dest/parity/root_parity_input.d.ts.map +0 -1
  487. package/dest/parity/root_parity_input.js +0 -50
  488. package/dest/parity/root_parity_inputs.d.ts +0 -37
  489. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  490. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  491. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  492. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
  493. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  494. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
  495. package/dest/rollup/block_root_rollup.d.ts +0 -283
  496. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  497. package/dest/rollup/block_root_rollup.js +0 -306
  498. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
  499. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  500. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
  501. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  502. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  503. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  504. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  505. package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
  506. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  507. package/dest/rollup/previous_rollup_block_data.js +0 -37
  508. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  509. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  510. package/dest/rollup/previous_rollup_data.js +0 -37
  511. package/dest/rollup/private_base_rollup_inputs.d.ts +0 -21
  512. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  513. package/dest/rollup/private_base_rollup_inputs.js +0 -44
  514. package/dest/rollup/private_tube_data.d.ts +0 -15
  515. package/dest/rollup/private_tube_data.d.ts.map +0 -1
  516. package/dest/rollup/private_tube_data.js +0 -25
  517. package/dest/rollup/public_base_rollup_inputs.d.ts +0 -23
  518. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  519. package/dest/rollup/public_base_rollup_inputs.js +0 -48
  520. package/dest/rollup/public_tube_data.d.ts +0 -15
  521. package/dest/rollup/public_tube_data.d.ts.map +0 -1
  522. package/dest/rollup/public_tube_data.js +0 -25
  523. package/dest/rollup/root_rollup.d.ts +0 -106
  524. package/dest/rollup/root_rollup.d.ts.map +0 -1
  525. package/dest/rollup/root_rollup.js +0 -147
  526. package/dest/rollup/state_diff_hints.d.ts.map +0 -1
  527. package/dest/rollup/state_diff_hints.js +0 -85
  528. package/dest/rollup/tube_inputs.d.ts +0 -43
  529. package/dest/rollup/tube_inputs.d.ts.map +0 -1
  530. package/dest/rollup/tube_inputs.js +0 -63
  531. package/dest/trees/protocol_contract_leaf.d.ts +0 -84
  532. package/dest/trees/protocol_contract_leaf.d.ts.map +0 -1
  533. package/dest/trees/protocol_contract_leaf.js +0 -100
  534. package/dest/tx/proposed_block_header.d.ts.map +0 -1
  535. package/src/avm/public_data_hint.ts +0 -38
  536. package/src/interfaces/pxe.ts +0 -541
  537. package/src/logs/indexed_tagging_secret.ts +0 -48
  538. package/src/parity/root_parity_input.ts +0 -71
  539. package/src/rollup/block_root_rollup.ts +0 -380
  540. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
  541. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  542. package/src/rollup/previous_rollup_block_data.ts +0 -48
  543. package/src/rollup/previous_rollup_data.ts +0 -48
  544. package/src/rollup/private_base_rollup_inputs.ts +0 -53
  545. package/src/rollup/private_tube_data.ts +0 -35
  546. package/src/rollup/public_base_rollup_inputs.ts +0 -59
  547. package/src/rollup/public_tube_data.ts +0 -35
  548. package/src/rollup/root_rollup.ts +0 -195
  549. package/src/rollup/tube_inputs.ts +0 -77
  550. package/src/trees/protocol_contract_leaf.ts +0 -128
@@ -10,13 +10,13 @@ import { TxHash } from '../tx/tx_hash.js';
10
10
  import { Note } from './note.js';
11
11
 
12
12
  /**
13
- * A note with contextual data.
13
+ * A note with contextual data and a nonce that makes it unique.
14
14
  */
15
- export class ExtendedNote {
15
+ export class UniqueNote {
16
16
  constructor(
17
17
  /** The note as emitted from the Noir contract. */
18
18
  public note: Note,
19
- /** The address whose public key was used to encrypt the note. */
19
+ /** The recipient whose public key was used to encrypt the note. */
20
20
  public recipient: AztecAddress,
21
21
  /** The contract address this note is created in. */
22
22
  public contractAddress: AztecAddress,
@@ -24,76 +24,11 @@ export class ExtendedNote {
24
24
  public storageSlot: Fr,
25
25
  /** The hash of the tx the note was created in. */
26
26
  public txHash: TxHash,
27
- ) {}
28
-
29
- toBuffer(): Buffer {
30
- return serializeToBuffer([this.note, this.recipient, this.contractAddress, this.storageSlot, this.txHash]);
31
- }
32
-
33
- static fromBuffer(buffer: Buffer | BufferReader) {
34
- const reader = BufferReader.asReader(buffer);
35
-
36
- const note = reader.readObject(Note);
37
- const recipient = reader.readObject(AztecAddress);
38
- const contractAddress = reader.readObject(AztecAddress);
39
- const storageSlot = reader.readObject(Fr);
40
- const txHash = reader.readObject(TxHash);
41
-
42
- return new this(note, recipient, contractAddress, storageSlot, txHash);
43
- }
44
-
45
- static get schema(): ZodFor<ExtendedNote> {
46
- return z
47
- .object({
48
- note: Note.schema,
49
- recipient: schemas.AztecAddress,
50
- contractAddress: schemas.AztecAddress,
51
- storageSlot: schemas.Fr,
52
- txHash: TxHash.schema,
53
- })
54
- .transform(({ note, recipient, contractAddress, storageSlot, txHash }) => {
55
- return new ExtendedNote(note, recipient, contractAddress, storageSlot, txHash);
56
- });
57
- }
58
-
59
- toString() {
60
- return bufferToHex(this.toBuffer());
61
- }
62
-
63
- static fromString(str: string) {
64
- return ExtendedNote.fromBuffer(hexToBuffer(str));
65
- }
66
-
67
- static async random() {
68
- return new ExtendedNote(
69
- Note.random(),
70
- await AztecAddress.random(),
71
- await AztecAddress.random(),
72
- Fr.random(),
73
- TxHash.random(),
74
- );
75
- }
76
- }
77
-
78
- export class UniqueNote extends ExtendedNote {
79
- constructor(
80
- /** The note as emitted from the Noir contract. */
81
- note: Note,
82
- /** The recipient whose public key was used to encrypt the note. */
83
- recipient: AztecAddress,
84
- /** The contract address this note is created in. */
85
- contractAddress: AztecAddress,
86
- /** The specific storage location of the note on the contract. */
87
- storageSlot: Fr,
88
- /** The hash of the tx the note was created in. */
89
- txHash: TxHash,
90
27
  /** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
91
28
  public noteNonce: Fr,
92
- ) {
93
- super(note, recipient, contractAddress, storageSlot, txHash);
94
- }
29
+ ) {}
95
30
 
96
- static override get schema() {
31
+ static get schema(): ZodFor<UniqueNote> {
97
32
  return z
98
33
  .object({
99
34
  note: Note.schema,
@@ -108,7 +43,7 @@ export class UniqueNote extends ExtendedNote {
108
43
  });
109
44
  }
110
45
 
111
- override toBuffer(): Buffer {
46
+ toBuffer(): Buffer {
112
47
  return serializeToBuffer([
113
48
  this.note,
114
49
  this.recipient,
@@ -119,7 +54,7 @@ export class UniqueNote extends ExtendedNote {
119
54
  ]);
120
55
  }
121
56
 
122
- static override async random() {
57
+ static async random() {
123
58
  return new UniqueNote(
124
59
  Note.random(),
125
60
  await AztecAddress.random(),
@@ -130,7 +65,7 @@ export class UniqueNote extends ExtendedNote {
130
65
  );
131
66
  }
132
67
 
133
- static override fromBuffer(buffer: Buffer | BufferReader) {
68
+ static fromBuffer(buffer: Buffer | BufferReader) {
134
69
  const reader = BufferReader.asReader(buffer);
135
70
 
136
71
  const note = reader.readObject(Note);
@@ -140,10 +75,14 @@ export class UniqueNote extends ExtendedNote {
140
75
  const txHash = reader.readObject(TxHash);
141
76
  const noteNonce = reader.readObject(Fr);
142
77
 
143
- return new this(note, recipient, contractAddress, storageSlot, txHash, noteNonce);
78
+ return new UniqueNote(note, recipient, contractAddress, storageSlot, txHash, noteNonce);
144
79
  }
145
80
 
146
- static override fromString(str: string) {
81
+ static fromString(str: string) {
147
82
  return UniqueNote.fromBuffer(hexToBuffer(str));
148
83
  }
84
+
85
+ toString() {
86
+ return bufferToHex(this.toBuffer());
87
+ }
149
88
  }
@@ -1,5 +1,5 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- import { keccak256, recoverAddress } from '@aztec/foundation/crypto';
2
+ import { keccak256, tryRecoverAddress } from '@aztec/foundation/crypto';
3
3
  import type { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { Signature } from '@aztec/foundation/eth-signature';
5
5
  import { Fr } from '@aztec/foundation/fields';
@@ -7,8 +7,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
7
7
 
8
8
  import { z } from 'zod';
9
9
 
10
- import { type ZodFor, schemas } from '../schemas/index.js';
11
- import type { UInt32 } from '../types/index.js';
10
+ import type { ZodFor } from '../schemas/index.js';
12
11
  import { ConsensusPayload } from './consensus_payload.js';
13
12
  import { Gossipable } from './gossipable.js';
14
13
  import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
@@ -30,16 +29,17 @@ export class BlockAttestation extends Gossipable {
30
29
  static override p2pTopic = TopicType.block_attestation;
31
30
 
32
31
  private sender: EthAddress | undefined;
32
+ private proposer: EthAddress | undefined;
33
33
 
34
34
  constructor(
35
- /** The block number of the attestation. */
36
- public readonly blockNumber: UInt32,
37
-
38
35
  /** The payload of the message, and what the signature is over */
39
36
  public readonly payload: ConsensusPayload,
40
37
 
41
38
  /** The signature of the block attester */
42
39
  public readonly signature: Signature,
40
+
41
+ /** The signature from the block proposer */
42
+ public readonly proposerSignature: Signature,
43
43
  ) {
44
44
  super();
45
45
  }
@@ -47,11 +47,11 @@ export class BlockAttestation extends Gossipable {
47
47
  static get schema(): ZodFor<BlockAttestation> {
48
48
  return z
49
49
  .object({
50
- blockNumber: schemas.UInt32,
51
50
  payload: ConsensusPayload.schema,
52
51
  signature: Signature.schema,
52
+ proposerSignature: Signature.schema,
53
53
  })
54
- .transform(obj => new BlockAttestation(obj.blockNumber, obj.payload, obj.signature));
54
+ .transform(obj => new BlockAttestation(obj.payload, obj.signature, obj.proposerSignature));
55
55
  }
56
56
 
57
57
  override generateP2PMessageIdentifier(): Promise<Buffer32> {
@@ -68,29 +68,32 @@ export class BlockAttestation extends Gossipable {
68
68
 
69
69
  /**
70
70
  * Lazily evaluate and cache the signer of the attestation
71
- * @returns The signer of the attestation
71
+ * @returns The signer of the attestation, or undefined if signature recovery fails
72
72
  */
73
- getSender(): EthAddress {
73
+ getSender(): EthAddress | undefined {
74
74
  if (!this.sender) {
75
75
  // Recover the sender from the attestation
76
76
  const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.blockAttestation);
77
77
  // Cache the sender for later use
78
- this.sender = recoverAddress(hashed, this.signature);
78
+ this.sender = tryRecoverAddress(hashed, this.signature);
79
79
  }
80
80
 
81
81
  return this.sender;
82
82
  }
83
83
 
84
84
  /**
85
- * Tries to get the sender of the attestation
86
- * @returns The sender of the attestation or undefined if it fails during recovery
85
+ * Lazily evaluate and cache the proposer of the block
86
+ * @returns The proposer of the block
87
87
  */
88
- tryGetSender(): EthAddress | undefined {
89
- try {
90
- return this.getSender();
91
- } catch {
92
- return undefined;
88
+ getProposer(): EthAddress | undefined {
89
+ if (!this.proposer) {
90
+ // Recover the proposer from the proposal signature
91
+ const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.blockProposal);
92
+ // Cache the proposer for later use
93
+ this.proposer = tryRecoverAddress(hashed, this.proposerSignature);
93
94
  }
95
+
96
+ return this.proposer;
94
97
  }
95
98
 
96
99
  getPayload(): Buffer {
@@ -98,31 +101,35 @@ export class BlockAttestation extends Gossipable {
98
101
  }
99
102
 
100
103
  toBuffer(): Buffer {
101
- return serializeToBuffer([this.blockNumber, this.payload, this.signature]);
104
+ return serializeToBuffer([this.payload, this.signature, this.proposerSignature]);
102
105
  }
103
106
 
104
107
  static fromBuffer(buf: Buffer | BufferReader): BlockAttestation {
105
108
  const reader = BufferReader.asReader(buf);
106
- return new BlockAttestation(reader.readNumber(), reader.readObject(ConsensusPayload), reader.readObject(Signature));
109
+ return new BlockAttestation(
110
+ reader.readObject(ConsensusPayload),
111
+ reader.readObject(Signature),
112
+ reader.readObject(Signature),
113
+ );
107
114
  }
108
115
 
109
116
  static empty(): BlockAttestation {
110
- return new BlockAttestation(0, ConsensusPayload.empty(), Signature.empty());
117
+ return new BlockAttestation(ConsensusPayload.empty(), Signature.empty(), Signature.empty());
111
118
  }
112
119
 
113
120
  static random(): BlockAttestation {
114
- return new BlockAttestation(Math.floor(Math.random() * 1000) + 1, ConsensusPayload.random(), Signature.random());
121
+ return new BlockAttestation(ConsensusPayload.random(), Signature.random(), Signature.random());
115
122
  }
116
123
 
117
124
  getSize(): number {
118
- return 4 /* blockNumber */ + this.payload.getSize() + this.signature.getSize();
125
+ return this.payload.getSize() + this.signature.getSize() + this.proposerSignature.getSize();
119
126
  }
120
127
 
121
128
  toInspect() {
122
129
  return {
123
- blockNumber: this.blockNumber,
124
130
  payload: this.payload.toInspect(),
125
131
  signature: this.signature.toString(),
132
+ proposerSignature: this.proposerSignature.toString(),
126
133
  };
127
134
  }
128
135
  }
@@ -1,5 +1,5 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- import { keccak256, recoverAddress } from '@aztec/foundation/crypto';
2
+ import { keccak256, tryRecoverAddress } from '@aztec/foundation/crypto';
3
3
  import type { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { Signature } from '@aztec/foundation/eth-signature';
5
5
  import { Fr } from '@aztec/foundation/fields';
@@ -8,7 +8,6 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
8
8
  import type { L2BlockInfo } from '../block/l2_block_info.js';
9
9
  import { TxHash } from '../tx/index.js';
10
10
  import { Tx } from '../tx/tx.js';
11
- import type { UInt32 } from '../types/index.js';
12
11
  import { ConsensusPayload } from './consensus_payload.js';
13
12
  import { Gossipable } from './gossipable.js';
14
13
  import {
@@ -26,6 +25,8 @@ export class BlockProposalHash extends Buffer32 {
26
25
 
27
26
  export type BlockProposalOptions = {
28
27
  publishFullTxs: boolean;
28
+ /** Whether to generate an invalid block proposal for broadcasting. Use only for testing. */
29
+ broadcastInvalidBlockProposal?: boolean;
29
30
  };
30
31
 
31
32
  /**
@@ -40,9 +41,6 @@ export class BlockProposal extends Gossipable {
40
41
  private sender: EthAddress | undefined;
41
42
 
42
43
  constructor(
43
- /** The number of the block */
44
- public readonly blockNumber: UInt32,
45
-
46
44
  /** The payload of the message, and what the signature is over */
47
45
  public readonly payload: ConsensusPayload,
48
46
 
@@ -71,9 +69,8 @@ export class BlockProposal extends Gossipable {
71
69
  return this.payload.header.slotNumber;
72
70
  }
73
71
 
74
- toBlockInfo(): L2BlockInfo {
72
+ toBlockInfo(): Omit<L2BlockInfo, 'blockNumber'> {
75
73
  return {
76
- blockNumber: this.blockNumber,
77
74
  slotNumber: this.slotNumber.toNumber(),
78
75
  lastArchive: this.payload.header.lastArchiveRoot,
79
76
  timestamp: this.payload.header.timestamp,
@@ -83,7 +80,6 @@ export class BlockProposal extends Gossipable {
83
80
  }
84
81
 
85
82
  static async createProposalFromSigner(
86
- blockNumber: UInt32,
87
83
  payload: ConsensusPayload,
88
84
  txHashes: TxHash[],
89
85
  // Note(md): Provided separately to tx hashes such that this function can be optional
@@ -93,17 +89,18 @@ export class BlockProposal extends Gossipable {
93
89
  const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
94
90
  const sig = await payloadSigner(hashed);
95
91
 
96
- return new BlockProposal(blockNumber, payload, sig, txHashes, txs);
92
+ return new BlockProposal(payload, sig, txHashes, txs);
97
93
  }
98
94
 
99
95
  /**Get Sender
100
96
  * Lazily evaluate the sender of the proposal; result is cached
97
+ * @returns The sender address, or undefined if signature recovery fails
101
98
  */
102
- getSender() {
99
+ getSender(): EthAddress | undefined {
103
100
  if (!this.sender) {
104
101
  const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.blockProposal);
105
102
  // Cache the sender for later use
106
- this.sender = recoverAddress(hashed, this.signature);
103
+ this.sender = tryRecoverAddress(hashed, this.signature);
107
104
  }
108
105
 
109
106
  return this.sender;
@@ -114,7 +111,7 @@ export class BlockProposal extends Gossipable {
114
111
  }
115
112
 
116
113
  toBuffer(): Buffer {
117
- const buffer: any[] = [this.blockNumber, this.payload, this.signature, this.txHashes.length, this.txHashes];
114
+ const buffer: any[] = [this.payload, this.signature, this.txHashes.length, this.txHashes];
118
115
  if (this.txs) {
119
116
  buffer.push(this.txs.length);
120
117
  buffer.push(this.txs);
@@ -125,22 +122,20 @@ export class BlockProposal extends Gossipable {
125
122
  static fromBuffer(buf: Buffer | BufferReader): BlockProposal {
126
123
  const reader = BufferReader.asReader(buf);
127
124
 
128
- const blockNumber = reader.readNumber();
129
125
  const payload = reader.readObject(ConsensusPayload);
130
126
  const sig = reader.readObject(Signature);
131
127
  const txHashes = reader.readArray(reader.readNumber(), TxHash);
132
128
 
133
129
  if (!reader.isEmpty()) {
134
130
  const txs = reader.readArray(reader.readNumber(), Tx);
135
- return new BlockProposal(blockNumber, payload, sig, txHashes, txs);
131
+ return new BlockProposal(payload, sig, txHashes, txs);
136
132
  }
137
133
 
138
- return new BlockProposal(blockNumber, payload, sig, txHashes);
134
+ return new BlockProposal(payload, sig, txHashes);
139
135
  }
140
136
 
141
137
  getSize(): number {
142
138
  return (
143
- 4 /* blockNumber */ +
144
139
  this.payload.getSize() +
145
140
  this.signature.getSize() +
146
141
  4 /* txHashes.length */ +
@@ -8,7 +8,8 @@ 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 { ProposedBlockHeader, StateReference } from '../tx/index.js';
11
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
12
+ import { StateReference } from '../tx/state_reference.js';
12
13
  import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
13
14
 
14
15
  export class ConsensusPayload implements Signable {
@@ -16,7 +17,7 @@ export class ConsensusPayload implements Signable {
16
17
 
17
18
  constructor(
18
19
  /** The proposed block header the attestation is made over */
19
- public readonly header: ProposedBlockHeader,
20
+ public readonly header: CheckpointHeader,
20
21
  /** The archive root after the block is added */
21
22
  public readonly archive: Fr,
22
23
  /** The state reference after the block is added */
@@ -26,7 +27,7 @@ export class ConsensusPayload implements Signable {
26
27
  static get schema() {
27
28
  return z
28
29
  .object({
29
- header: ProposedBlockHeader.schema,
30
+ header: CheckpointHeader.schema,
30
31
  archive: schemas.Fr,
31
32
  stateReference: StateReference.schema,
32
33
  })
@@ -74,7 +75,7 @@ export class ConsensusPayload implements Signable {
74
75
  static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
75
76
  const reader = BufferReader.asReader(buf);
76
77
  const payload = new ConsensusPayload(
77
- reader.readObject(ProposedBlockHeader),
78
+ reader.readObject(CheckpointHeader),
78
79
  reader.readObject(Fr),
79
80
  reader.readObject(StateReference),
80
81
  );
@@ -86,15 +87,15 @@ export class ConsensusPayload implements Signable {
86
87
  }
87
88
 
88
89
  static fromBlock(block: L2Block): ConsensusPayload {
89
- return new ConsensusPayload(block.header.toPropose(), block.archive.root, block.header.state);
90
+ return new ConsensusPayload(block.header.toCheckpointHeader(), block.archive.root, block.header.state);
90
91
  }
91
92
 
92
93
  static empty(): ConsensusPayload {
93
- return new ConsensusPayload(ProposedBlockHeader.empty(), Fr.ZERO, StateReference.empty());
94
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, StateReference.empty());
94
95
  }
95
96
 
96
97
  static random(): ConsensusPayload {
97
- return new ConsensusPayload(ProposedBlockHeader.random(), Fr.random(), StateReference.random());
98
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), StateReference.random());
98
99
  }
99
100
 
100
101
  /**
@@ -1,4 +1,3 @@
1
- export * from './base_parity_inputs.js';
1
+ export * from './parity_base_private_inputs.js';
2
2
  export * from './parity_public_inputs.js';
3
- export * from './root_parity_input.js';
4
- export * from './root_parity_inputs.js';
3
+ export * from './parity_root_private_inputs.js';
@@ -1,10 +1,10 @@
1
- import { type NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_MSGS_PER_BASE_PARITY } from '@aztec/constants';
1
+ import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_MSGS_PER_BASE_PARITY } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
4
4
  import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
6
 
7
- export class BaseParityInputs {
7
+ export class ParityBasePrivateInputs {
8
8
  constructor(
9
9
  /** Aggregated proof of all the parity circuit iterations. */
10
10
  public readonly msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>,
@@ -12,15 +12,17 @@ export class BaseParityInputs {
12
12
  public readonly vkTreeRoot: Fr,
13
13
  ) {}
14
14
 
15
- public static fromSlice(
16
- array: Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP>,
17
- index: number,
18
- vkTreeRoot: Fr,
19
- ): BaseParityInputs {
15
+ public static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr): ParityBasePrivateInputs {
16
+ // Can't use Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP> due to length
17
+ if (array.length !== NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) {
18
+ throw new Error(
19
+ `Msgs array length must be NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP=${NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP}`,
20
+ );
21
+ }
20
22
  const start = index * NUM_MSGS_PER_BASE_PARITY;
21
23
  const end = start + NUM_MSGS_PER_BASE_PARITY;
22
24
  const msgs = array.slice(start, end);
23
- return new BaseParityInputs(msgs as Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>, vkTreeRoot);
25
+ return new ParityBasePrivateInputs(msgs as Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>, vkTreeRoot);
24
26
  }
25
27
 
26
28
  /** Serializes the inputs to a buffer. */
@@ -39,7 +41,7 @@ export class BaseParityInputs {
39
41
  */
40
42
  static fromBuffer(buffer: Buffer | BufferReader) {
41
43
  const reader = BufferReader.asReader(buffer);
42
- return new BaseParityInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
44
+ return new ParityBasePrivateInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
43
45
  }
44
46
 
45
47
  /**
@@ -48,7 +50,7 @@ export class BaseParityInputs {
48
50
  * @returns - The deserialized inputs.
49
51
  */
50
52
  static fromString(str: string) {
51
- return BaseParityInputs.fromBuffer(hexToBuffer(str));
53
+ return ParityBasePrivateInputs.fromBuffer(hexToBuffer(str));
52
54
  }
53
55
 
54
56
  /** Returns a buffer representation for JSON serialization. */
@@ -58,6 +60,6 @@ export class BaseParityInputs {
58
60
 
59
61
  /** Creates an instance from a hex string. */
60
62
  static get schema() {
61
- return bufferSchemaFor(BaseParityInputs);
63
+ return bufferSchemaFor(ParityBasePrivateInputs);
62
64
  }
63
65
  }
@@ -1,17 +1,18 @@
1
- import { NUM_BASE_PARITY_PER_ROOT_PARITY, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
1
+ import { NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
2
+ import { makeTuple } from '@aztec/foundation/array';
2
3
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
3
4
  import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
4
5
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
5
6
 
6
- import { RootParityInput } from './root_parity_input.js';
7
+ import { ProofData, type UltraHonkProofData } from '../proofs/proof_data.js';
8
+ import { ParityPublicInputs } from './parity_public_inputs.js';
7
9
 
8
- export class RootParityInputs {
10
+ export type ParityBaseProofData = UltraHonkProofData<ParityPublicInputs>;
11
+
12
+ export class ParityRootPrivateInputs {
9
13
  constructor(
10
- /** Public inputs of children and their proofs. */
11
- public readonly children: Tuple<
12
- RootParityInput<typeof RECURSIVE_PROOF_LENGTH>,
13
- typeof NUM_BASE_PARITY_PER_ROOT_PARITY
14
- >,
14
+ /** Public inputs of the parity base circuits and their proofs and vk data. */
15
+ public readonly children: Tuple<ParityBaseProofData, typeof NUM_BASE_PARITY_PER_ROOT_PARITY>,
15
16
  ) {}
16
17
 
17
18
  /**
@@ -19,7 +20,7 @@ export class RootParityInputs {
19
20
  * @returns The inputs serialized to a buffer.
20
21
  */
21
22
  toBuffer() {
22
- return serializeToBuffer(...this.children);
23
+ return serializeToBuffer(this.children);
23
24
  }
24
25
 
25
26
  /**
@@ -33,25 +34,22 @@ export class RootParityInputs {
33
34
  /**
34
35
  * Deserializes the inputs from a buffer.
35
36
  * @param buffer - The buffer to deserialize from.
36
- * @returns A new RootParityInputs instance.
37
+ * @returns A new ParityRootPrivateInputs instance.
37
38
  */
38
39
  static fromBuffer(buffer: Buffer | BufferReader) {
39
40
  const reader = BufferReader.asReader(buffer);
40
- const tuple = Array.from({ length: NUM_BASE_PARITY_PER_ROOT_PARITY }, () =>
41
- RootParityInput.fromBuffer(reader, RECURSIVE_PROOF_LENGTH),
42
- );
43
- return new RootParityInputs(
44
- tuple as Tuple<RootParityInput<typeof RECURSIVE_PROOF_LENGTH>, typeof NUM_BASE_PARITY_PER_ROOT_PARITY>,
41
+ return new ParityRootPrivateInputs(
42
+ makeTuple(NUM_BASE_PARITY_PER_ROOT_PARITY, () => ProofData.fromBuffer(reader, ParityPublicInputs)),
45
43
  );
46
44
  }
47
45
 
48
46
  /**
49
47
  * Deserializes the inputs from a hex string.
50
48
  * @param str - A hex string to deserialize from.
51
- * @returns A new RootParityInputs instance.
49
+ * @returns A new ParityRootPrivateInputs instance.
52
50
  */
53
51
  static fromString(str: string) {
54
- return RootParityInputs.fromBuffer(hexToBuffer(str));
52
+ return ParityRootPrivateInputs.fromBuffer(hexToBuffer(str));
55
53
  }
56
54
 
57
55
  /** Returns a buffer representation for JSON serialization. */
@@ -61,6 +59,6 @@ export class RootParityInputs {
61
59
 
62
60
  /** Creates an instance from a hex string. */
63
61
  static get schema() {
64
- return bufferSchemaFor(RootParityInputs);
62
+ return bufferSchemaFor(ParityRootPrivateInputs);
65
63
  }
66
64
  }