@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
@@ -6,7 +6,7 @@ import { Fr } from '@aztec/foundation/fields';
6
6
 
7
7
  import type { ContractArtifact } from '../abi/abi.js';
8
8
  import { AztecAddress } from '../aztec-address/index.js';
9
- import { CommitteeAttestation, L1PublishedData } from '../block/index.js';
9
+ import { CommitteeAttestation, L1PublishedData, L2BlockHeader } from '../block/index.js';
10
10
  import { L2Block } from '../block/l2_block.js';
11
11
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
12
12
  import { PublishedL2Block } from '../block/published_l2_block.js';
@@ -14,6 +14,7 @@ import { computeContractAddressFromInstance } from '../contract/contract_address
14
14
  import { getContractClassFromArtifact } from '../contract/contract_class.js';
15
15
  import { SerializableContractInstance } from '../contract/contract_instance.js';
16
16
  import type { ContractInstanceWithAddress } from '../contract/index.js';
17
+ import { Gas } from '../gas/gas.js';
17
18
  import { GasFees } from '../gas/gas_fees.js';
18
19
  import { GasSettings } from '../gas/gas_settings.js';
19
20
  import { Nullifier } from '../kernel/nullifier.js';
@@ -23,45 +24,22 @@ import {
23
24
  PrivateKernelTailCircuitPublicInputs,
24
25
  } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
25
26
  import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
26
- import { ExtendedNote, UniqueNote } from '../note/extended_note.js';
27
27
  import { Note } from '../note/note.js';
28
+ import { UniqueNote } from '../note/unique_note.js';
28
29
  import { BlockAttestation } from '../p2p/block_attestation.js';
29
30
  import { BlockProposal } from '../p2p/block_proposal.js';
30
31
  import { ConsensusPayload } from '../p2p/consensus_payload.js';
31
32
  import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
32
33
  import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
33
- import {
34
- BlockHeader,
35
- HashedValues,
36
- PrivateCallExecutionResult,
37
- PrivateExecutionResult,
38
- StateReference,
39
- Tx,
40
- } from '../tx/index.js';
34
+ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, StateReference, Tx } from '../tx/index.js';
41
35
  import { PublicSimulationOutput } from '../tx/public_simulation_output.js';
42
36
  import { TxSimulationResult, accumulatePrivateReturnValues } from '../tx/simulated_tx.js';
43
37
  import { TxEffect } from '../tx/tx_effect.js';
44
38
  import { TxHash } from '../tx/tx_hash.js';
45
- import { makeGas, makeGlobalVariables, makeHeader, makePublicCallRequest } from './factories.js';
39
+ import { makeGas, makeGlobalVariables, makeL2BlockHeader, makePublicCallRequest } from './factories.js';
46
40
 
47
41
  export const randomTxHash = (): TxHash => TxHash.random();
48
42
 
49
- export const randomExtendedNote = async ({
50
- note = Note.random(),
51
- recipient = undefined,
52
- contractAddress = undefined,
53
- txHash = randomTxHash(),
54
- storageSlot = Fr.random(),
55
- }: Partial<ExtendedNote> = {}) => {
56
- return new ExtendedNote(
57
- note,
58
- recipient ?? (await AztecAddress.random()),
59
- contractAddress ?? (await AztecAddress.random()),
60
- storageSlot,
61
- txHash,
62
- );
63
- };
64
-
65
43
  export const randomUniqueNote = async ({
66
44
  note = Note.random(),
67
45
  recipient = undefined,
@@ -89,12 +67,13 @@ export const mockTx = async (
89
67
  hasPublicTeardownCallRequest = false,
90
68
  publicCalldataSize = 2,
91
69
  feePayer,
92
- clientIvcProof = ClientIvcProof.empty(),
70
+ clientIvcProof = ClientIvcProof.random(),
93
71
  maxPriorityFeesPerGas,
72
+ gasUsed = Gas.empty(),
94
73
  chainId = Fr.ZERO,
95
74
  version = Fr.ZERO,
96
75
  vkTreeRoot = Fr.ZERO,
97
- protocolContractTreeRoot = Fr.ZERO,
76
+ protocolContractsHash = Fr.ZERO,
98
77
  }: {
99
78
  numberOfNonRevertiblePublicCallRequests?: number;
100
79
  numberOfRevertiblePublicCallRequests?: number;
@@ -104,10 +83,11 @@ export const mockTx = async (
104
83
  feePayer?: AztecAddress;
105
84
  clientIvcProof?: ClientIvcProof;
106
85
  maxPriorityFeesPerGas?: GasFees;
86
+ gasUsed?: Gas;
107
87
  chainId?: Fr;
108
88
  version?: Fr;
109
89
  vkTreeRoot?: Fr;
110
- protocolContractTreeRoot?: Fr;
90
+ protocolContractsHash?: Fr;
111
91
  } = {},
112
92
  ) => {
113
93
  const totalPublicCallRequests =
@@ -116,16 +96,17 @@ export const mockTx = async (
116
96
  (hasPublicTeardownCallRequest ? 1 : 0);
117
97
  const isForPublic = totalPublicCallRequests > 0;
118
98
  const data = PrivateKernelTailCircuitPublicInputs.empty();
119
- const firstNullifier = new Nullifier(new Fr(seed + 1), 0, Fr.ZERO);
99
+ const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
120
100
  data.constants.txContext.gasSettings = GasSettings.default({
121
101
  maxFeesPerGas: new GasFees(10, 10),
122
102
  maxPriorityFeesPerGas,
123
103
  });
124
104
  data.feePayer = feePayer ?? (await AztecAddress.random());
105
+ data.gasUsed = gasUsed;
125
106
  data.constants.txContext.chainId = chainId;
126
107
  data.constants.txContext.version = version;
127
108
  data.constants.vkTreeRoot = vkTreeRoot;
128
- data.constants.protocolContractTreeRoot = protocolContractTreeRoot;
109
+ data.constants.protocolContractsHash = protocolContractsHash;
129
110
 
130
111
  // Set includeByTimestamp to the maximum allowed duration from the current time.
131
112
  data.includeByTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_INCLUDE_BY_TIMESTAMP_DURATION);
@@ -158,7 +139,7 @@ export const mockTx = async (
158
139
  .build();
159
140
 
160
141
  for (let i = 0; i < numberOfRevertibleNullifiers; i++) {
161
- const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i), 0, Fr.ZERO);
142
+ const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i), Fr.ZERO, 0);
162
143
  revertibleBuilder.pushNullifier(revertibleNullifier.value);
163
144
  }
164
145
 
@@ -191,6 +172,7 @@ const emptyPrivateCallExecutionResult = () =>
191
172
  [],
192
173
  [],
193
174
  [],
175
+ [],
194
176
  );
195
177
 
196
178
  const emptyPrivateExecutionResult = () => new PrivateExecutionResult(emptyPrivateCallExecutionResult(), Fr.zero(), []);
@@ -248,7 +230,9 @@ export const randomDeployedContract = async () => {
248
230
 
249
231
  export interface MakeConsensusPayloadOptions {
250
232
  signer?: Secp256k1Signer;
251
- header?: BlockHeader;
233
+ attesterSigner?: Secp256k1Signer;
234
+ proposerSigner?: Secp256k1Signer;
235
+ header?: L2BlockHeader;
252
236
  archive?: Fr;
253
237
  stateReference?: StateReference;
254
238
  txHashes?: TxHash[];
@@ -259,11 +243,11 @@ const makeAndSignConsensusPayload = (
259
243
  domainSeparator: SignatureDomainSeparator,
260
244
  options?: MakeConsensusPayloadOptions,
261
245
  ) => {
262
- const header = options?.header ?? makeHeader(1);
246
+ const header = options?.header ?? makeL2BlockHeader(1);
263
247
  const { signer = Secp256k1Signer.random(), archive = Fr.random(), stateReference = header.state } = options ?? {};
264
248
 
265
249
  const payload = ConsensusPayload.fromFields({
266
- header: header.toPropose(),
250
+ header: header.toCheckpointHeader(),
267
251
  archive,
268
252
  stateReference,
269
253
  });
@@ -286,31 +270,65 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
286
270
  };
287
271
 
288
272
  export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockProposal => {
289
- const { blockNumber, payload, signature } = makeAndSignConsensusPayload(
290
- SignatureDomainSeparator.blockProposal,
291
- options,
292
- );
273
+ const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockProposal, options);
293
274
  const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
294
- return new BlockProposal(blockNumber, payload, signature, txHashes, options?.txs ?? []);
275
+ return new BlockProposal(payload, signature, txHashes, options?.txs ?? []);
295
276
  };
296
277
 
297
278
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
298
279
  export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): BlockAttestation => {
299
- const { blockNumber, payload, signature } = makeAndSignConsensusPayload(
300
- SignatureDomainSeparator.blockAttestation,
301
- options,
302
- );
303
- return new BlockAttestation(blockNumber, payload, signature);
280
+ const header = options?.header ?? makeL2BlockHeader(1);
281
+ const {
282
+ signer,
283
+ attesterSigner = signer ?? Secp256k1Signer.random(),
284
+ proposerSigner = signer ?? Secp256k1Signer.random(),
285
+ archive = Fr.random(),
286
+ stateReference = header.state,
287
+ } = options ?? {};
288
+
289
+ const payload = ConsensusPayload.fromFields({
290
+ header: header.toCheckpointHeader(),
291
+ archive,
292
+ stateReference,
293
+ });
294
+
295
+ // Sign as attester
296
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
297
+ const attestationSignature = attesterSigner.sign(attestationHash);
298
+
299
+ // Sign as proposer
300
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
301
+ const proposerSignature = proposerSigner.sign(proposalHash);
302
+
303
+ return new BlockAttestation(payload, attestationSignature, proposerSignature);
304
304
  };
305
305
 
306
- export const makeBlockAttestationFromBlock = (block: L2Block, signer?: Secp256k1Signer): BlockAttestation => {
307
- return makeBlockAttestation({
308
- signer,
309
- header: block.header,
310
- archive: block.archive.root,
311
- stateReference: block.header.state,
312
- txHashes: block.body.txEffects.map(tx => tx.txHash),
306
+ export const makeBlockAttestationFromBlock = (
307
+ block: L2Block,
308
+ attesterSigner?: Secp256k1Signer,
309
+ proposerSigner?: Secp256k1Signer,
310
+ ): BlockAttestation => {
311
+ const header = block.header;
312
+ const archive = block.archive.root;
313
+ const stateReference = block.header.state;
314
+
315
+ const payload = ConsensusPayload.fromFields({
316
+ header: header.toCheckpointHeader(),
317
+ archive,
318
+ stateReference,
313
319
  });
320
+
321
+ // Sign as attester
322
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
323
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
324
+ const attestationSignature = attestationSigner.sign(attestationHash);
325
+
326
+ // Sign as proposer
327
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
328
+ const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
329
+ const proposerSignature = proposalSignerToUse.sign(proposalHash);
330
+
331
+ return new BlockAttestation(payload, attestationSignature, proposerSignature);
314
332
  };
315
333
 
316
334
  export async function randomPublishedL2Block(
@@ -1,5 +1,4 @@
1
1
  export * from './nullifier_leaf.js';
2
- export * from './protocol_contract_leaf.js';
3
2
  export * from './public_data_leaf.js';
4
3
  export * from './append_only_tree_snapshot.js';
5
4
  export * from './merkle_tree_id.js';
@@ -10,9 +10,7 @@ import { inspect } from 'util';
10
10
  import { z } from 'zod';
11
11
 
12
12
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
13
- import { ContentCommitment } from './content_commitment.js';
14
13
  import { GlobalVariables } from './global_variables.js';
15
- import { ProposedBlockHeader } from './proposed_block_header.js';
16
14
  import { StateReference } from './state_reference.js';
17
15
 
18
16
  /** A header of an L2 block. */
@@ -20,10 +18,13 @@ export class BlockHeader {
20
18
  constructor(
21
19
  /** Snapshot of archive before the block is applied. */
22
20
  public lastArchive: AppendOnlyTreeSnapshot,
23
- /** Hash of the body of an L2 block. */
24
- public contentCommitment: ContentCommitment,
25
21
  /** State reference. */
26
22
  public state: StateReference,
23
+ /**
24
+ * Hash of the sponge blob after the tx effects of this block has been applied.
25
+ * May contain tx effects from the previous blocks in the same checkpoint.
26
+ */
27
+ public spongeBlobHash: Fr,
27
28
  /** Global variables of an L2 block. */
28
29
  public globalVariables: GlobalVariables,
29
30
  /** Total fees in the block, computed by the root rollup circuit */
@@ -36,8 +37,8 @@ export class BlockHeader {
36
37
  return z
37
38
  .object({
38
39
  lastArchive: AppendOnlyTreeSnapshot.schema,
39
- contentCommitment: ContentCommitment.schema,
40
40
  state: StateReference.schema,
41
+ spongeBlobHash: schemas.Fr,
41
42
  globalVariables: GlobalVariables.schema,
42
43
  totalFees: schemas.Fr,
43
44
  totalManaUsed: schemas.Fr,
@@ -46,11 +47,10 @@ export class BlockHeader {
46
47
  }
47
48
 
48
49
  static getFields(fields: FieldsOf<BlockHeader>) {
49
- // Note: The order here must match the order in the ProposedHeaderLib solidity library.
50
50
  return [
51
51
  fields.lastArchive,
52
- fields.contentCommitment,
53
52
  fields.state,
53
+ fields.spongeBlobHash,
54
54
  fields.globalVariables,
55
55
  fields.totalFees,
56
56
  fields.totalManaUsed,
@@ -72,8 +72,8 @@ export class BlockHeader {
72
72
  getSize() {
73
73
  return (
74
74
  this.lastArchive.getSize() +
75
- this.contentCommitment.getSize() +
76
75
  this.state.getSize() +
76
+ this.spongeBlobHash.size +
77
77
  this.globalVariables.getSize() +
78
78
  this.totalFees.size +
79
79
  this.totalManaUsed.size
@@ -101,8 +101,8 @@ export class BlockHeader {
101
101
 
102
102
  return new BlockHeader(
103
103
  reader.readObject(AppendOnlyTreeSnapshot),
104
- reader.readObject(ContentCommitment),
105
104
  reader.readObject(StateReference),
105
+ reader.readObject(Fr),
106
106
  reader.readObject(GlobalVariables),
107
107
  reader.readObject(Fr),
108
108
  reader.readObject(Fr),
@@ -114,8 +114,8 @@ export class BlockHeader {
114
114
 
115
115
  return new BlockHeader(
116
116
  AppendOnlyTreeSnapshot.fromFields(reader),
117
- ContentCommitment.fromFields(reader),
118
117
  StateReference.fromFields(reader),
118
+ reader.readField(),
119
119
  GlobalVariables.fromFields(reader),
120
120
  reader.readField(),
121
121
  reader.readField(),
@@ -125,8 +125,8 @@ export class BlockHeader {
125
125
  static empty(fields: Partial<FieldsOf<BlockHeader>> = {}): BlockHeader {
126
126
  return BlockHeader.from({
127
127
  lastArchive: AppendOnlyTreeSnapshot.empty(),
128
- contentCommitment: ContentCommitment.empty(),
129
128
  state: StateReference.empty(),
129
+ spongeBlobHash: Fr.ZERO,
130
130
  globalVariables: GlobalVariables.empty(),
131
131
  totalFees: Fr.ZERO,
132
132
  totalManaUsed: Fr.ZERO,
@@ -137,8 +137,8 @@ export class BlockHeader {
137
137
  isEmpty(): boolean {
138
138
  return (
139
139
  this.lastArchive.isEmpty() &&
140
- this.contentCommitment.isEmpty() &&
141
140
  this.state.isEmpty() &&
141
+ this.spongeBlobHash.isZero() &&
142
142
  this.globalVariables.isEmpty() &&
143
143
  this.totalFees.isZero() &&
144
144
  this.totalManaUsed.isZero()
@@ -161,24 +161,11 @@ export class BlockHeader {
161
161
  return poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
162
162
  }
163
163
 
164
- toPropose(): ProposedBlockHeader {
165
- return new ProposedBlockHeader(
166
- this.lastArchive.root,
167
- this.contentCommitment,
168
- this.globalVariables.slotNumber,
169
- this.globalVariables.timestamp,
170
- this.globalVariables.coinbase,
171
- this.globalVariables.feeRecipient,
172
- this.globalVariables.gasFees,
173
- this.totalManaUsed,
174
- );
175
- }
176
-
177
164
  toInspect() {
178
165
  return {
179
166
  lastArchive: this.lastArchive.root.toString(),
180
- contentCommitment: this.contentCommitment.toInspect(),
181
167
  state: this.state.toInspect(),
168
+ spongeBlobHash: this.spongeBlobHash.toBigInt(),
182
169
  globalVariables: this.globalVariables.toInspect(),
183
170
  totalFees: this.totalFees.toBigInt(),
184
171
  totalManaUsed: this.totalManaUsed.toBigInt(),
@@ -188,13 +175,11 @@ export class BlockHeader {
188
175
  [inspect.custom]() {
189
176
  return `Header {
190
177
  lastArchive: ${inspect(this.lastArchive)},
191
- contentCommitment.blobsHash: ${inspect(this.contentCommitment.blobsHash)},
192
- contentCommitment.inHash: ${inspect(this.contentCommitment.inHash)},
193
- contentCommitment.outHash: ${inspect(this.contentCommitment.outHash)},
194
178
  state.l1ToL2MessageTree: ${inspect(this.state.l1ToL2MessageTree)},
195
179
  state.noteHashTree: ${inspect(this.state.partial.noteHashTree)},
196
180
  state.nullifierTree: ${inspect(this.state.partial.nullifierTree)},
197
181
  state.publicDataTree: ${inspect(this.state.partial.publicDataTree)},
182
+ spongeBlobHash: ${this.spongeBlobHash},
198
183
  globalVariables: ${inspect(this.globalVariables)},
199
184
  totalFees: ${this.totalFees},
200
185
  totalManaUsed: ${this.totalManaUsed},
@@ -203,12 +188,12 @@ export class BlockHeader {
203
188
 
204
189
  public equals(other: this): boolean {
205
190
  return (
206
- this.contentCommitment.equals(other.contentCommitment) &&
191
+ this.lastArchive.equals(other.lastArchive) &&
207
192
  this.state.equals(other.state) &&
193
+ this.spongeBlobHash.equals(other.spongeBlobHash) &&
208
194
  this.globalVariables.equals(other.globalVariables) &&
209
195
  this.totalFees.equals(other.totalFees) &&
210
- this.totalManaUsed.equals(other.totalManaUsed) &&
211
- this.lastArchive.equals(other.lastArchive)
196
+ this.totalManaUsed.equals(other.totalManaUsed)
212
197
  );
213
198
  }
214
199
  }
@@ -109,7 +109,6 @@ export class GlobalVariables {
109
109
  }
110
110
 
111
111
  static getFields(fields: FieldsOf<GlobalVariables>) {
112
- // Note: The order here must match the order in the ProposedHeaderLib solidity library.
113
112
  return [
114
113
  fields.chainId,
115
114
  fields.version,
package/src/tx/index.ts CHANGED
@@ -6,11 +6,11 @@ export * from './state_reference.js';
6
6
  export * from './partial_state_reference.js';
7
7
  export * from './function_data.js';
8
8
  export * from './tree_snapshots.js';
9
+ export * from './private_tx_constant_data.js';
9
10
  export * from './tx_constant_data.js';
10
11
  export * from './tx_context.js';
11
12
  export * from './tx_request.js';
12
13
  export * from './private_execution_result.js';
13
- export * from './proposed_block_header.js';
14
14
  export * from './public_call_request_with_calldata.js';
15
15
  export * from './tx_hash.js';
16
16
  export * from './tx_receipt.js';
@@ -30,3 +30,4 @@ export * from './hashed_values.js';
30
30
  export * from './indexed_tx_effect.js';
31
31
  export * from './offchain_effect.js';
32
32
  export * from './profiling.js';
33
+ export * from './protocol_contracts.js';
@@ -10,6 +10,7 @@ import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inp
10
10
  import type { IsEmpty } from '../kernel/utils/interfaces.js';
11
11
  import { sortByCounter } from '../kernel/utils/order_and_comparison.js';
12
12
  import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
13
+ import { type PreTag, PreTagSchema } from '../logs/pre_tag.js';
13
14
  import { Note } from '../note/note.js';
14
15
  import { type ZodFor, mapSchema, schemas } from '../schemas/index.js';
15
16
  import type { UInt32 } from '../types/index.js';
@@ -103,10 +104,10 @@ export class PrivateExecutionResult {
103
104
  }
104
105
 
105
106
  /**
106
- * The block number that this execution was simulated with.
107
+ * The anchor block number that this execution was simulated with.
107
108
  */
108
- getSimulationBlockNumber(): UInt32 {
109
- return this.entrypoint.publicInputs.historicalHeader.globalVariables.blockNumber;
109
+ getSimulationAnchorBlockNumber(): UInt32 {
110
+ return this.entrypoint.publicInputs.anchorBlockHeader.globalVariables.blockNumber;
110
111
  }
111
112
  }
112
113
 
@@ -135,6 +136,8 @@ export class PrivateCallExecutionResult {
135
136
  public returnValues: Fr[],
136
137
  /** The offchain effects emitted during execution of this function call via the `emit_offchain_effect` oracle. */
137
138
  public offchainEffects: { data: Fr[] }[],
139
+ /** The pre tags used in this tx to compute tags for private logs */
140
+ public preTags: PreTag[],
138
141
  /** The nested executions. */
139
142
  public nestedExecutionResults: PrivateCallExecutionResult[],
140
143
  /**
@@ -158,6 +161,7 @@ export class PrivateCallExecutionResult {
158
161
  noteHashNullifierCounterMap: mapSchema(z.coerce.number(), z.number()),
159
162
  returnValues: z.array(schemas.Fr),
160
163
  offchainEffects: z.array(z.object({ data: z.array(schemas.Fr) })),
164
+ preTags: z.array(PreTagSchema),
161
165
  nestedExecutionResults: z.array(z.lazy(() => PrivateCallExecutionResult.schema)),
162
166
  contractClassLogs: z.array(CountedContractClassLog.schema),
163
167
  })
@@ -175,6 +179,7 @@ export class PrivateCallExecutionResult {
175
179
  fields.noteHashNullifierCounterMap,
176
180
  fields.returnValues,
177
181
  fields.offchainEffects,
182
+ fields.preTags,
178
183
  fields.nestedExecutionResults,
179
184
  fields.contractClassLogs,
180
185
  );
@@ -195,6 +200,7 @@ export class PrivateCallExecutionResult {
195
200
  data: [Fr.random()],
196
201
  },
197
202
  ],
203
+ [],
198
204
  await timesParallel(nested, () => PrivateCallExecutionResult.random(0)),
199
205
  [new CountedContractClassLog(await ContractClassLog.random(), randomInt(10))],
200
206
  );
@@ -0,0 +1,94 @@
1
+ import { TX_CONSTANT_DATA_LENGTH } from '@aztec/constants';
2
+ import { Fr } from '@aztec/foundation/fields';
3
+ import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
4
+ import type { FieldsOf } from '@aztec/foundation/types';
5
+
6
+ import { BlockHeader } from './block_header.js';
7
+ import { ProtocolContracts } from './protocol_contracts.js';
8
+ import { TxContext } from './tx_context.js';
9
+
10
+ /**
11
+ * Data that is constant/not modified by neither of the kernels.
12
+ */
13
+ export class PrivateTxConstantData {
14
+ constructor(
15
+ /** Header of a block whose state is used during execution (not the block the transaction is included in). */
16
+ public anchorBlockHeader: BlockHeader,
17
+ /**
18
+ * Context of the transaction.
19
+ *
20
+ * Note: `chainId` and `version` in txContext are not redundant to the values in
21
+ * self.anchor_block_header.global_variables because they can be different in case of a protocol upgrade. In such
22
+ * a situation we could be using header from a block before the upgrade took place but be using the updated
23
+ * protocol to execute and prove the transaction.
24
+ */
25
+ public txContext: TxContext,
26
+ /**
27
+ * Root of the vk tree for the protocol circuits.
28
+ */
29
+ public vkTreeRoot: Fr,
30
+ /**
31
+ * List of protocol contracts.
32
+ */
33
+ public protocolContracts: ProtocolContracts,
34
+ ) {}
35
+
36
+ static from(fields: FieldsOf<PrivateTxConstantData>) {
37
+ return new PrivateTxConstantData(...PrivateTxConstantData.getFields(fields));
38
+ }
39
+
40
+ static getFields(fields: FieldsOf<PrivateTxConstantData>) {
41
+ return [fields.anchorBlockHeader, fields.txContext, fields.vkTreeRoot, fields.protocolContracts] as const;
42
+ }
43
+
44
+ static fromFields(fields: Fr[] | FieldReader): PrivateTxConstantData {
45
+ const reader = FieldReader.asReader(fields);
46
+ return new PrivateTxConstantData(
47
+ reader.readObject(BlockHeader),
48
+ reader.readObject(TxContext),
49
+ reader.readField(),
50
+ reader.readObject(ProtocolContracts),
51
+ );
52
+ }
53
+
54
+ toFields(): Fr[] {
55
+ const fields = serializeToFields(...PrivateTxConstantData.getFields(this));
56
+ if (fields.length !== TX_CONSTANT_DATA_LENGTH) {
57
+ throw new Error(
58
+ `Invalid number of fields for PrivateTxConstantData. Expected ${TX_CONSTANT_DATA_LENGTH}, got ${fields.length}`,
59
+ );
60
+ }
61
+ return fields;
62
+ }
63
+
64
+ static fromBuffer(buffer: Buffer | BufferReader): PrivateTxConstantData {
65
+ const reader = BufferReader.asReader(buffer);
66
+ return new PrivateTxConstantData(
67
+ reader.readObject(BlockHeader),
68
+ reader.readObject(TxContext),
69
+ Fr.fromBuffer(reader),
70
+ reader.readObject(ProtocolContracts),
71
+ );
72
+ }
73
+
74
+ toBuffer() {
75
+ return serializeToBuffer(...PrivateTxConstantData.getFields(this));
76
+ }
77
+
78
+ static empty() {
79
+ return new PrivateTxConstantData(BlockHeader.empty(), TxContext.empty(), Fr.ZERO, ProtocolContracts.empty());
80
+ }
81
+
82
+ getSize() {
83
+ return (
84
+ this.anchorBlockHeader.getSize() +
85
+ this.txContext.getSize() +
86
+ this.vkTreeRoot.size +
87
+ this.protocolContracts.getSize()
88
+ );
89
+ }
90
+
91
+ clone(): PrivateTxConstantData {
92
+ return PrivateTxConstantData.fromBuffer(this.toBuffer());
93
+ }
94
+ }
@@ -128,12 +128,6 @@ export function makeProcessedTxFromPrivateOnlyTx(
128
128
  };
129
129
  }
130
130
 
131
- export function toNumBlobFields(txs: ProcessedTx[]): number {
132
- return txs.reduce((acc, tx) => {
133
- return acc + tx.txEffect.toBlobFields().length;
134
- }, 0);
135
- }
136
-
137
131
  export function makeProcessedTxFromTxWithPublicCalls(
138
132
  tx: Tx,
139
133
  avmProvingRequest: AvmProvingRequest,
@@ -175,7 +169,7 @@ export function makeProcessedTxFromTxWithPublicCalls(
175
169
  ),
176
170
  publicDataWrites,
177
171
  privateLogs,
178
- avmPublicInputs.accumulatedData.publicLogs.filter(l => !l.isEmpty()),
172
+ avmPublicInputs.accumulatedData.publicLogs.toLogs(),
179
173
  contractClassLogs,
180
174
  );
181
175
 
@@ -78,13 +78,11 @@ export const SimulationStatsSchema = z.object({
78
78
  nodeRPCCalls: NodeStatsSchema,
79
79
  });
80
80
 
81
- // docs:start:tx-profile-result
82
81
  export class TxProfileResult {
83
82
  constructor(
84
83
  public executionSteps: PrivateExecutionStep[],
85
84
  public stats: ProvingStats,
86
85
  ) {}
87
- // docs:end:tx-profile-result
88
86
  static get schema(): ZodFor<TxProfileResult> {
89
87
  return z
90
88
  .object({
@@ -0,0 +1,70 @@
1
+ import { GeneratorIndex, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
2
+ import { makeTuple } from '@aztec/foundation/array';
3
+ import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
4
+ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
5
+ import { Fr } from '@aztec/foundation/fields';
6
+ import {
7
+ BufferReader,
8
+ FieldReader,
9
+ type Tuple,
10
+ assertLength,
11
+ serializeToBuffer,
12
+ serializeToFields,
13
+ } from '@aztec/foundation/serialize';
14
+ import type { FieldsOf } from '@aztec/foundation/types';
15
+
16
+ import { z } from 'zod';
17
+
18
+ import { AztecAddress } from '../aztec-address/index.js';
19
+
20
+ export class ProtocolContracts {
21
+ constructor(public derivedAddresses: Tuple<AztecAddress, typeof MAX_PROTOCOL_CONTRACTS>) {}
22
+
23
+ static from(fields: FieldsOf<ProtocolContracts>) {
24
+ return new ProtocolContracts(...ProtocolContracts.getFields(fields));
25
+ }
26
+
27
+ static getFields(fields: FieldsOf<ProtocolContracts>) {
28
+ return [fields.derivedAddresses] as const;
29
+ }
30
+
31
+ static fromFields(fields: Fr[] | FieldReader): ProtocolContracts {
32
+ const reader = FieldReader.asReader(fields);
33
+ return new ProtocolContracts(reader.readArray(MAX_PROTOCOL_CONTRACTS, AztecAddress));
34
+ }
35
+
36
+ toFields(): Fr[] {
37
+ return serializeToFields(...ProtocolContracts.getFields(this));
38
+ }
39
+
40
+ static fromBuffer(buffer: Buffer | BufferReader): ProtocolContracts {
41
+ const reader = BufferReader.asReader(buffer);
42
+ return new ProtocolContracts(reader.readArray(MAX_PROTOCOL_CONTRACTS, AztecAddress));
43
+ }
44
+
45
+ toBuffer() {
46
+ return serializeToBuffer(...ProtocolContracts.getFields(this));
47
+ }
48
+
49
+ static empty() {
50
+ return new ProtocolContracts(makeTuple(MAX_PROTOCOL_CONTRACTS, () => AztecAddress.zero()));
51
+ }
52
+
53
+ getSize() {
54
+ return arraySerializedSizeOfNonEmpty(this.derivedAddresses);
55
+ }
56
+
57
+ hash() {
58
+ return poseidon2HashWithSeparator(this.derivedAddresses, GeneratorIndex.PROTOCOL_CONTRACTS);
59
+ }
60
+
61
+ static get schema() {
62
+ return z
63
+ .object({
64
+ derivedAddresses: AztecAddress.schema.array().min(MAX_PROTOCOL_CONTRACTS).max(MAX_PROTOCOL_CONTRACTS),
65
+ })
66
+ .transform(
67
+ ({ derivedAddresses }) => new ProtocolContracts(assertLength(derivedAddresses, MAX_PROTOCOL_CONTRACTS)),
68
+ );
69
+ }
70
+ }