@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
@@ -1,51 +1,117 @@
1
+ import { CIVC_PROOF_LENGTH } from '@aztec/constants';
1
2
  import { randomBytes } from '@aztec/foundation/crypto';
3
+ import { Fr } from '@aztec/foundation/fields';
2
4
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
3
5
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
6
 
5
- const CLIENT_IVC_PROOF_LENGTH = 172052;
6
-
7
- /**
8
- * TODO(https://github.com/AztecProtocol/aztec-packages/issues/7370) refactor this to
9
- * eventually we read all these VKs from the data tree instead of passing them
10
- */
11
7
  export class ClientIvcProof {
12
8
  constructor(
13
- // produced by the sequencer when making the tube proof
14
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/7370): Need to precompute private kernel tail VK so we can verify this immediately in the tx pool
15
- // which parts of these are needed to quickly verify that we have a correct IVC proof
16
- public clientIvcProofBuffer: Buffer,
17
- ) {}
9
+ // The proof fields.
10
+ // For native verification, attach public inputs via `attachPublicInputs(publicInputs)`.
11
+ // Not using Tuple here due to the length being too high.
12
+ public fields: Fr[],
13
+ ) {
14
+ if (fields.length !== CIVC_PROOF_LENGTH) {
15
+ throw new Error(`Invalid ClientIvcProof length: ${fields.length}`);
16
+ }
17
+ }
18
18
 
19
- public isEmpty() {
20
- return this.clientIvcProofBuffer.length === 0;
19
+ public attachPublicInputs(publicInputs: Fr[]) {
20
+ return new ClientIvcProofWithPublicInputs([...publicInputs, ...this.fields]);
21
21
  }
22
22
 
23
- static empty() {
24
- return new ClientIvcProof(Buffer.from(''));
23
+ public isEmpty() {
24
+ return this.fields.every(field => field.isZero());
25
25
  }
26
26
 
27
- static fake(fill = Math.floor(Math.random() * 255)) {
28
- return new ClientIvcProof(Buffer.alloc(1, fill));
27
+ static empty() {
28
+ return new ClientIvcProof(new Array(CIVC_PROOF_LENGTH).fill(Fr.ZERO));
29
29
  }
30
30
 
31
31
  static random() {
32
- return new ClientIvcProof(Buffer.from(randomBytes(CLIENT_IVC_PROOF_LENGTH)));
32
+ // NB: Not using Fr.random here because it slows down some tests that require a large number of txs significantly.
33
+ const reducedFrSize = Fr.SIZE_IN_BYTES - 1;
34
+ const randomFields = randomBytes(CIVC_PROOF_LENGTH * reducedFrSize);
35
+ const proof = Array.from(
36
+ { length: CIVC_PROOF_LENGTH },
37
+ (_, i) => new Fr(randomFields.subarray(i * reducedFrSize, (i + 1) * reducedFrSize)),
38
+ );
39
+ return new ClientIvcProof(proof);
33
40
  }
34
41
 
35
42
  static get schema() {
36
43
  return bufferSchemaFor(ClientIvcProof);
37
44
  }
38
45
 
46
+ // We use this in tandem with the bufferSchemaFor to serialize to base64 strings.
39
47
  toJSON() {
40
48
  return this.toBuffer();
41
49
  }
42
50
 
43
51
  static fromBuffer(buffer: Buffer | BufferReader): ClientIvcProof {
44
52
  const reader = BufferReader.asReader(buffer);
45
- return new ClientIvcProof(reader.readBuffer());
53
+ const proofLength = reader.readNumber();
54
+ const proof = reader.readArray(proofLength, Fr);
55
+ return new ClientIvcProof(proof);
46
56
  }
47
57
 
48
58
  public toBuffer() {
49
- return serializeToBuffer(this.clientIvcProofBuffer.length, this.clientIvcProofBuffer);
59
+ return serializeToBuffer(this.fields.length, this.fields);
60
+ }
61
+ }
62
+
63
+ export class ClientIvcProofWithPublicInputs {
64
+ constructor(
65
+ // The proof fields with public inputs.
66
+ // For recursive verification, use without public inputs via `removePublicInputs()`.
67
+ public fieldsWithPublicInputs: Fr[],
68
+ ) {
69
+ if (fieldsWithPublicInputs.length < CIVC_PROOF_LENGTH) {
70
+ throw new Error(`Invalid ClientIvcProofWithPublicInputs length: ${fieldsWithPublicInputs.length}`);
71
+ }
72
+ }
73
+
74
+ public getPublicInputs() {
75
+ const numPublicInputs = this.fieldsWithPublicInputs.length - CIVC_PROOF_LENGTH;
76
+ return this.fieldsWithPublicInputs.slice(0, numPublicInputs);
77
+ }
78
+
79
+ public removePublicInputs() {
80
+ const numPublicInputs = this.fieldsWithPublicInputs.length - CIVC_PROOF_LENGTH;
81
+ return new ClientIvcProof(this.fieldsWithPublicInputs.slice(numPublicInputs));
82
+ }
83
+
84
+ public isEmpty() {
85
+ return this.fieldsWithPublicInputs.every(field => field.isZero());
86
+ }
87
+
88
+ static empty() {
89
+ return ClientIvcProof.empty().attachPublicInputs([]);
90
+ }
91
+
92
+ static get schema() {
93
+ return bufferSchemaFor(ClientIvcProofWithPublicInputs);
94
+ }
95
+
96
+ // We use this in tandem with the bufferSchemaFor to serialize to base64 strings.
97
+ toJSON() {
98
+ return this.toBuffer();
99
+ }
100
+
101
+ static fromBuffer(buffer: Buffer | BufferReader): ClientIvcProofWithPublicInputs {
102
+ const reader = BufferReader.asReader(buffer);
103
+ const proofLength = reader.readNumber();
104
+ const proof = reader.readArray(proofLength, Fr);
105
+ return new ClientIvcProofWithPublicInputs(proof);
106
+ }
107
+
108
+ public toBuffer() {
109
+ return serializeToBuffer(this.fieldsWithPublicInputs.length, this.fieldsWithPublicInputs);
110
+ }
111
+
112
+ // Called when constructing from bb proving results.
113
+ static fromBufferArray(fields: Uint8Array[]): ClientIvcProofWithPublicInputs {
114
+ const proof = fields.map(field => Fr.fromBuffer(Buffer.from(field)));
115
+ return new ClientIvcProofWithPublicInputs(proof);
50
116
  }
51
117
  }
@@ -1,4 +1,5 @@
1
1
  export * from './recursive_proof.js';
2
2
  export * from './client_ivc_proof.js';
3
3
  export * from './proof.js';
4
+ export * from './proof_data.js';
4
5
  export * from './proving_request_type.js';
@@ -0,0 +1,36 @@
1
+ import type { CIVC_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
+ import { BufferReader, type Bufferable, serializeToBuffer } from '@aztec/foundation/serialize';
3
+
4
+ import { RecursiveProof } from '../proofs/recursive_proof.js';
5
+ import { VkData } from '../vks/index.js';
6
+
7
+ /**
8
+ * Represents the data of a recursive proof.
9
+ */
10
+ export class ProofData<T extends Bufferable, PROOF_LENGTH extends number> {
11
+ constructor(
12
+ public publicInputs: T,
13
+ public proof: RecursiveProof<PROOF_LENGTH>,
14
+ public vkData: VkData,
15
+ ) {}
16
+
17
+ public toBuffer(): Buffer {
18
+ return serializeToBuffer(this.publicInputs, this.proof, this.vkData);
19
+ }
20
+
21
+ public static fromBuffer<T extends Bufferable, PROOF_LENGTH extends number>(
22
+ buffer: Buffer | BufferReader,
23
+ publicInputs: {
24
+ fromBuffer: (reader: BufferReader) => T;
25
+ },
26
+ ): ProofData<T, PROOF_LENGTH> {
27
+ const reader = BufferReader.asReader(buffer);
28
+ return new ProofData(reader.readObject(publicInputs), RecursiveProof.fromBuffer(reader), reader.readObject(VkData));
29
+ }
30
+ }
31
+
32
+ export type CivcProofData<T extends Bufferable> = ProofData<T, typeof CIVC_PROOF_LENGTH>;
33
+
34
+ export type UltraHonkProofData<T extends Bufferable> = ProofData<T, typeof RECURSIVE_PROOF_LENGTH>;
35
+
36
+ export type RollupHonkProofData<T extends Bufferable> = ProofData<T, typeof RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>;
@@ -1,18 +1,22 @@
1
1
  export enum ProvingRequestType {
2
2
  PUBLIC_VM,
3
+ PUBLIC_TUBE,
3
4
 
4
- PRIVATE_BASE_ROLLUP,
5
- PUBLIC_BASE_ROLLUP,
6
- MERGE_ROLLUP,
7
- EMPTY_BLOCK_ROOT_ROLLUP,
8
- PADDING_BLOCK_ROOT_ROLLUP,
5
+ PRIVATE_TX_BASE_ROLLUP,
6
+ PUBLIC_TX_BASE_ROLLUP,
7
+ TX_MERGE_ROLLUP,
8
+ BLOCK_ROOT_FIRST_ROLLUP,
9
+ BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP,
10
+ BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP,
9
11
  BLOCK_ROOT_ROLLUP,
10
- SINGLE_TX_BLOCK_ROOT_ROLLUP,
12
+ BLOCK_ROOT_SINGLE_TX_ROLLUP,
11
13
  BLOCK_MERGE_ROLLUP,
14
+ CHECKPOINT_ROOT_ROLLUP,
15
+ CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP,
16
+ CHECKPOINT_PADDING_ROLLUP,
17
+ CHECKPOINT_MERGE_ROLLUP,
12
18
  ROOT_ROLLUP,
13
19
 
14
- BASE_PARITY,
15
- ROOT_PARITY,
16
- /** Recursive Client IVC verification to connect private to public or rollup */
17
- TUBE_PROOF,
20
+ PARITY_BASE,
21
+ PARITY_ROOT,
18
22
  }
@@ -1,39 +1,10 @@
1
1
  import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
3
 
5
4
  import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
6
- import { RecursiveProof, makeEmptyRecursiveProof } from '../proofs/recursive_proof.js';
7
- import { VkData } from '../vks/vk_data.js';
5
+ import type { ProofData } from '../proofs/proof_data.js';
8
6
 
9
- export class AvmProofData {
10
- constructor(
11
- public publicInputs: AvmCircuitPublicInputs,
12
- public proof: RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>,
13
- public vkData: VkData,
14
- ) {}
15
-
16
- static fromBuffer(buffer: Buffer | BufferReader) {
17
- const reader = BufferReader.asReader(buffer);
18
- return new AvmProofData(
19
- reader.readObject(AvmCircuitPublicInputs),
20
- RecursiveProof.fromBuffer(reader),
21
- reader.readObject(VkData),
22
- );
23
- }
24
-
25
- toBuffer() {
26
- return serializeToBuffer(this.publicInputs, this.proof, this.vkData);
27
- }
28
-
29
- static empty() {
30
- return new AvmProofData(
31
- AvmCircuitPublicInputs.empty(),
32
- makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
33
- VkData.empty(),
34
- );
35
- }
36
- }
7
+ export type AvmProofData = ProofData<AvmCircuitPublicInputs, typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
37
8
 
38
9
  // TODO(#14234)[Unconditional PIs validation]: remove this function.
39
10
  export function enhanceProofWithPiValidationFlag(proof: Fr[], skipPublicInputsValidation: boolean): Fr[] {
@@ -1,17 +1,17 @@
1
- import { SpongeBlob } from '@aztec/blob-lib';
1
+ import { SpongeBlob } from '@aztec/blob-lib/types';
2
2
  import { ARCHIVE_HEIGHT, MAX_CONTRACT_CLASS_LOGS_PER_TX } from '@aztec/constants';
3
3
  import { makeTuple } from '@aztec/foundation/array';
4
+ import { Fr } from '@aztec/foundation/fields';
4
5
  import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
5
6
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
- import { MembershipWitness } from '@aztec/foundation/trees';
7
7
  import type { FieldsOf } from '@aztec/foundation/types';
8
8
 
9
- import { PublicDataHint } from '../avm/public_data_hint.js';
10
9
  import { ContractClassLogFields } from '../logs/index.js';
11
- import { AppendOnlyTreeSnapshot } from '../trees/index.js';
10
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
11
+ import { PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
12
12
  import { PartialStateReference } from '../tx/partial_state_reference.js';
13
13
  import { BlockConstantData } from './block_constant_data.js';
14
- import { PrivateBaseStateDiffHints } from './state_diff_hints.js';
14
+ import { TreeSnapshotDiffHints } from './tree_snapshot_diff_hints.js';
15
15
 
16
16
  export type BaseRollupHints = PrivateBaseRollupHints | PublicBaseRollupHints;
17
17
 
@@ -28,15 +28,15 @@ export class PrivateBaseRollupHints {
28
28
  /**
29
29
  * Hints used while proving state diff validity.
30
30
  */
31
- public stateDiffHints: PrivateBaseStateDiffHints,
31
+ public treeSnapshotDiffHints: TreeSnapshotDiffHints,
32
32
  /**
33
- * Public data read hint for accessing the balance of the fee payer.
33
+ * Public data tree leaf preimage for accessing the balance of the fee payer.
34
34
  */
35
- public feePayerFeeJuiceBalanceReadHint: PublicDataHint,
35
+ public feePayerBalanceLeafPreimage: PublicDataTreeLeafPreimage,
36
36
  /**
37
37
  * Membership witnesses of blocks referred by each of the 2 kernels.
38
38
  */
39
- public archiveRootMembershipWitness: MembershipWitness<typeof ARCHIVE_HEIGHT>,
39
+ public anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
40
40
  /**
41
41
  * Preimages to the kernel's contractClassLogsHashes.
42
42
  */
@@ -55,9 +55,9 @@ export class PrivateBaseRollupHints {
55
55
  return [
56
56
  fields.start,
57
57
  fields.startSpongeBlob,
58
- fields.stateDiffHints,
59
- fields.feePayerFeeJuiceBalanceReadHint,
60
- fields.archiveRootMembershipWitness,
58
+ fields.treeSnapshotDiffHints,
59
+ fields.feePayerBalanceLeafPreimage,
60
+ fields.anchorBlockArchiveSiblingPath,
61
61
  fields.contractClassLogsFields,
62
62
  fields.constants,
63
63
  ] as const;
@@ -84,9 +84,9 @@ export class PrivateBaseRollupHints {
84
84
  return new PrivateBaseRollupHints(
85
85
  reader.readObject(PartialStateReference),
86
86
  reader.readObject(SpongeBlob),
87
- reader.readObject(PrivateBaseStateDiffHints),
88
- reader.readObject(PublicDataHint),
89
- MembershipWitness.fromBuffer(reader, ARCHIVE_HEIGHT),
87
+ reader.readObject(TreeSnapshotDiffHints),
88
+ reader.readObject(PublicDataTreeLeafPreimage),
89
+ reader.readArray(ARCHIVE_HEIGHT, Fr),
90
90
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
91
91
  reader.readObject(BlockConstantData),
92
92
  );
@@ -100,9 +100,9 @@ export class PrivateBaseRollupHints {
100
100
  return new PrivateBaseRollupHints(
101
101
  PartialStateReference.empty(),
102
102
  SpongeBlob.empty(),
103
- PrivateBaseStateDiffHints.empty(),
104
- PublicDataHint.empty(),
105
- MembershipWitness.empty(ARCHIVE_HEIGHT),
103
+ TreeSnapshotDiffHints.empty(),
104
+ PublicDataTreeLeafPreimage.empty(),
105
+ makeTuple(ARCHIVE_HEIGHT, Fr.zero),
106
106
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLogFields.empty),
107
107
  BlockConstantData.empty(),
108
108
  );
@@ -122,7 +122,7 @@ export class PublicBaseRollupHints {
122
122
  /**
123
123
  * Membership witnesses of blocks referred by each of the 2 kernels.
124
124
  */
125
- public archiveRootMembershipWitness: MembershipWitness<typeof ARCHIVE_HEIGHT>,
125
+ public anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
126
126
  /**
127
127
  * Preimages to the kernel's contractClassLogsHashes.
128
128
  */
@@ -137,7 +137,7 @@ export class PublicBaseRollupHints {
137
137
  return [
138
138
  fields.startSpongeBlob,
139
139
  fields.lastArchive,
140
- fields.archiveRootMembershipWitness,
140
+ fields.anchorBlockArchiveSiblingPath,
141
141
  fields.contractClassLogsFields,
142
142
  ] as const;
143
143
  }
@@ -163,7 +163,7 @@ export class PublicBaseRollupHints {
163
163
  return new PublicBaseRollupHints(
164
164
  reader.readObject(SpongeBlob),
165
165
  reader.readObject(AppendOnlyTreeSnapshot),
166
- MembershipWitness.fromBuffer(reader, ARCHIVE_HEIGHT),
166
+ reader.readArray(ARCHIVE_HEIGHT, Fr),
167
167
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
168
168
  );
169
169
  }
@@ -176,7 +176,7 @@ export class PublicBaseRollupHints {
176
176
  return new PublicBaseRollupHints(
177
177
  SpongeBlob.empty(),
178
178
  AppendOnlyTreeSnapshot.empty(),
179
- MembershipWitness.empty(ARCHIVE_HEIGHT),
179
+ makeTuple(ARCHIVE_HEIGHT, Fr.zero),
180
180
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLogFields.empty),
181
181
  );
182
182
  }
@@ -12,14 +12,21 @@ export class BlockConstantData {
12
12
  constructor(
13
13
  /** Archive tree snapshot at the very beginning of the entire rollup. */
14
14
  public lastArchive: AppendOnlyTreeSnapshot,
15
- /** L1 to L2 message tree snapshot after this block lands. */
16
- public newL1ToL2: AppendOnlyTreeSnapshot,
15
+ /**
16
+ * L1-to-L2 message tree snapshot after this block lands.
17
+ * For the first block in a checkpoint, this should be the snapshot after inserting the new l1-to-l2 message subtree
18
+ * into the last l1-to-l2 tree snapshot in `last_archive`.
19
+ * For subsequent blocks, this should match the snapshot of the previous block.
20
+ */
21
+ public l1ToL2TreeSnapshot: AppendOnlyTreeSnapshot,
17
22
  /** Root of the verification key tree. */
18
23
  public vkTreeRoot: Fr,
19
- /** Root of the protocol contract tree. */
20
- public protocolContractTreeRoot: Fr,
24
+ /** Hash of the protocol contracts list. */
25
+ public protocolContractsHash: Fr,
21
26
  /** Global variables for the block. */
22
27
  public globalVariables: GlobalVariables,
28
+ /** Identifier of the prover. */
29
+ public proverId: Fr,
23
30
  ) {}
24
31
 
25
32
  static from(fields: FieldsOf<BlockConstantData>): BlockConstantData {
@@ -34,16 +41,18 @@ export class BlockConstantData {
34
41
  Fr.fromBuffer(reader),
35
42
  Fr.fromBuffer(reader),
36
43
  reader.readObject(GlobalVariables),
44
+ Fr.fromBuffer(reader),
37
45
  );
38
46
  }
39
47
 
40
48
  static getFields(fields: FieldsOf<BlockConstantData>) {
41
49
  return [
42
50
  fields.lastArchive,
43
- fields.newL1ToL2,
51
+ fields.l1ToL2TreeSnapshot,
44
52
  fields.vkTreeRoot,
45
- fields.protocolContractTreeRoot,
53
+ fields.protocolContractsHash,
46
54
  fields.globalVariables,
55
+ fields.proverId,
47
56
  ] as const;
48
57
  }
49
58
 
@@ -54,6 +63,7 @@ export class BlockConstantData {
54
63
  Fr.ZERO,
55
64
  Fr.ZERO,
56
65
  GlobalVariables.empty(),
66
+ Fr.ZERO,
57
67
  );
58
68
  }
59
69
 
@@ -2,17 +2,21 @@ import { bufferSchemaFor } from '@aztec/foundation/schemas';
2
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
4
4
 
5
- import { PreviousRollupBlockData } from './previous_rollup_block_data.js';
5
+ import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
6
+ import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
6
7
 
7
8
  /**
8
9
  * Represents inputs of the block merge rollup circuit.
9
10
  */
10
- export class BlockMergeRollupInputs {
11
+ export class BlockMergeRollupPrivateInputs {
11
12
  constructor(
12
13
  /**
13
14
  * Previous rollup data from the 2 block merge or block root rollup circuits that preceded this merge rollup circuit.
14
15
  */
15
- public previousRollupData: [PreviousRollupBlockData, PreviousRollupBlockData],
16
+ public previousRollups: [
17
+ RollupHonkProofData<BlockRollupPublicInputs>,
18
+ RollupHonkProofData<BlockRollupPublicInputs>,
19
+ ],
16
20
  ) {}
17
21
 
18
22
  /**
@@ -20,7 +24,7 @@ export class BlockMergeRollupInputs {
20
24
  * @returns The inputs serialized to a buffer.
21
25
  */
22
26
  toBuffer() {
23
- return serializeToBuffer(this.previousRollupData);
27
+ return serializeToBuffer(this.previousRollups);
24
28
  }
25
29
 
26
30
  /**
@@ -34,23 +38,23 @@ export class BlockMergeRollupInputs {
34
38
  /**
35
39
  * Deserializes the inputs from a buffer.
36
40
  * @param buffer - The buffer to deserialize from.
37
- * @returns A new BlockMergeRollupInputs instance.
41
+ * @returns A new BlockMergeRollupPrivateInputs instance.
38
42
  */
39
43
  static fromBuffer(buffer: Buffer | BufferReader) {
40
44
  const reader = BufferReader.asReader(buffer);
41
- return new BlockMergeRollupInputs([
42
- reader.readObject(PreviousRollupBlockData),
43
- reader.readObject(PreviousRollupBlockData),
45
+ return new BlockMergeRollupPrivateInputs([
46
+ ProofData.fromBuffer(reader, BlockRollupPublicInputs),
47
+ ProofData.fromBuffer(reader, BlockRollupPublicInputs),
44
48
  ]);
45
49
  }
46
50
 
47
51
  /**
48
52
  * Deserializes the inputs from a hex string.
49
53
  * @param str - A hex string to deserialize from.
50
- * @returns A new BlockMergeRollupInputs instance.
54
+ * @returns A new BlockMergeRollupPrivateInputs instance.
51
55
  */
52
56
  static fromString(str: string) {
53
- return BlockMergeRollupInputs.fromBuffer(hexToBuffer(str));
57
+ return BlockMergeRollupPrivateInputs.fromBuffer(hexToBuffer(str));
54
58
  }
55
59
 
56
60
  /** Returns a hex representation for JSON serialization. */
@@ -60,6 +64,6 @@ export class BlockMergeRollupInputs {
60
64
 
61
65
  /** Creates an instance from a hex string. */
62
66
  static get schema() {
63
- return bufferSchemaFor(BlockMergeRollupInputs);
67
+ return bufferSchemaFor(BlockMergeRollupPrivateInputs);
64
68
  }
65
69
  }
@@ -0,0 +1,123 @@
1
+ import { SpongeBlob } from '@aztec/blob-lib/types';
2
+ import { Fr } from '@aztec/foundation/fields';
3
+ import { bufferSchemaFor } from '@aztec/foundation/schemas';
4
+ import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
5
+ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
+
7
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
8
+ import { StateReference } from '../tx/state_reference.js';
9
+ import type { UInt64 } from '../types/shared.js';
10
+ import { CheckpointConstantData } from './checkpoint_constant_data.js';
11
+
12
+ /**
13
+ * Output of the block root and block merge rollup circuits.
14
+ */
15
+ export class BlockRollupPublicInputs {
16
+ constructor(
17
+ /**
18
+ * Constants for the entire checkpoint.
19
+ */
20
+ public constants: CheckpointConstantData,
21
+ /**
22
+ * Archive tree immediately before this block range.
23
+ */
24
+ public previousArchive: AppendOnlyTreeSnapshot,
25
+ /**
26
+ * Archive tree after applying this block range.
27
+ */
28
+ public newArchive: AppendOnlyTreeSnapshot,
29
+ /**
30
+ * State reference immediately before this block range.
31
+ */
32
+ public startState: StateReference,
33
+ /**
34
+ * State reference after applying this block range.
35
+ */
36
+ public endState: StateReference,
37
+ /**
38
+ * Sponge state to absorb blob inputs at the start of this block range.
39
+ */
40
+ public startSpongeBlob: SpongeBlob,
41
+ /**
42
+ * Sponge state to absorb blob inputs at the end of this block range.
43
+ */
44
+ public endSpongeBlob: SpongeBlob,
45
+ /**
46
+ * Timestamp of the first block in this block range.
47
+ */
48
+ public startTimestamp: UInt64,
49
+ /**
50
+ * Timestamp of the last block in this block range.
51
+ */
52
+ public endTimestamp: UInt64,
53
+ /**
54
+ * SHA256 hash of l1 to l2 messages.
55
+ */
56
+ public inHash: Fr,
57
+ /**
58
+ * SHA256 hash of L2 to L1 messages created in this block range.
59
+ */
60
+ public outHash: Fr,
61
+ /**
62
+ * The summed transaction fees of all the txs in this block range.
63
+ */
64
+ public accumulatedFees: Fr,
65
+ /**
66
+ * The summed mana used of all the txs in this block range.
67
+ */
68
+ public accumulatedManaUsed: Fr,
69
+ ) {}
70
+
71
+ static fromBuffer(buffer: Buffer | BufferReader): BlockRollupPublicInputs {
72
+ const reader = BufferReader.asReader(buffer);
73
+ return new BlockRollupPublicInputs(
74
+ reader.readObject(CheckpointConstantData),
75
+ reader.readObject(AppendOnlyTreeSnapshot),
76
+ reader.readObject(AppendOnlyTreeSnapshot),
77
+ reader.readObject(StateReference),
78
+ reader.readObject(StateReference),
79
+ reader.readObject(SpongeBlob),
80
+ reader.readObject(SpongeBlob),
81
+ reader.readUInt64(),
82
+ reader.readUInt64(),
83
+ Fr.fromBuffer(reader),
84
+ Fr.fromBuffer(reader),
85
+ Fr.fromBuffer(reader),
86
+ Fr.fromBuffer(reader),
87
+ );
88
+ }
89
+
90
+ toBuffer() {
91
+ return serializeToBuffer(
92
+ this.constants,
93
+ this.previousArchive,
94
+ this.newArchive,
95
+ this.startState,
96
+ this.endState,
97
+ this.startSpongeBlob,
98
+ this.endSpongeBlob,
99
+ bigintToUInt64BE(this.startTimestamp),
100
+ bigintToUInt64BE(this.endTimestamp),
101
+ this.inHash,
102
+ this.outHash,
103
+ this.accumulatedFees,
104
+ this.accumulatedManaUsed,
105
+ );
106
+ }
107
+
108
+ toString() {
109
+ return bufferToHex(this.toBuffer());
110
+ }
111
+
112
+ static fromString(str: string) {
113
+ return BlockRollupPublicInputs.fromBuffer(hexToBuffer(str));
114
+ }
115
+
116
+ toJSON() {
117
+ return this.toBuffer();
118
+ }
119
+
120
+ static get schema() {
121
+ return bufferSchemaFor(BlockRollupPublicInputs);
122
+ }
123
+ }