@aztec/stdlib 3.0.0-canary.a9708bd → 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 (633) 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 +132 -73
  14. package/dest/avm/avm.d.ts.map +1 -1
  15. package/dest/avm/avm.js +10 -6
  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/in_block.d.ts +5 -5
  37. package/dest/block/in_block.d.ts.map +1 -1
  38. package/dest/block/index.d.ts +4 -0
  39. package/dest/block/index.d.ts.map +1 -1
  40. package/dest/block/index.js +4 -0
  41. package/dest/block/l2_block.d.ts +21 -13
  42. package/dest/block/l2_block.d.ts.map +1 -1
  43. package/dest/block/l2_block.js +33 -10
  44. package/dest/block/l2_block_code_to_purge.d.ts +3 -14
  45. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  46. package/dest/block/l2_block_code_to_purge.js +23 -13
  47. package/dest/block/l2_block_header.d.ts +100 -0
  48. package/dest/block/l2_block_header.d.ts.map +1 -0
  49. package/dest/block/l2_block_header.js +146 -0
  50. package/dest/block/l2_block_info.d.ts +41 -0
  51. package/dest/block/l2_block_info.d.ts.map +1 -0
  52. package/dest/block/l2_block_info.js +40 -0
  53. package/dest/block/l2_block_source.d.ts +30 -428
  54. package/dest/block/l2_block_source.d.ts.map +1 -1
  55. package/dest/block/l2_block_source.js +0 -28
  56. package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
  57. package/dest/block/proposal/attestations_and_signers.d.ts +48 -0
  58. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -0
  59. package/dest/block/proposal/attestations_and_signers.js +99 -0
  60. package/dest/block/proposal/index.d.ts +1 -0
  61. package/dest/block/proposal/index.d.ts.map +1 -1
  62. package/dest/block/proposal/index.js +1 -0
  63. package/dest/block/published_l2_block.d.ts +27 -5
  64. package/dest/block/published_l2_block.d.ts.map +1 -1
  65. package/dest/block/published_l2_block.js +20 -7
  66. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  67. package/dest/block/test/l2_tips_store_test_suite.js +3 -4
  68. package/dest/block/validate_block_result.d.ts +222 -0
  69. package/dest/block/validate_block_result.d.ts.map +1 -0
  70. package/dest/block/validate_block_result.js +83 -0
  71. package/dest/checkpoint/checkpoint_body.d.ts +4 -0
  72. package/dest/checkpoint/checkpoint_body.d.ts.map +1 -0
  73. package/dest/checkpoint/checkpoint_body.js +9 -0
  74. package/dest/checkpoint/index.d.ts +2 -0
  75. package/dest/checkpoint/index.d.ts.map +1 -0
  76. package/dest/checkpoint/index.js +1 -0
  77. package/dest/config/node-rpc-config.d.ts +2 -0
  78. package/dest/config/node-rpc-config.d.ts.map +1 -1
  79. package/dest/config/node-rpc-config.js +6 -0
  80. package/dest/contract/contract_address.d.ts +1 -1
  81. package/dest/contract/contract_address.js +1 -1
  82. package/dest/contract/contract_class_metadata.d.ts +8 -0
  83. package/dest/contract/contract_class_metadata.d.ts.map +1 -0
  84. package/dest/contract/contract_class_metadata.js +1 -0
  85. package/dest/contract/contract_instance.d.ts +9 -8
  86. package/dest/contract/contract_instance.d.ts.map +1 -1
  87. package/dest/contract/contract_instance.js +1 -2
  88. package/dest/contract/contract_metadata.d.ts +7 -0
  89. package/dest/contract/contract_metadata.d.ts.map +1 -0
  90. package/dest/contract/contract_metadata.js +1 -0
  91. package/dest/contract/index.d.ts +2 -0
  92. package/dest/contract/index.d.ts.map +1 -1
  93. package/dest/contract/index.js +2 -0
  94. package/dest/contract/interfaces/contract_class.d.ts +4 -4
  95. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  96. package/dest/epoch-helpers/index.d.ts +8 -2
  97. package/dest/epoch-helpers/index.d.ts.map +1 -1
  98. package/dest/epoch-helpers/index.js +9 -0
  99. package/dest/fees/transaction_fee.d.ts.map +1 -1
  100. package/dest/fees/transaction_fee.js +3 -0
  101. package/dest/file-store/factory.d.ts.map +1 -1
  102. package/dest/file-store/factory.js +18 -0
  103. package/dest/file-store/interface.d.ts +8 -2
  104. package/dest/file-store/interface.d.ts.map +1 -1
  105. package/dest/file-store/s3.d.ts +26 -0
  106. package/dest/file-store/s3.d.ts.map +1 -0
  107. package/dest/file-store/s3.js +252 -0
  108. package/dest/hash/hash.d.ts.map +1 -1
  109. package/dest/hash/hash.js +0 -3
  110. package/dest/interfaces/archiver.d.ts +43 -0
  111. package/dest/interfaces/archiver.d.ts.map +1 -1
  112. package/dest/interfaces/archiver.js +17 -1
  113. package/dest/interfaces/aztec-node-admin.d.ts +87 -40
  114. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  115. package/dest/interfaces/aztec-node-admin.js +7 -1
  116. package/dest/interfaces/aztec-node.d.ts +35 -2
  117. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  118. package/dest/interfaces/aztec-node.js +8 -1
  119. package/dest/interfaces/block-builder.d.ts +7 -8
  120. package/dest/interfaces/block-builder.d.ts.map +1 -1
  121. package/dest/interfaces/client.d.ts +0 -1
  122. package/dest/interfaces/client.d.ts.map +1 -1
  123. package/dest/interfaces/client.js +0 -1
  124. package/dest/interfaces/configs.d.ts +10 -0
  125. package/dest/interfaces/configs.d.ts.map +1 -1
  126. package/dest/interfaces/configs.js +3 -1
  127. package/dest/interfaces/epoch-prover.d.ts +26 -9
  128. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  129. package/dest/interfaces/merkle_tree_operations.d.ts +5 -0
  130. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  131. package/dest/interfaces/p2p.d.ts +2 -0
  132. package/dest/interfaces/p2p.d.ts.map +1 -1
  133. package/dest/interfaces/p2p.js +2 -1
  134. package/dest/interfaces/private_kernel_prover.d.ts +2 -2
  135. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  136. package/dest/interfaces/proving-job.d.ts +349 -200
  137. package/dest/interfaces/proving-job.d.ts.map +1 -1
  138. package/dest/interfaces/proving-job.js +131 -113
  139. package/dest/interfaces/server.d.ts +1 -0
  140. package/dest/interfaces/server.d.ts.map +1 -1
  141. package/dest/interfaces/server.js +1 -0
  142. package/dest/interfaces/server_circuit_prover.d.ts +34 -34
  143. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  144. package/dest/interfaces/slasher.d.ts +4 -0
  145. package/dest/interfaces/slasher.d.ts.map +1 -1
  146. package/dest/interfaces/slasher.js +1 -0
  147. package/dest/interfaces/tx_provider.d.ts +1 -1
  148. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  149. package/dest/interfaces/validator.d.ts +163 -0
  150. package/dest/interfaces/validator.d.ts.map +1 -0
  151. package/dest/interfaces/validator.js +18 -0
  152. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -2
  153. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  154. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +4 -3
  155. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  156. package/dest/kernel/nullifier.d.ts +2 -2
  157. package/dest/kernel/nullifier.d.ts.map +1 -1
  158. package/dest/kernel/nullifier.js +11 -11
  159. package/dest/kernel/private_call_data.d.ts +4 -24
  160. package/dest/kernel/private_call_data.d.ts.map +1 -1
  161. package/dest/kernel/private_call_data.js +4 -16
  162. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -5
  163. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  164. package/dest/kernel/private_circuit_public_inputs.js +7 -7
  165. package/dest/kernel/private_context_inputs.d.ts +2 -2
  166. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  167. package/dest/kernel/private_context_inputs.js +4 -4
  168. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  169. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  170. package/dest/kernel/private_kernel_circuit_public_inputs.js +3 -3
  171. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +5 -4
  172. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  173. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +7 -6
  174. package/dest/kernel/private_kernel_prover_output.d.ts +1 -1
  175. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  176. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -0
  177. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  178. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
  179. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
  180. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +2 -0
  181. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  182. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -0
  183. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -1
  184. package/dest/keys/derivation.d.ts +0 -2
  185. package/dest/keys/derivation.d.ts.map +1 -1
  186. package/dest/keys/derivation.js +1 -21
  187. package/dest/logs/contract_class_log.d.ts +1 -1
  188. package/dest/logs/contract_class_log.d.ts.map +1 -1
  189. package/dest/logs/contract_class_log.js +1 -3
  190. package/dest/logs/debug_log.d.ts +13 -0
  191. package/dest/logs/debug_log.d.ts.map +1 -0
  192. package/dest/logs/debug_log.js +26 -0
  193. package/dest/logs/directional_app_tagging_secret.d.ts +40 -0
  194. package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -0
  195. package/dest/logs/directional_app_tagging_secret.js +64 -0
  196. package/dest/logs/index.d.ts +3 -1
  197. package/dest/logs/index.d.ts.map +1 -1
  198. package/dest/logs/index.js +3 -1
  199. package/dest/logs/log_with_tx_data.d.ts +9 -12
  200. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  201. package/dest/logs/log_with_tx_data.js +18 -23
  202. package/dest/logs/pre_tag.d.ts +34 -0
  203. package/dest/logs/pre_tag.d.ts.map +1 -0
  204. package/dest/logs/pre_tag.js +7 -0
  205. package/dest/logs/public_log.d.ts +23 -10
  206. package/dest/logs/public_log.d.ts.map +1 -1
  207. package/dest/logs/public_log.js +117 -42
  208. package/dest/messaging/inbox_leaf.d.ts +2 -0
  209. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  210. package/dest/messaging/inbox_leaf.js +3 -0
  211. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  212. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  213. package/dest/messaging/l2_to_l1_membership.js +16 -18
  214. package/dest/noir/index.d.ts +11 -0
  215. package/dest/noir/index.d.ts.map +1 -1
  216. package/dest/note/index.d.ts +1 -1
  217. package/dest/note/index.d.ts.map +1 -1
  218. package/dest/note/index.js +1 -1
  219. package/dest/note/notes_filter.d.ts +0 -5
  220. package/dest/note/notes_filter.d.ts.map +1 -1
  221. package/dest/note/notes_filter.js +0 -3
  222. package/dest/note/unique_note.d.ts +43 -0
  223. package/dest/note/unique_note.d.ts.map +1 -0
  224. package/dest/note/{extended_note.js → unique_note.js} +9 -48
  225. package/dest/p2p/block_attestation.d.ts +45 -9
  226. package/dest/p2p/block_attestation.d.ts.map +1 -1
  227. package/dest/p2p/block_attestation.js +37 -15
  228. package/dest/p2p/block_proposal.d.ts +7 -9
  229. package/dest/p2p/block_proposal.d.ts.map +1 -1
  230. package/dest/p2p/block_proposal.js +13 -14
  231. package/dest/p2p/consensus_payload.d.ts +35 -6
  232. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  233. package/dest/p2p/consensus_payload.js +21 -8
  234. package/dest/p2p/gossipable.d.ts +2 -4
  235. package/dest/p2p/gossipable.d.ts.map +1 -1
  236. package/dest/p2p/gossipable.js +5 -14
  237. package/dest/p2p/signature_utils.d.ts +2 -1
  238. package/dest/p2p/signature_utils.d.ts.map +1 -1
  239. package/dest/p2p/signature_utils.js +1 -0
  240. package/dest/parity/index.d.ts +2 -3
  241. package/dest/parity/index.d.ts.map +1 -1
  242. package/dest/parity/index.js +2 -3
  243. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +7 -7
  244. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  245. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +10 -6
  246. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  247. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  248. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  249. package/dest/proofs/client_ivc_proof.d.ts +17 -7
  250. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  251. package/dest/proofs/client_ivc_proof.js +78 -19
  252. package/dest/proofs/index.d.ts +1 -0
  253. package/dest/proofs/index.d.ts.map +1 -1
  254. package/dest/proofs/index.js +1 -0
  255. package/dest/proofs/proof_data.d.ts +21 -0
  256. package/dest/proofs/proof_data.d.ts.map +1 -0
  257. package/dest/proofs/proof_data.js +22 -0
  258. package/dest/proofs/proving_request_type.d.ts +17 -13
  259. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  260. package/dest/proofs/proving_request_type.js +17 -12
  261. package/dest/rollup/avm_proof_data.d.ts +2 -12
  262. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  263. package/dest/rollup/avm_proof_data.js +0 -24
  264. package/dest/rollup/base_rollup_hints.d.ts +17 -17
  265. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  266. package/dest/rollup/base_rollup_hints.js +26 -26
  267. package/dest/rollup/block_constant_data.d.ts +24 -10
  268. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  269. package/dest/rollup/block_constant_data.js +18 -10
  270. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
  271. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  272. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
  273. package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
  274. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  275. package/dest/rollup/block_rollup_public_inputs.js +85 -0
  276. package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
  277. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  278. package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
  279. package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
  280. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  281. package/dest/rollup/checkpoint_constant_data.js +55 -0
  282. package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +12 -11
  283. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  284. package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +14 -8
  285. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
  286. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  287. package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
  288. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +106 -0
  289. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  290. package/dest/rollup/checkpoint_rollup_public_inputs.js +108 -0
  291. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
  292. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  293. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
  294. package/dest/rollup/epoch_constant_data.d.ts +23 -6
  295. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  296. package/dest/rollup/epoch_constant_data.js +25 -12
  297. package/dest/rollup/index.d.ts +17 -16
  298. package/dest/rollup/index.d.ts.map +1 -1
  299. package/dest/rollup/index.js +17 -16
  300. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +21 -0
  301. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  302. package/dest/rollup/private_tx_base_rollup_private_inputs.js +42 -0
  303. package/dest/rollup/public_tube_private_inputs.d.ts +21 -0
  304. package/dest/rollup/public_tube_private_inputs.d.ts.map +1 -0
  305. package/dest/rollup/public_tube_private_inputs.js +42 -0
  306. package/dest/rollup/public_tube_public_inputs.d.ts +20 -0
  307. package/dest/rollup/public_tube_public_inputs.d.ts.map +1 -0
  308. package/dest/rollup/public_tube_public_inputs.js +41 -0
  309. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +23 -0
  310. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  311. package/dest/rollup/public_tx_base_rollup_private_inputs.js +46 -0
  312. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  313. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  314. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  315. package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
  316. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  317. package/dest/rollup/root_rollup_public_inputs.js +71 -0
  318. package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
  319. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
  320. package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
  321. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  322. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  323. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  324. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +14 -14
  325. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  326. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +15 -15
  327. package/dest/slashing/types.d.ts +1 -0
  328. package/dest/slashing/types.d.ts.map +1 -1
  329. package/dest/slashing/types.js +22 -0
  330. package/dest/snapshots/download.d.ts.map +1 -1
  331. package/dest/snapshots/download.js +58 -2
  332. package/dest/snapshots/upload.d.ts.map +1 -1
  333. package/dest/snapshots/upload.js +1 -0
  334. package/dest/stats/stats.d.ts +1 -1
  335. package/dest/stats/stats.d.ts.map +1 -1
  336. package/dest/tests/factories.d.ts +42 -74
  337. package/dest/tests/factories.d.ts.map +1 -1
  338. package/dest/tests/factories.js +144 -167
  339. package/dest/tests/mocks.d.ts +14 -8
  340. package/dest/tests/mocks.d.ts.map +1 -1
  341. package/dest/tests/mocks.js +53 -31
  342. package/dest/trees/index.d.ts +0 -1
  343. package/dest/trees/index.d.ts.map +1 -1
  344. package/dest/trees/index.js +0 -1
  345. package/dest/trees/merkle_tree_id.d.ts +4 -4
  346. package/dest/trees/nullifier_membership_witness.d.ts +3 -3
  347. package/dest/tx/block_header.d.ts +12 -13
  348. package/dest/tx/block_header.d.ts.map +1 -1
  349. package/dest/tx/block_header.js +16 -21
  350. package/dest/tx/content_commitment.d.ts +1 -0
  351. package/dest/tx/content_commitment.d.ts.map +1 -1
  352. package/dest/tx/content_commitment.js +3 -0
  353. package/dest/tx/global_variables.d.ts.map +1 -1
  354. package/dest/tx/global_variables.js +0 -1
  355. package/dest/tx/index.d.ts +2 -1
  356. package/dest/tx/index.d.ts.map +1 -1
  357. package/dest/tx/index.js +2 -1
  358. package/dest/tx/indexed_tx_effect.d.ts +3 -3
  359. package/dest/tx/partial_state_reference.d.ts +1 -0
  360. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  361. package/dest/tx/partial_state_reference.js +3 -0
  362. package/dest/tx/private_execution_result.d.ts +7 -2
  363. package/dest/tx/private_execution_result.d.ts.map +1 -1
  364. package/dest/tx/private_execution_result.js +10 -6
  365. package/dest/tx/private_tx_constant_data.d.ts +60 -0
  366. package/dest/tx/private_tx_constant_data.d.ts.map +1 -0
  367. package/dest/tx/private_tx_constant_data.js +69 -0
  368. package/dest/tx/processed_tx.d.ts +0 -1
  369. package/dest/tx/processed_tx.d.ts.map +1 -1
  370. package/dest/tx/processed_tx.js +1 -6
  371. package/dest/tx/profiling.d.ts.map +1 -1
  372. package/dest/tx/profiling.js +0 -2
  373. package/dest/tx/protocol_contracts.d.ts +29 -0
  374. package/dest/tx/protocol_contracts.d.ts.map +1 -0
  375. package/dest/tx/protocol_contracts.js +49 -0
  376. package/dest/tx/simulated_tx.d.ts +3 -3
  377. package/dest/tx/state_reference.d.ts +1 -0
  378. package/dest/tx/state_reference.d.ts.map +1 -1
  379. package/dest/tx/state_reference.js +4 -1
  380. package/dest/tx/tx.d.ts +6 -9
  381. package/dest/tx/tx.d.ts.map +1 -1
  382. package/dest/tx/tx.js +10 -11
  383. package/dest/tx/tx_constant_data.d.ts +6 -38
  384. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  385. package/dest/tx/tx_constant_data.js +11 -20
  386. package/dest/tx/tx_effect.d.ts +3 -36
  387. package/dest/tx/tx_effect.d.ts.map +1 -1
  388. package/dest/tx/tx_effect.js +63 -202
  389. package/dest/tx/validator/error_texts.d.ts +1 -1
  390. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  391. package/dest/tx/validator/error_texts.js +1 -1
  392. package/dest/update-checker/update-checker.d.ts +1 -1
  393. package/dest/update-checker/update-checker.d.ts.map +1 -1
  394. package/dest/update-checker/update-checker.js +1 -1
  395. package/dest/validators/schemas.d.ts +42 -4
  396. package/dest/validators/schemas.d.ts.map +1 -1
  397. package/dest/validators/schemas.js +5 -4
  398. package/dest/validators/types.d.ts +8 -10
  399. package/dest/validators/types.d.ts.map +1 -1
  400. package/dest/versioning/versioning.d.ts +2 -2
  401. package/dest/versioning/versioning.d.ts.map +1 -1
  402. package/dest/versioning/versioning.js +18 -13
  403. package/dest/world-state/index.d.ts +2 -0
  404. package/dest/world-state/index.d.ts.map +1 -0
  405. package/dest/world-state/index.js +1 -0
  406. package/dest/world-state/world_state_revision.d.ts +22 -0
  407. package/dest/world-state/world_state_revision.d.ts.map +1 -0
  408. package/dest/world-state/world_state_revision.js +21 -0
  409. package/dest/zkpassport/index.d.ts +17 -11
  410. package/dest/zkpassport/index.d.ts.map +1 -1
  411. package/dest/zkpassport/index.js +21 -15
  412. package/package.json +15 -11
  413. package/src/abi/abi.ts +1 -1
  414. package/src/abi/contract_artifact.ts +3 -0
  415. package/src/abi/event_metadata_definition.ts +8 -0
  416. package/src/abi/function_call.ts +5 -1
  417. package/src/abi/index.ts +1 -0
  418. package/src/avm/avm.ts +15 -7
  419. package/src/avm/avm_accumulated_data.ts +25 -29
  420. package/src/avm/avm_circuit_public_inputs.ts +21 -0
  421. package/src/avm/index.ts +1 -1
  422. package/src/avm/message_pack.ts +25 -1
  423. package/src/block/attestation_info.ts +62 -0
  424. package/src/block/body.ts +25 -23
  425. package/src/block/index.ts +4 -0
  426. package/src/block/l2_block.ts +39 -19
  427. package/src/block/l2_block_code_to_purge.ts +30 -31
  428. package/src/block/l2_block_header.ts +232 -0
  429. package/src/block/l2_block_info.ts +63 -0
  430. package/src/block/l2_block_source.ts +33 -51
  431. package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
  432. package/src/block/proposal/attestations_and_signers.ts +121 -0
  433. package/src/block/proposal/index.ts +1 -0
  434. package/src/block/published_l2_block.ts +37 -15
  435. package/src/block/test/l2_tips_store_test_suite.ts +7 -7
  436. package/src/block/validate_block_result.ts +122 -0
  437. package/src/checkpoint/checkpoint_body.ts +10 -0
  438. package/src/checkpoint/index.ts +1 -0
  439. package/src/config/node-rpc-config.ts +9 -0
  440. package/src/contract/contract_address.ts +1 -1
  441. package/src/contract/contract_class_metadata.ts +8 -0
  442. package/src/contract/contract_instance.ts +11 -10
  443. package/src/contract/contract_metadata.ts +7 -0
  444. package/src/contract/index.ts +2 -0
  445. package/src/contract/interfaces/contract_class.ts +1 -1
  446. package/src/epoch-helpers/index.ts +24 -2
  447. package/src/fees/transaction_fee.ts +11 -0
  448. package/src/file-store/factory.ts +15 -0
  449. package/src/file-store/interface.ts +8 -2
  450. package/src/file-store/s3.ts +254 -0
  451. package/src/hash/hash.ts +0 -4
  452. package/src/interfaces/archiver.ts +46 -1
  453. package/src/interfaces/aztec-node-admin.ts +17 -1
  454. package/src/interfaces/aztec-node.ts +53 -2
  455. package/src/interfaces/block-builder.ts +11 -12
  456. package/src/interfaces/client.ts +0 -1
  457. package/src/interfaces/configs.ts +6 -0
  458. package/src/interfaces/epoch-prover.ts +35 -11
  459. package/src/interfaces/merkle_tree_operations.ts +6 -0
  460. package/src/interfaces/p2p.ts +4 -0
  461. package/src/interfaces/private_kernel_prover.ts +2 -2
  462. package/src/interfaces/proving-job.ts +215 -134
  463. package/src/interfaces/server.ts +1 -0
  464. package/src/interfaces/server_circuit_prover.ts +87 -61
  465. package/src/interfaces/slasher.ts +2 -0
  466. package/src/interfaces/tx_provider.ts +1 -0
  467. package/src/interfaces/validator.ts +95 -0
  468. package/src/kernel/hints/build_nullifier_read_request_hints.ts +3 -2
  469. package/src/kernel/hints/nullifier_read_request_hints.ts +3 -3
  470. package/src/kernel/nullifier.ts +8 -8
  471. package/src/kernel/private_call_data.ts +2 -21
  472. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  473. package/src/kernel/private_context_inputs.ts +2 -2
  474. package/src/kernel/private_kernel_circuit_public_inputs.ts +4 -4
  475. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +5 -4
  476. package/src/kernel/private_kernel_prover_output.ts +1 -1
  477. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +8 -2
  478. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +9 -0
  479. package/src/keys/derivation.ts +1 -26
  480. package/src/logs/contract_class_log.ts +2 -3
  481. package/src/logs/debug_log.ts +32 -0
  482. package/src/logs/directional_app_tagging_secret.ts +78 -0
  483. package/src/logs/index.ts +3 -1
  484. package/src/logs/log_with_tx_data.ts +14 -24
  485. package/src/logs/pre_tag.ts +25 -0
  486. package/src/logs/public_log.ts +120 -58
  487. package/src/messaging/inbox_leaf.ts +5 -0
  488. package/src/messaging/l2_to_l1_membership.ts +20 -26
  489. package/src/noir/index.ts +11 -0
  490. package/src/note/index.ts +1 -1
  491. package/src/note/notes_filter.ts +0 -7
  492. package/src/note/{extended_note.ts → unique_note.ts} +14 -75
  493. package/src/p2p/block_attestation.ts +46 -15
  494. package/src/p2p/block_proposal.ts +15 -18
  495. package/src/p2p/consensus_payload.ts +30 -10
  496. package/src/p2p/gossipable.ts +6 -16
  497. package/src/p2p/signature_utils.ts +1 -0
  498. package/src/parity/index.ts +2 -3
  499. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +13 -11
  500. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  501. package/src/proofs/client_ivc_proof.ts +86 -20
  502. package/src/proofs/index.ts +1 -0
  503. package/src/proofs/proof_data.ts +36 -0
  504. package/src/proofs/proving_request_type.ts +14 -10
  505. package/src/rollup/avm_proof_data.ts +2 -31
  506. package/src/rollup/base_rollup_hints.ts +22 -22
  507. package/src/rollup/block_constant_data.ts +16 -6
  508. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
  509. package/src/rollup/block_rollup_public_inputs.ts +123 -0
  510. package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
  511. package/src/rollup/checkpoint_constant_data.ts +84 -0
  512. package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +40 -15
  513. package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
  514. package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +30 -52
  515. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
  516. package/src/rollup/epoch_constant_data.ts +28 -10
  517. package/src/rollup/index.ts +17 -16
  518. package/src/rollup/private_tx_base_rollup_private_inputs.ts +53 -0
  519. package/src/rollup/public_tube_private_inputs.ts +53 -0
  520. package/src/rollup/public_tube_public_inputs.ts +52 -0
  521. package/src/rollup/public_tx_base_rollup_private_inputs.ts +57 -0
  522. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  523. package/src/rollup/root_rollup_public_inputs.ts +99 -0
  524. package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
  525. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  526. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +13 -13
  527. package/src/slashing/types.ts +23 -0
  528. package/src/snapshots/download.ts +66 -2
  529. package/src/snapshots/upload.ts +1 -0
  530. package/src/stats/stats.ts +19 -13
  531. package/src/tests/factories.ts +217 -275
  532. package/src/tests/mocks.ts +87 -57
  533. package/src/trees/index.ts +0 -1
  534. package/src/tx/block_header.ts +17 -32
  535. package/src/tx/content_commitment.ts +4 -0
  536. package/src/tx/global_variables.ts +0 -1
  537. package/src/tx/index.ts +2 -1
  538. package/src/tx/partial_state_reference.ts +8 -0
  539. package/src/tx/private_execution_result.ts +9 -3
  540. package/src/tx/private_tx_constant_data.ts +94 -0
  541. package/src/tx/processed_tx.ts +1 -7
  542. package/src/tx/profiling.ts +0 -2
  543. package/src/tx/protocol_contracts.ts +70 -0
  544. package/src/tx/state_reference.ts +5 -1
  545. package/src/tx/tx.ts +12 -13
  546. package/src/tx/tx_constant_data.ts +8 -21
  547. package/src/tx/tx_effect.ts +64 -213
  548. package/src/tx/validator/error_texts.ts +1 -1
  549. package/src/update-checker/update-checker.ts +1 -1
  550. package/src/validators/schemas.ts +6 -4
  551. package/src/validators/types.ts +9 -10
  552. package/src/versioning/versioning.ts +20 -15
  553. package/src/world-state/index.ts +1 -0
  554. package/src/world-state/world_state_revision.ts +21 -0
  555. package/src/zkpassport/index.ts +42 -30
  556. package/dest/avm/public_data_hint.d.ts +0 -16
  557. package/dest/avm/public_data_hint.d.ts.map +0 -1
  558. package/dest/avm/public_data_hint.js +0 -27
  559. package/dest/interfaces/pxe.d.ts +0 -329
  560. package/dest/interfaces/pxe.d.ts.map +0 -1
  561. package/dest/interfaces/pxe.js +0 -100
  562. package/dest/logs/indexed_tagging_secret.d.ts +0 -28
  563. package/dest/logs/indexed_tagging_secret.d.ts.map +0 -1
  564. package/dest/logs/indexed_tagging_secret.js +0 -50
  565. package/dest/note/extended_note.d.ts +0 -111
  566. package/dest/note/extended_note.d.ts.map +0 -1
  567. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  568. package/dest/parity/root_parity_input.d.ts +0 -52
  569. package/dest/parity/root_parity_input.d.ts.map +0 -1
  570. package/dest/parity/root_parity_input.js +0 -50
  571. package/dest/parity/root_parity_inputs.d.ts +0 -37
  572. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  573. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  574. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  575. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
  576. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  577. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
  578. package/dest/rollup/block_root_rollup.d.ts +0 -283
  579. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  580. package/dest/rollup/block_root_rollup.js +0 -306
  581. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
  582. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  583. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
  584. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  585. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  586. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  587. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  588. package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
  589. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  590. package/dest/rollup/previous_rollup_block_data.js +0 -37
  591. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  592. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  593. package/dest/rollup/previous_rollup_data.js +0 -37
  594. package/dest/rollup/private_base_rollup_inputs.d.ts +0 -21
  595. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  596. package/dest/rollup/private_base_rollup_inputs.js +0 -44
  597. package/dest/rollup/private_tube_data.d.ts +0 -15
  598. package/dest/rollup/private_tube_data.d.ts.map +0 -1
  599. package/dest/rollup/private_tube_data.js +0 -25
  600. package/dest/rollup/public_base_rollup_inputs.d.ts +0 -23
  601. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  602. package/dest/rollup/public_base_rollup_inputs.js +0 -48
  603. package/dest/rollup/public_tube_data.d.ts +0 -15
  604. package/dest/rollup/public_tube_data.d.ts.map +0 -1
  605. package/dest/rollup/public_tube_data.js +0 -25
  606. package/dest/rollup/root_rollup.d.ts +0 -106
  607. package/dest/rollup/root_rollup.d.ts.map +0 -1
  608. package/dest/rollup/root_rollup.js +0 -147
  609. package/dest/rollup/state_diff_hints.d.ts.map +0 -1
  610. package/dest/rollup/state_diff_hints.js +0 -85
  611. package/dest/rollup/tube_inputs.d.ts +0 -43
  612. package/dest/rollup/tube_inputs.d.ts.map +0 -1
  613. package/dest/rollup/tube_inputs.js +0 -63
  614. package/dest/trees/protocol_contract_leaf.d.ts +0 -84
  615. package/dest/trees/protocol_contract_leaf.d.ts.map +0 -1
  616. package/dest/trees/protocol_contract_leaf.js +0 -100
  617. package/dest/tx/proposed_block_header.d.ts.map +0 -1
  618. package/src/avm/public_data_hint.ts +0 -38
  619. package/src/interfaces/pxe.ts +0 -532
  620. package/src/logs/indexed_tagging_secret.ts +0 -48
  621. package/src/parity/root_parity_input.ts +0 -71
  622. package/src/rollup/block_root_rollup.ts +0 -380
  623. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
  624. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  625. package/src/rollup/previous_rollup_block_data.ts +0 -48
  626. package/src/rollup/previous_rollup_data.ts +0 -48
  627. package/src/rollup/private_base_rollup_inputs.ts +0 -53
  628. package/src/rollup/private_tube_data.ts +0 -35
  629. package/src/rollup/public_base_rollup_inputs.ts +0 -59
  630. package/src/rollup/public_tube_data.ts +0 -35
  631. package/src/rollup/root_rollup.ts +0 -195
  632. package/src/rollup/tube_inputs.ts +0 -77
  633. package/src/trees/protocol_contract_leaf.ts +0 -128
@@ -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
  }
@@ -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
  }