@aztec/stdlib 3.0.0-canary.a9708bd → 3.0.0-manual.20251030

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 (652) 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 +35 -433
  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 +20 -4
  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 +29 -12
  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_data.js +2 -2
  172. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +5 -4
  173. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  174. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +7 -6
  175. package/dest/kernel/private_kernel_prover_output.d.ts +4 -4
  176. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  177. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -0
  178. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  179. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
  180. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
  181. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +2 -0
  182. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  183. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -0
  184. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -1
  185. package/dest/keys/derivation.d.ts +0 -2
  186. package/dest/keys/derivation.d.ts.map +1 -1
  187. package/dest/keys/derivation.js +3 -24
  188. package/dest/logs/contract_class_log.d.ts +1 -1
  189. package/dest/logs/contract_class_log.d.ts.map +1 -1
  190. package/dest/logs/contract_class_log.js +1 -3
  191. package/dest/logs/debug_log.d.ts +13 -0
  192. package/dest/logs/debug_log.d.ts.map +1 -0
  193. package/dest/logs/debug_log.js +26 -0
  194. package/dest/logs/directional_app_tagging_secret.d.ts +40 -0
  195. package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -0
  196. package/dest/logs/directional_app_tagging_secret.js +63 -0
  197. package/dest/logs/index.d.ts +3 -1
  198. package/dest/logs/index.d.ts.map +1 -1
  199. package/dest/logs/index.js +3 -1
  200. package/dest/logs/log_with_tx_data.d.ts +9 -12
  201. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  202. package/dest/logs/log_with_tx_data.js +18 -23
  203. package/dest/logs/pre_tag.d.ts +34 -0
  204. package/dest/logs/pre_tag.d.ts.map +1 -0
  205. package/dest/logs/pre_tag.js +7 -0
  206. package/dest/logs/public_log.d.ts +23 -10
  207. package/dest/logs/public_log.d.ts.map +1 -1
  208. package/dest/logs/public_log.js +117 -42
  209. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  210. package/dest/logs/shared_secret_derivation.js +2 -4
  211. package/dest/messaging/inbox_leaf.d.ts +2 -0
  212. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  213. package/dest/messaging/inbox_leaf.js +3 -0
  214. package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
  215. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  216. package/dest/messaging/l2_to_l1_membership.js +16 -18
  217. package/dest/noir/index.d.ts +11 -0
  218. package/dest/noir/index.d.ts.map +1 -1
  219. package/dest/note/index.d.ts +1 -1
  220. package/dest/note/index.d.ts.map +1 -1
  221. package/dest/note/index.js +1 -1
  222. package/dest/note/notes_filter.d.ts +0 -5
  223. package/dest/note/notes_filter.d.ts.map +1 -1
  224. package/dest/note/notes_filter.js +0 -3
  225. package/dest/note/unique_note.d.ts +43 -0
  226. package/dest/note/unique_note.d.ts.map +1 -0
  227. package/dest/note/{extended_note.js → unique_note.js} +9 -48
  228. package/dest/p2p/block_attestation.d.ts +45 -9
  229. package/dest/p2p/block_attestation.d.ts.map +1 -1
  230. package/dest/p2p/block_attestation.js +37 -15
  231. package/dest/p2p/block_proposal.d.ts +7 -9
  232. package/dest/p2p/block_proposal.d.ts.map +1 -1
  233. package/dest/p2p/block_proposal.js +13 -14
  234. package/dest/p2p/consensus_payload.d.ts +35 -6
  235. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  236. package/dest/p2p/consensus_payload.js +21 -8
  237. package/dest/p2p/gossipable.d.ts +6 -16
  238. package/dest/p2p/gossipable.d.ts.map +1 -1
  239. package/dest/p2p/gossipable.js +9 -21
  240. package/dest/p2p/signature_utils.d.ts +2 -1
  241. package/dest/p2p/signature_utils.d.ts.map +1 -1
  242. package/dest/p2p/signature_utils.js +1 -0
  243. package/dest/p2p/topic_type.d.ts +4 -8
  244. package/dest/p2p/topic_type.d.ts.map +1 -1
  245. package/dest/p2p/topic_type.js +14 -8
  246. package/dest/parity/index.d.ts +2 -3
  247. package/dest/parity/index.d.ts.map +1 -1
  248. package/dest/parity/index.js +2 -3
  249. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +7 -7
  250. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  251. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +10 -6
  252. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  253. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  254. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  255. package/dest/proofs/chonk_proof.d.ts +28 -0
  256. package/dest/proofs/chonk_proof.d.ts.map +1 -0
  257. package/dest/proofs/chonk_proof.js +101 -0
  258. package/dest/proofs/index.d.ts +2 -1
  259. package/dest/proofs/index.d.ts.map +1 -1
  260. package/dest/proofs/index.js +2 -1
  261. package/dest/proofs/proof_data.d.ts +21 -0
  262. package/dest/proofs/proof_data.d.ts.map +1 -0
  263. package/dest/proofs/proof_data.js +22 -0
  264. package/dest/proofs/proving_request_type.d.ts +17 -13
  265. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  266. package/dest/proofs/proving_request_type.js +17 -12
  267. package/dest/rollup/avm_proof_data.d.ts +2 -12
  268. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  269. package/dest/rollup/avm_proof_data.js +0 -24
  270. package/dest/rollup/base_rollup_hints.d.ts +17 -17
  271. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  272. package/dest/rollup/base_rollup_hints.js +26 -26
  273. package/dest/rollup/block_constant_data.d.ts +24 -10
  274. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  275. package/dest/rollup/block_constant_data.js +18 -10
  276. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
  277. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  278. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
  279. package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
  280. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  281. package/dest/rollup/block_rollup_public_inputs.js +85 -0
  282. package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
  283. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  284. package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
  285. package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
  286. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  287. package/dest/rollup/checkpoint_constant_data.js +55 -0
  288. package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +12 -11
  289. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  290. package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +14 -8
  291. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
  292. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  293. package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
  294. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +106 -0
  295. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  296. package/dest/rollup/checkpoint_rollup_public_inputs.js +108 -0
  297. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
  298. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  299. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
  300. package/dest/rollup/epoch_constant_data.d.ts +23 -6
  301. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  302. package/dest/rollup/epoch_constant_data.js +25 -12
  303. package/dest/rollup/index.d.ts +17 -16
  304. package/dest/rollup/index.d.ts.map +1 -1
  305. package/dest/rollup/index.js +17 -16
  306. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +21 -0
  307. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  308. package/dest/rollup/private_tx_base_rollup_private_inputs.js +42 -0
  309. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +21 -0
  310. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -0
  311. package/dest/rollup/public_chonk_verifier_private_inputs.js +43 -0
  312. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +20 -0
  313. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -0
  314. package/dest/rollup/public_chonk_verifier_public_inputs.js +42 -0
  315. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +23 -0
  316. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  317. package/dest/rollup/public_tx_base_rollup_private_inputs.js +46 -0
  318. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  319. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  320. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  321. package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
  322. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  323. package/dest/rollup/root_rollup_public_inputs.js +71 -0
  324. package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
  325. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
  326. package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
  327. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  328. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  329. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  330. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +14 -14
  331. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  332. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +15 -15
  333. package/dest/slashing/types.d.ts +1 -0
  334. package/dest/slashing/types.d.ts.map +1 -1
  335. package/dest/slashing/types.js +22 -0
  336. package/dest/snapshots/download.d.ts.map +1 -1
  337. package/dest/snapshots/download.js +58 -2
  338. package/dest/snapshots/upload.d.ts.map +1 -1
  339. package/dest/snapshots/upload.js +1 -0
  340. package/dest/stats/stats.d.ts +3 -3
  341. package/dest/stats/stats.d.ts.map +1 -1
  342. package/dest/tests/factories.d.ts +43 -75
  343. package/dest/tests/factories.d.ts.map +1 -1
  344. package/dest/tests/factories.js +149 -171
  345. package/dest/tests/mocks.d.ts +16 -10
  346. package/dest/tests/mocks.d.ts.map +1 -1
  347. package/dest/tests/mocks.js +55 -33
  348. package/dest/trees/index.d.ts +0 -1
  349. package/dest/trees/index.d.ts.map +1 -1
  350. package/dest/trees/index.js +0 -1
  351. package/dest/trees/merkle_tree_id.d.ts +4 -4
  352. package/dest/trees/nullifier_membership_witness.d.ts +3 -3
  353. package/dest/tx/block_header.d.ts +12 -13
  354. package/dest/tx/block_header.d.ts.map +1 -1
  355. package/dest/tx/block_header.js +16 -21
  356. package/dest/tx/content_commitment.d.ts +1 -0
  357. package/dest/tx/content_commitment.d.ts.map +1 -1
  358. package/dest/tx/content_commitment.js +3 -0
  359. package/dest/tx/global_variables.d.ts.map +1 -1
  360. package/dest/tx/global_variables.js +0 -1
  361. package/dest/tx/index.d.ts +2 -1
  362. package/dest/tx/index.d.ts.map +1 -1
  363. package/dest/tx/index.js +2 -1
  364. package/dest/tx/indexed_tx_effect.d.ts +3 -3
  365. package/dest/tx/partial_state_reference.d.ts +1 -0
  366. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  367. package/dest/tx/partial_state_reference.js +3 -0
  368. package/dest/tx/private_execution_result.d.ts +7 -2
  369. package/dest/tx/private_execution_result.d.ts.map +1 -1
  370. package/dest/tx/private_execution_result.js +10 -6
  371. package/dest/tx/private_tx_constant_data.d.ts +60 -0
  372. package/dest/tx/private_tx_constant_data.d.ts.map +1 -0
  373. package/dest/tx/private_tx_constant_data.js +69 -0
  374. package/dest/tx/processed_tx.d.ts +2 -3
  375. package/dest/tx/processed_tx.d.ts.map +1 -1
  376. package/dest/tx/processed_tx.js +3 -8
  377. package/dest/tx/profiling.d.ts.map +1 -1
  378. package/dest/tx/profiling.js +0 -2
  379. package/dest/tx/protocol_contracts.d.ts +29 -0
  380. package/dest/tx/protocol_contracts.d.ts.map +1 -0
  381. package/dest/tx/protocol_contracts.js +49 -0
  382. package/dest/tx/proven_tx.d.ts +7 -7
  383. package/dest/tx/proven_tx.d.ts.map +1 -1
  384. package/dest/tx/proven_tx.js +8 -8
  385. package/dest/tx/simulated_tx.d.ts +3 -3
  386. package/dest/tx/simulated_tx.js +2 -2
  387. package/dest/tx/state_reference.d.ts +1 -0
  388. package/dest/tx/state_reference.d.ts.map +1 -1
  389. package/dest/tx/state_reference.js +4 -1
  390. package/dest/tx/tx.d.ts +9 -12
  391. package/dest/tx/tx.d.ts.map +1 -1
  392. package/dest/tx/tx.js +21 -22
  393. package/dest/tx/tx_constant_data.d.ts +6 -38
  394. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  395. package/dest/tx/tx_constant_data.js +11 -20
  396. package/dest/tx/tx_effect.d.ts +3 -36
  397. package/dest/tx/tx_effect.d.ts.map +1 -1
  398. package/dest/tx/tx_effect.js +63 -202
  399. package/dest/tx/validator/error_texts.d.ts +1 -1
  400. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  401. package/dest/tx/validator/error_texts.js +1 -1
  402. package/dest/update-checker/update-checker.d.ts +1 -1
  403. package/dest/update-checker/update-checker.d.ts.map +1 -1
  404. package/dest/update-checker/update-checker.js +1 -1
  405. package/dest/validators/schemas.d.ts +42 -4
  406. package/dest/validators/schemas.d.ts.map +1 -1
  407. package/dest/validators/schemas.js +5 -4
  408. package/dest/validators/types.d.ts +8 -10
  409. package/dest/validators/types.d.ts.map +1 -1
  410. package/dest/versioning/versioning.d.ts +2 -2
  411. package/dest/versioning/versioning.d.ts.map +1 -1
  412. package/dest/versioning/versioning.js +18 -13
  413. package/dest/world-state/index.d.ts +2 -0
  414. package/dest/world-state/index.d.ts.map +1 -0
  415. package/dest/world-state/index.js +1 -0
  416. package/dest/world-state/world_state_revision.d.ts +22 -0
  417. package/dest/world-state/world_state_revision.d.ts.map +1 -0
  418. package/dest/world-state/world_state_revision.js +21 -0
  419. package/dest/zkpassport/index.d.ts +17 -11
  420. package/dest/zkpassport/index.d.ts.map +1 -1
  421. package/dest/zkpassport/index.js +21 -15
  422. package/package.json +15 -11
  423. package/src/abi/abi.ts +1 -1
  424. package/src/abi/contract_artifact.ts +3 -0
  425. package/src/abi/event_metadata_definition.ts +8 -0
  426. package/src/abi/function_call.ts +5 -1
  427. package/src/abi/index.ts +1 -0
  428. package/src/avm/avm.ts +15 -7
  429. package/src/avm/avm_accumulated_data.ts +25 -29
  430. package/src/avm/avm_circuit_public_inputs.ts +21 -0
  431. package/src/avm/index.ts +1 -1
  432. package/src/avm/message_pack.ts +25 -1
  433. package/src/block/attestation_info.ts +62 -0
  434. package/src/block/body.ts +25 -23
  435. package/src/block/index.ts +4 -0
  436. package/src/block/l2_block.ts +39 -19
  437. package/src/block/l2_block_code_to_purge.ts +30 -31
  438. package/src/block/l2_block_header.ts +232 -0
  439. package/src/block/l2_block_info.ts +63 -0
  440. package/src/block/l2_block_source.ts +38 -56
  441. package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
  442. package/src/block/proposal/attestations_and_signers.ts +121 -0
  443. package/src/block/proposal/index.ts +1 -0
  444. package/src/block/published_l2_block.ts +37 -15
  445. package/src/block/test/l2_tips_store_test_suite.ts +7 -7
  446. package/src/block/validate_block_result.ts +122 -0
  447. package/src/checkpoint/checkpoint_body.ts +10 -0
  448. package/src/checkpoint/index.ts +1 -0
  449. package/src/config/node-rpc-config.ts +9 -0
  450. package/src/contract/contract_address.ts +1 -1
  451. package/src/contract/contract_class_metadata.ts +8 -0
  452. package/src/contract/contract_instance.ts +11 -10
  453. package/src/contract/contract_metadata.ts +7 -0
  454. package/src/contract/index.ts +2 -0
  455. package/src/contract/interfaces/contract_class.ts +1 -1
  456. package/src/epoch-helpers/index.ts +24 -2
  457. package/src/fees/transaction_fee.ts +11 -0
  458. package/src/file-store/factory.ts +15 -0
  459. package/src/file-store/interface.ts +8 -2
  460. package/src/file-store/s3.ts +254 -0
  461. package/src/hash/hash.ts +0 -4
  462. package/src/interfaces/archiver.ts +49 -4
  463. package/src/interfaces/aztec-node-admin.ts +17 -1
  464. package/src/interfaces/aztec-node.ts +53 -2
  465. package/src/interfaces/block-builder.ts +11 -12
  466. package/src/interfaces/client.ts +0 -1
  467. package/src/interfaces/configs.ts +6 -0
  468. package/src/interfaces/epoch-prover.ts +38 -14
  469. package/src/interfaces/merkle_tree_operations.ts +6 -0
  470. package/src/interfaces/p2p.ts +4 -0
  471. package/src/interfaces/private_kernel_prover.ts +2 -2
  472. package/src/interfaces/proving-job.ts +218 -134
  473. package/src/interfaces/server.ts +1 -0
  474. package/src/interfaces/server_circuit_prover.ts +89 -61
  475. package/src/interfaces/slasher.ts +2 -0
  476. package/src/interfaces/tx_provider.ts +1 -0
  477. package/src/interfaces/validator.ts +95 -0
  478. package/src/kernel/hints/build_nullifier_read_request_hints.ts +3 -2
  479. package/src/kernel/hints/nullifier_read_request_hints.ts +3 -3
  480. package/src/kernel/nullifier.ts +8 -8
  481. package/src/kernel/private_call_data.ts +2 -21
  482. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  483. package/src/kernel/private_context_inputs.ts +2 -2
  484. package/src/kernel/private_kernel_circuit_public_inputs.ts +4 -4
  485. package/src/kernel/private_kernel_data.ts +2 -2
  486. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +5 -4
  487. package/src/kernel/private_kernel_prover_output.ts +4 -4
  488. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +8 -2
  489. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +9 -0
  490. package/src/keys/derivation.ts +3 -29
  491. package/src/logs/contract_class_log.ts +2 -3
  492. package/src/logs/debug_log.ts +32 -0
  493. package/src/logs/directional_app_tagging_secret.ts +77 -0
  494. package/src/logs/index.ts +3 -1
  495. package/src/logs/log_with_tx_data.ts +14 -24
  496. package/src/logs/pre_tag.ts +25 -0
  497. package/src/logs/public_log.ts +120 -58
  498. package/src/logs/shared_secret_derivation.ts +2 -4
  499. package/src/messaging/inbox_leaf.ts +5 -0
  500. package/src/messaging/l2_to_l1_membership.ts +20 -26
  501. package/src/noir/index.ts +11 -0
  502. package/src/note/index.ts +1 -1
  503. package/src/note/notes_filter.ts +0 -7
  504. package/src/note/{extended_note.ts → unique_note.ts} +14 -75
  505. package/src/p2p/block_attestation.ts +46 -15
  506. package/src/p2p/block_proposal.ts +15 -18
  507. package/src/p2p/consensus_payload.ts +30 -10
  508. package/src/p2p/gossipable.ts +10 -28
  509. package/src/p2p/signature_utils.ts +1 -0
  510. package/src/p2p/topic_type.ts +15 -8
  511. package/src/parity/index.ts +2 -3
  512. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +13 -11
  513. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  514. package/src/proofs/chonk_proof.ts +118 -0
  515. package/src/proofs/index.ts +2 -1
  516. package/src/proofs/proof_data.ts +36 -0
  517. package/src/proofs/proving_request_type.ts +14 -10
  518. package/src/rollup/avm_proof_data.ts +2 -31
  519. package/src/rollup/base_rollup_hints.ts +22 -22
  520. package/src/rollup/block_constant_data.ts +16 -6
  521. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
  522. package/src/rollup/block_rollup_public_inputs.ts +123 -0
  523. package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
  524. package/src/rollup/checkpoint_constant_data.ts +84 -0
  525. package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +40 -15
  526. package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
  527. package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +30 -52
  528. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
  529. package/src/rollup/epoch_constant_data.ts +28 -10
  530. package/src/rollup/index.ts +17 -16
  531. package/src/rollup/private_tx_base_rollup_private_inputs.ts +53 -0
  532. package/src/rollup/public_chonk_verifier_private_inputs.ts +54 -0
  533. package/src/rollup/public_chonk_verifier_public_inputs.ts +53 -0
  534. package/src/rollup/public_tx_base_rollup_private_inputs.ts +57 -0
  535. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  536. package/src/rollup/root_rollup_public_inputs.ts +99 -0
  537. package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
  538. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  539. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +13 -13
  540. package/src/slashing/types.ts +23 -0
  541. package/src/snapshots/download.ts +66 -2
  542. package/src/snapshots/upload.ts +1 -0
  543. package/src/stats/stats.ts +21 -15
  544. package/src/tests/factories.ts +226 -283
  545. package/src/tests/mocks.ts +90 -60
  546. package/src/trees/index.ts +0 -1
  547. package/src/tx/block_header.ts +17 -32
  548. package/src/tx/content_commitment.ts +4 -0
  549. package/src/tx/global_variables.ts +0 -1
  550. package/src/tx/index.ts +2 -1
  551. package/src/tx/partial_state_reference.ts +8 -0
  552. package/src/tx/private_execution_result.ts +9 -3
  553. package/src/tx/private_tx_constant_data.ts +94 -0
  554. package/src/tx/processed_tx.ts +5 -11
  555. package/src/tx/profiling.ts +0 -2
  556. package/src/tx/protocol_contracts.ts +70 -0
  557. package/src/tx/proven_tx.ts +6 -6
  558. package/src/tx/simulated_tx.ts +2 -2
  559. package/src/tx/state_reference.ts +5 -1
  560. package/src/tx/tx.ts +21 -22
  561. package/src/tx/tx_constant_data.ts +8 -21
  562. package/src/tx/tx_effect.ts +64 -213
  563. package/src/tx/validator/error_texts.ts +1 -1
  564. package/src/update-checker/update-checker.ts +1 -1
  565. package/src/validators/schemas.ts +6 -4
  566. package/src/validators/types.ts +9 -10
  567. package/src/versioning/versioning.ts +20 -15
  568. package/src/world-state/index.ts +1 -0
  569. package/src/world-state/world_state_revision.ts +21 -0
  570. package/src/zkpassport/index.ts +42 -30
  571. package/dest/avm/public_data_hint.d.ts +0 -16
  572. package/dest/avm/public_data_hint.d.ts.map +0 -1
  573. package/dest/avm/public_data_hint.js +0 -27
  574. package/dest/interfaces/pxe.d.ts +0 -329
  575. package/dest/interfaces/pxe.d.ts.map +0 -1
  576. package/dest/interfaces/pxe.js +0 -100
  577. package/dest/logs/indexed_tagging_secret.d.ts +0 -28
  578. package/dest/logs/indexed_tagging_secret.d.ts.map +0 -1
  579. package/dest/logs/indexed_tagging_secret.js +0 -50
  580. package/dest/note/extended_note.d.ts +0 -111
  581. package/dest/note/extended_note.d.ts.map +0 -1
  582. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  583. package/dest/parity/root_parity_input.d.ts +0 -52
  584. package/dest/parity/root_parity_input.d.ts.map +0 -1
  585. package/dest/parity/root_parity_input.js +0 -50
  586. package/dest/parity/root_parity_inputs.d.ts +0 -37
  587. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  588. package/dest/proofs/client_ivc_proof.d.ts +0 -18
  589. package/dest/proofs/client_ivc_proof.d.ts.map +0 -1
  590. package/dest/proofs/client_ivc_proof.js +0 -41
  591. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  592. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  593. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
  594. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  595. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
  596. package/dest/rollup/block_root_rollup.d.ts +0 -283
  597. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  598. package/dest/rollup/block_root_rollup.js +0 -306
  599. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
  600. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  601. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
  602. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  603. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  604. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  605. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  606. package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
  607. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  608. package/dest/rollup/previous_rollup_block_data.js +0 -37
  609. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  610. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  611. package/dest/rollup/previous_rollup_data.js +0 -37
  612. package/dest/rollup/private_base_rollup_inputs.d.ts +0 -21
  613. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  614. package/dest/rollup/private_base_rollup_inputs.js +0 -44
  615. package/dest/rollup/private_tube_data.d.ts +0 -15
  616. package/dest/rollup/private_tube_data.d.ts.map +0 -1
  617. package/dest/rollup/private_tube_data.js +0 -25
  618. package/dest/rollup/public_base_rollup_inputs.d.ts +0 -23
  619. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  620. package/dest/rollup/public_base_rollup_inputs.js +0 -48
  621. package/dest/rollup/public_tube_data.d.ts +0 -15
  622. package/dest/rollup/public_tube_data.d.ts.map +0 -1
  623. package/dest/rollup/public_tube_data.js +0 -25
  624. package/dest/rollup/root_rollup.d.ts +0 -106
  625. package/dest/rollup/root_rollup.d.ts.map +0 -1
  626. package/dest/rollup/root_rollup.js +0 -147
  627. package/dest/rollup/state_diff_hints.d.ts.map +0 -1
  628. package/dest/rollup/state_diff_hints.js +0 -85
  629. package/dest/rollup/tube_inputs.d.ts +0 -43
  630. package/dest/rollup/tube_inputs.d.ts.map +0 -1
  631. package/dest/rollup/tube_inputs.js +0 -63
  632. package/dest/trees/protocol_contract_leaf.d.ts +0 -84
  633. package/dest/trees/protocol_contract_leaf.d.ts.map +0 -1
  634. package/dest/trees/protocol_contract_leaf.js +0 -100
  635. package/dest/tx/proposed_block_header.d.ts.map +0 -1
  636. package/src/avm/public_data_hint.ts +0 -38
  637. package/src/interfaces/pxe.ts +0 -532
  638. package/src/logs/indexed_tagging_secret.ts +0 -48
  639. package/src/parity/root_parity_input.ts +0 -71
  640. package/src/proofs/client_ivc_proof.ts +0 -51
  641. package/src/rollup/block_root_rollup.ts +0 -380
  642. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
  643. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  644. package/src/rollup/previous_rollup_block_data.ts +0 -48
  645. package/src/rollup/previous_rollup_data.ts +0 -48
  646. package/src/rollup/private_base_rollup_inputs.ts +0 -53
  647. package/src/rollup/private_tube_data.ts +0 -35
  648. package/src/rollup/public_base_rollup_inputs.ts +0 -59
  649. package/src/rollup/public_tube_data.ts +0 -35
  650. package/src/rollup/root_rollup.ts +0 -195
  651. package/src/rollup/tube_inputs.ts +0 -77
  652. package/src/trees/protocol_contract_leaf.ts +0 -128
@@ -6,13 +6,15 @@ 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 } from '../block/index.js';
9
+ import { CommitteeAttestation, L1PublishedData, L2BlockHeader } from '../block/index.js';
10
10
  import { L2Block } from '../block/l2_block.js';
11
- import type { PublishedL2Block } from '../block/published_l2_block.js';
11
+ import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
12
+ import { PublishedL2Block } from '../block/published_l2_block.js';
12
13
  import { computeContractAddressFromInstance } from '../contract/contract_address.js';
13
14
  import { getContractClassFromArtifact } from '../contract/contract_class.js';
14
15
  import { SerializableContractInstance } from '../contract/contract_instance.js';
15
16
  import type { ContractInstanceWithAddress } from '../contract/index.js';
17
+ import { Gas } from '../gas/gas.js';
16
18
  import { GasFees } from '../gas/gas_fees.js';
17
19
  import { GasSettings } from '../gas/gas_settings.js';
18
20
  import { Nullifier } from '../kernel/nullifier.js';
@@ -22,45 +24,22 @@ import {
22
24
  PrivateKernelTailCircuitPublicInputs,
23
25
  } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
24
26
  import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
25
- import { ExtendedNote, UniqueNote } from '../note/extended_note.js';
26
27
  import { Note } from '../note/note.js';
28
+ import { UniqueNote } from '../note/unique_note.js';
27
29
  import { BlockAttestation } from '../p2p/block_attestation.js';
28
30
  import { BlockProposal } from '../p2p/block_proposal.js';
29
31
  import { ConsensusPayload } from '../p2p/consensus_payload.js';
30
32
  import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
31
- import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
32
- import {
33
- BlockHeader,
34
- HashedValues,
35
- PrivateCallExecutionResult,
36
- PrivateExecutionResult,
37
- StateReference,
38
- Tx,
39
- } from '../tx/index.js';
33
+ import { ChonkProof } from '../proofs/chonk_proof.js';
34
+ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, StateReference, Tx } from '../tx/index.js';
40
35
  import { PublicSimulationOutput } from '../tx/public_simulation_output.js';
41
36
  import { TxSimulationResult, accumulatePrivateReturnValues } from '../tx/simulated_tx.js';
42
37
  import { TxEffect } from '../tx/tx_effect.js';
43
38
  import { TxHash } from '../tx/tx_hash.js';
44
- import { makeGas, makeGlobalVariables, makeHeader, makePublicCallRequest } from './factories.js';
39
+ import { makeGas, makeGlobalVariables, makeL2BlockHeader, makePublicCallRequest } from './factories.js';
45
40
 
46
41
  export const randomTxHash = (): TxHash => TxHash.random();
47
42
 
48
- export const randomExtendedNote = async ({
49
- note = Note.random(),
50
- recipient = undefined,
51
- contractAddress = undefined,
52
- txHash = randomTxHash(),
53
- storageSlot = Fr.random(),
54
- }: Partial<ExtendedNote> = {}) => {
55
- return new ExtendedNote(
56
- note,
57
- recipient ?? (await AztecAddress.random()),
58
- contractAddress ?? (await AztecAddress.random()),
59
- storageSlot,
60
- txHash,
61
- );
62
- };
63
-
64
43
  export const randomUniqueNote = async ({
65
44
  note = Note.random(),
66
45
  recipient = undefined,
@@ -88,12 +67,13 @@ export const mockTx = async (
88
67
  hasPublicTeardownCallRequest = false,
89
68
  publicCalldataSize = 2,
90
69
  feePayer,
91
- clientIvcProof = ClientIvcProof.empty(),
70
+ chonkProof = ChonkProof.random(),
92
71
  maxPriorityFeesPerGas,
72
+ gasUsed = Gas.empty(),
93
73
  chainId = Fr.ZERO,
94
74
  version = Fr.ZERO,
95
75
  vkTreeRoot = Fr.ZERO,
96
- protocolContractTreeRoot = Fr.ZERO,
76
+ protocolContractsHash = Fr.ZERO,
97
77
  }: {
98
78
  numberOfNonRevertiblePublicCallRequests?: number;
99
79
  numberOfRevertiblePublicCallRequests?: number;
@@ -101,12 +81,13 @@ export const mockTx = async (
101
81
  hasPublicTeardownCallRequest?: boolean;
102
82
  publicCalldataSize?: number;
103
83
  feePayer?: AztecAddress;
104
- clientIvcProof?: ClientIvcProof;
84
+ chonkProof?: ChonkProof;
105
85
  maxPriorityFeesPerGas?: GasFees;
86
+ gasUsed?: Gas;
106
87
  chainId?: Fr;
107
88
  version?: Fr;
108
89
  vkTreeRoot?: Fr;
109
- protocolContractTreeRoot?: Fr;
90
+ protocolContractsHash?: Fr;
110
91
  } = {},
111
92
  ) => {
112
93
  const totalPublicCallRequests =
@@ -115,16 +96,17 @@ export const mockTx = async (
115
96
  (hasPublicTeardownCallRequest ? 1 : 0);
116
97
  const isForPublic = totalPublicCallRequests > 0;
117
98
  const data = PrivateKernelTailCircuitPublicInputs.empty();
118
- const firstNullifier = new Nullifier(new Fr(seed + 1), 0, Fr.ZERO);
99
+ const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
119
100
  data.constants.txContext.gasSettings = GasSettings.default({
120
101
  maxFeesPerGas: new GasFees(10, 10),
121
102
  maxPriorityFeesPerGas,
122
103
  });
123
104
  data.feePayer = feePayer ?? (await AztecAddress.random());
105
+ data.gasUsed = gasUsed;
124
106
  data.constants.txContext.chainId = chainId;
125
107
  data.constants.txContext.version = version;
126
108
  data.constants.vkTreeRoot = vkTreeRoot;
127
- data.constants.protocolContractTreeRoot = protocolContractTreeRoot;
109
+ data.constants.protocolContractsHash = protocolContractsHash;
128
110
 
129
111
  // Set includeByTimestamp to the maximum allowed duration from the current time.
130
112
  data.includeByTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_INCLUDE_BY_TIMESTAMP_DURATION);
@@ -157,7 +139,7 @@ export const mockTx = async (
157
139
  .build();
158
140
 
159
141
  for (let i = 0; i < numberOfRevertibleNullifiers; i++) {
160
- 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);
161
143
  revertibleBuilder.pushNullifier(revertibleNullifier.value);
162
144
  }
163
145
 
@@ -168,7 +150,7 @@ export const mockTx = async (
168
150
 
169
151
  return await Tx.create({
170
152
  data,
171
- clientIvcProof,
153
+ chonkProof,
172
154
  contractClassLogFields: [],
173
155
  publicFunctionCalldata,
174
156
  });
@@ -190,6 +172,7 @@ const emptyPrivateCallExecutionResult = () =>
190
172
  [],
191
173
  [],
192
174
  [],
175
+ [],
193
176
  );
194
177
 
195
178
  const emptyPrivateExecutionResult = () => new PrivateExecutionResult(emptyPrivateCallExecutionResult(), Fr.zero(), []);
@@ -247,7 +230,9 @@ export const randomDeployedContract = async () => {
247
230
 
248
231
  export interface MakeConsensusPayloadOptions {
249
232
  signer?: Secp256k1Signer;
250
- header?: BlockHeader;
233
+ attesterSigner?: Secp256k1Signer;
234
+ proposerSigner?: Secp256k1Signer;
235
+ header?: L2BlockHeader;
251
236
  archive?: Fr;
252
237
  stateReference?: StateReference;
253
238
  txHashes?: TxHash[];
@@ -258,11 +243,11 @@ const makeAndSignConsensusPayload = (
258
243
  domainSeparator: SignatureDomainSeparator,
259
244
  options?: MakeConsensusPayloadOptions,
260
245
  ) => {
261
- const header = options?.header ?? makeHeader(1);
246
+ const header = options?.header ?? makeL2BlockHeader(1);
262
247
  const { signer = Secp256k1Signer.random(), archive = Fr.random(), stateReference = header.state } = options ?? {};
263
248
 
264
249
  const payload = ConsensusPayload.fromFields({
265
- header: header.toPropose(),
250
+ header: header.toCheckpointHeader(),
266
251
  archive,
267
252
  stateReference,
268
253
  });
@@ -273,32 +258,77 @@ const makeAndSignConsensusPayload = (
273
258
  return { blockNumber: header.globalVariables.blockNumber, payload, signature };
274
259
  };
275
260
 
276
- export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockProposal => {
277
- const { blockNumber, payload, signature } = makeAndSignConsensusPayload(
278
- SignatureDomainSeparator.blockProposal,
279
- options,
261
+ export const makeAndSignCommitteeAttestationsAndSigners = (
262
+ attestationsAndSigners: CommitteeAttestationsAndSigners,
263
+ signer: Secp256k1Signer = Secp256k1Signer.random(),
264
+ ) => {
265
+ const hash = getHashedSignaturePayloadEthSignedMessage(
266
+ attestationsAndSigners,
267
+ SignatureDomainSeparator.attestationsAndSigners,
280
268
  );
269
+ return signer.sign(hash);
270
+ };
271
+
272
+ export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockProposal => {
273
+ const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockProposal, options);
281
274
  const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
282
- return new BlockProposal(blockNumber, payload, signature, txHashes, options?.txs ?? []);
275
+ return new BlockProposal(payload, signature, txHashes, options?.txs ?? []);
283
276
  };
284
277
 
285
278
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
286
279
  export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): BlockAttestation => {
287
- const { blockNumber, payload, signature } = makeAndSignConsensusPayload(
288
- SignatureDomainSeparator.blockAttestation,
289
- options,
290
- );
291
- 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);
292
304
  };
293
305
 
294
- export const makeBlockAttestationFromBlock = (block: L2Block, signer?: Secp256k1Signer): BlockAttestation => {
295
- return makeBlockAttestation({
296
- signer,
297
- header: block.header,
298
- archive: block.archive.root,
299
- stateReference: block.header.state,
300
- 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,
301
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);
302
332
  };
303
333
 
304
334
  export async function randomPublishedL2Block(
@@ -306,16 +336,16 @@ export async function randomPublishedL2Block(
306
336
  opts: { signers?: Secp256k1Signer[] } = {},
307
337
  ): Promise<PublishedL2Block> {
308
338
  const block = await L2Block.random(l2BlockNumber);
309
- const l1 = {
339
+ const l1 = L1PublishedData.fromFields({
310
340
  blockNumber: BigInt(block.number),
311
341
  timestamp: block.header.globalVariables.timestamp,
312
342
  blockHash: Buffer32.random().toString(),
313
- };
343
+ });
314
344
 
315
345
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
316
346
  const atts = await Promise.all(signers.map(signer => makeBlockAttestationFromBlock(block, signer)));
317
347
  const attestations = atts.map(
318
348
  (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
319
349
  );
320
- return { block, l1, attestations };
350
+ return new PublishedL2Block(block, l1, attestations);
321
351
  }
@@ -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
  }
@@ -75,6 +75,10 @@ export class ContentCommitment {
75
75
  return new ContentCommitment(reader.readField(), reader.readField(), reader.readField());
76
76
  }
77
77
 
78
+ static random(): ContentCommitment {
79
+ return new ContentCommitment(Fr.random(), Fr.random(), Fr.random());
80
+ }
81
+
78
82
  static empty(): ContentCommitment {
79
83
  return new ContentCommitment(Fr.zero(), Fr.zero(), Fr.zero());
80
84
  }
@@ -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';
@@ -64,6 +64,14 @@ export class PartialStateReference {
64
64
  );
65
65
  }
66
66
 
67
+ static random(): PartialStateReference {
68
+ return new PartialStateReference(
69
+ AppendOnlyTreeSnapshot.random(),
70
+ AppendOnlyTreeSnapshot.random(),
71
+ AppendOnlyTreeSnapshot.random(),
72
+ );
73
+ }
74
+
67
75
  toViem(): ViemPartialStateReference {
68
76
  return {
69
77
  noteHashTree: this.noteHashTree.toViem(),
@@ -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
+ }