@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
@@ -1,22 +1,13 @@
1
+ import { decodeTxStartMarker, encodeTxStartMarker, isValidTxStartMarker } from '@aztec/blob-lib/encoding';
1
2
  import {
2
- CONTRACT_CLASS_LOGS_PREFIX,
3
- L2_L1_MSGS_PREFIX,
4
3
  MAX_CONTRACT_CLASS_LOGS_PER_TX,
5
4
  MAX_L2_TO_L1_MSGS_PER_TX,
6
5
  MAX_NOTE_HASHES_PER_TX,
7
6
  MAX_NULLIFIERS_PER_TX,
8
7
  MAX_PRIVATE_LOGS_PER_TX,
9
8
  MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
10
- NOTES_PREFIX,
11
- NULLIFIERS_PREFIX,
12
- PRIVATE_LOGS_PREFIX,
13
- PUBLIC_DATA_UPDATE_REQUESTS_PREFIX,
14
- PUBLIC_LOGS_PREFIX,
15
- REVERT_CODE_PREFIX,
16
- TX_FEE_PREFIX,
17
9
  } from '@aztec/constants';
18
10
  import { type FieldsOf, makeTuple, makeTupleAsync } from '@aztec/foundation/array';
19
- import { toBufferBE } from '@aztec/foundation/bigint-buffer';
20
11
  import { Fr } from '@aztec/foundation/fields';
21
12
  import { type ZodFor, schemas } from '@aztec/foundation/schemas';
22
13
  import {
@@ -35,16 +26,9 @@ import { PublicDataWrite } from '../avm/public_data_write.js';
35
26
  import { RevertCode } from '../avm/revert_code.js';
36
27
  import { ContractClassLog } from '../logs/contract_class_log.js';
37
28
  import { PrivateLog } from '../logs/private_log.js';
38
- import { PublicLog } from '../logs/public_log.js';
29
+ import { FlatPublicLogs, PublicLog } from '../logs/public_log.js';
39
30
  import { TxHash } from './tx_hash.js';
40
31
 
41
- // This will appear as 0x74785f7374617274 in logs
42
- export const TX_START_PREFIX = 8392562855083340404n;
43
- // These are helper constants to decode tx effects from blob encoded fields
44
- export const TX_START_PREFIX_BYTES_LENGTH = TX_START_PREFIX.toString(16).length / 2;
45
- // 7 bytes for: | 0 | txlen[0] | txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revertCode |
46
- export const TX_EFFECT_PREFIX_BYTE_LENGTH = TX_START_PREFIX_BYTES_LENGTH + 7;
47
-
48
32
  export class TxEffect {
49
33
  constructor(
50
34
  /**
@@ -149,7 +133,7 @@ export class TxEffect {
149
133
  serializeArrayOfBufferableToVector(this.l2ToL1Msgs, 1),
150
134
  serializeArrayOfBufferableToVector(this.publicDataWrites, 1),
151
135
  serializeArrayOfBufferableToVector(this.privateLogs, 1),
152
- serializeArrayOfBufferableToVector(this.publicLogs, 1),
136
+ serializeArrayOfBufferableToVector(this.publicLogs, 4),
153
137
  serializeArrayOfBufferableToVector(this.contractClassLogs, 1),
154
138
  ]);
155
139
  }
@@ -198,7 +182,7 @@ export class TxEffect {
198
182
  reader.readVectorUint8Prefix(Fr),
199
183
  reader.readVectorUint8Prefix(PublicDataWrite),
200
184
  reader.readVectorUint8Prefix(PrivateLog),
201
- reader.readVectorUint8Prefix(PublicLog),
185
+ reader.readVector(PublicLog),
202
186
  reader.readVectorUint8Prefix(ContractClassLog),
203
187
  );
204
188
  }
@@ -244,7 +228,7 @@ export class TxEffect {
244
228
  PublicDataWrite.random,
245
229
  ),
246
230
  makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => PrivateLog.random()),
247
- await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async () => await PublicLog.random()),
231
+ await Promise.all(new Array(numPublicCallsPerTx * numPublicLogsPerCall).fill(null).map(() => PublicLog.random())),
248
232
  await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random),
249
233
  );
250
234
  }
@@ -253,223 +237,90 @@ export class TxEffect {
253
237
  return new TxEffect(RevertCode.OK, TxHash.zero(), Fr.ZERO, [], [], [], [], [], [], []);
254
238
  }
255
239
 
256
- isEmpty(): boolean {
257
- return this.nullifiers.length === 0;
258
- }
259
-
260
240
  /** Returns a hex representation of the TxEffect object. */
261
241
  toString() {
262
242
  return bufferToHex(this.toBuffer());
263
243
  }
264
244
 
265
245
  /**
266
- * Returns the prefix as used in a blob.
267
- * Used to prefix a 'block' of tx effects with its type and length.
268
- */
269
- private toPrefix(type: number, length: number): Fr {
270
- const buf = Buffer.alloc(4);
271
- buf.writeUint8(type);
272
- buf.writeUInt16BE(length, 2);
273
- return new Fr(buf);
274
- }
275
-
276
- /**
277
- * Decodes the prefix as used in a blob to tx effect type and length.
278
- */
279
- static fromPrefix(prefix: Fr) {
280
- const buf = prefix.toBuffer().subarray(-4);
281
- return { type: buf[0], length: new Fr(buf.subarray(-2)).toNumber() };
282
- }
283
-
284
- /**
285
- * Encodes the first field of a tx effect as used in a blob:
286
- * TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
287
- */
288
- private encodeFirstField(length: number, revertCode: RevertCode) {
289
- const lengthBuf = Buffer.alloc(2);
290
- lengthBuf.writeUInt16BE(length, 0);
291
- return new Fr(
292
- Buffer.concat([
293
- toBufferBE(TX_START_PREFIX, TX_START_PREFIX_BYTES_LENGTH),
294
- Buffer.alloc(1),
295
- lengthBuf,
296
- Buffer.alloc(1),
297
- Buffer.from([REVERT_CODE_PREFIX]),
298
- Buffer.alloc(1),
299
- revertCode.toBuffer(),
300
- ]),
301
- );
302
- }
303
-
304
- /**
305
- * Decodes the first field of a tx effect as used in a blob:
306
- * TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
307
- * Assumes that isFirstField has been called already.
308
- */
309
- static decodeFirstField(field: Fr) {
310
- const buf = field.toBuffer().subarray(-TX_EFFECT_PREFIX_BYTE_LENGTH);
311
- return {
312
- length: new Fr(buf.subarray(TX_START_PREFIX_BYTES_LENGTH + 1, TX_START_PREFIX_BYTES_LENGTH + 3)).toNumber(),
313
- revertCode: buf[buf.length - 1],
314
- };
315
- }
316
-
317
- /**
318
- * Determines whether a field is the first field of a tx effect
319
- */
320
- static isFirstField(field: Fr) {
321
- const buf = field.toBuffer();
322
- if (
323
- !buf
324
- .subarray(0, field.size - TX_EFFECT_PREFIX_BYTE_LENGTH)
325
- .equals(Buffer.alloc(field.size - TX_EFFECT_PREFIX_BYTE_LENGTH))
326
- ) {
327
- return false;
328
- }
329
- const sliced = buf.subarray(-TX_EFFECT_PREFIX_BYTE_LENGTH);
330
- if (
331
- // Checking we start with the correct prefix...
332
- !new Fr(sliced.subarray(0, TX_START_PREFIX_BYTES_LENGTH)).equals(new Fr(TX_START_PREFIX)) ||
333
- // ...and include the revert code prefix..
334
- sliced[sliced.length - 3] !== REVERT_CODE_PREFIX ||
335
- // ...and the following revert code is valid.
336
- sliced[sliced.length - 1] > 4
337
- ) {
338
- return false;
339
- }
340
- return true;
341
- }
342
-
343
- /**
344
- * Returns a flat packed array of prefixed fields of all tx effects, used for blobs.
246
+ * Returns a flat packed array of fields of all tx effects, to be appended to blobs.
247
+ * Must match the implementation in noir-protocol-circuits/crates/rollup-lib/src/tx_base/components/tx_blob_data.nr
345
248
  */
346
249
  toBlobFields(): Fr[] {
347
- if (this.isEmpty()) {
348
- return [];
349
- }
350
250
  const flattened: Fr[] = [];
351
- // We reassign the first field when we know the length of all effects - see below
251
+
252
+ // We reassign the first field at the end when we know the length of all effects to create the tx start marker.
352
253
  flattened.push(Fr.ZERO);
353
254
 
354
255
  flattened.push(this.txHash.hash);
355
- // TODO: how long should tx fee be? For now, not using toPrefix()
356
- flattened.push(
357
- new Fr(
358
- Buffer.concat([Buffer.from([TX_FEE_PREFIX]), Buffer.alloc(1), this.transactionFee.toBuffer().subarray(3)]),
359
- ),
360
- );
361
- if (this.noteHashes.length) {
362
- flattened.push(this.toPrefix(NOTES_PREFIX, this.noteHashes.length));
363
- flattened.push(...this.noteHashes);
364
- }
365
- if (this.nullifiers.length) {
366
- flattened.push(this.toPrefix(NULLIFIERS_PREFIX, this.nullifiers.length));
367
- flattened.push(...this.nullifiers);
368
- }
369
- if (this.l2ToL1Msgs.length) {
370
- flattened.push(this.toPrefix(L2_L1_MSGS_PREFIX, this.l2ToL1Msgs.length));
371
- flattened.push(...this.l2ToL1Msgs);
372
- }
373
- if (this.publicDataWrites.length) {
374
- flattened.push(this.toPrefix(PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, this.publicDataWrites.length));
375
- flattened.push(...this.publicDataWrites.flatMap(w => w.toBlobFields()));
376
- }
377
- if (this.privateLogs.length) {
378
- flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, this.privateLogs.length));
379
- flattened.push(...this.privateLogs.flatMap(l => l.toBlobFields()));
380
- }
381
- if (this.publicLogs.length) {
382
- flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, this.publicLogs.length));
383
- flattened.push(...this.publicLogs.flatMap(l => l.toBlobFields()));
384
- }
385
- if (this.contractClassLogs.length) {
386
- flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, this.contractClassLogs.length));
387
- flattened.push(...this.contractClassLogs.flatMap(l => l.toBlobFields()));
388
- }
256
+ flattened.push(this.transactionFee);
257
+ flattened.push(...this.noteHashes);
258
+ flattened.push(...this.nullifiers);
259
+ flattened.push(...this.l2ToL1Msgs);
260
+ flattened.push(...this.publicDataWrites.flatMap(w => w.toBlobFields()));
261
+ flattened.push(...this.privateLogs.flatMap(l => l.toBlobFields()));
262
+ const flattenedPublicLogs = FlatPublicLogs.fromLogs(this.publicLogs);
263
+ flattened.push(...flattenedPublicLogs.toBlobFields());
264
+ flattened.push(...this.contractClassLogs.flatMap(l => l.toBlobFields()));
265
+
266
+ flattened[0] = encodeTxStartMarker({
267
+ revertCode: this.revertCode.getCode(),
268
+ numBlobFields: flattened.length,
269
+ numNoteHashes: this.noteHashes.length,
270
+ numNullifiers: this.nullifiers.length,
271
+ numL2ToL1Msgs: this.l2ToL1Msgs.length,
272
+ numPublicDataWrites: this.publicDataWrites.length,
273
+ numPrivateLogs: this.privateLogs.length,
274
+ publicLogsLength: flattenedPublicLogs.length,
275
+ contractClassLogLength: this.contractClassLogs[0]?.emittedLength ?? 0,
276
+ });
389
277
 
390
- // The first value appended to each list of fields representing a tx effect is:
391
- // TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
392
- // Tx start and len are to aid decomposing/ identifying when we reach a new tx effect
393
- // The remaining bytes are used for revert code, since that only requires 3 bytes
394
- flattened[0] = this.encodeFirstField(flattened.length, this.revertCode);
395
278
  return flattened;
396
279
  }
397
280
 
398
281
  /**
399
- * Decodes a flat packed array of prefixed fields to TxEffect
282
+ * Decodes a flat packed array of fields to TxEffect.
400
283
  */
401
284
  static fromBlobFields(fields: Fr[] | FieldReader) {
402
- const ensureEmpty = <T>(arr: Array<T>) => {
403
- if (arr.length) {
404
- throw new Error('Invalid fields given to TxEffect.fromBlobFields(): Attempted to assign property twice.');
405
- }
406
- };
407
-
408
- const effect = this.empty();
409
285
  const reader = FieldReader.asReader(fields);
410
286
  const totalFields = reader.remainingFields();
411
287
  if (!totalFields) {
412
- return effect;
288
+ throw new Error('Cannot process empty blob fields.');
413
289
  }
414
290
 
415
- const firstField = reader.readField();
416
- if (!this.isFirstField(firstField)) {
417
- throw new Error('Invalid fields given to TxEffect.fromBlobFields(): First field invalid.');
291
+ const txStartMarker = decodeTxStartMarker(reader.readField());
292
+ if (!isValidTxStartMarker(txStartMarker)) {
293
+ throw new Error('Invalid fields given to TxEffect.fromBlobFields(): invalid TxStartMarker');
418
294
  }
419
295
 
420
- const { length: fieldsToProcess, revertCode } = this.decodeFirstField(firstField);
421
- effect.revertCode = RevertCode.fromField(new Fr(revertCode));
422
-
423
- effect.txHash = new TxHash(reader.readField());
424
- // TODO: how long should tx fee be? For now, not using fromPrefix()
425
- const prefixedFee = reader.readField();
426
- // NB: Fr.fromBuffer hangs here if you provide a buffer less than 32 in len
427
- // todo: try new Fr(prefixedFee.toBuffer().subarray(3))
428
- effect.transactionFee = Fr.fromBuffer(Buffer.concat([Buffer.alloc(3), prefixedFee.toBuffer().subarray(3)]));
429
-
430
- let fieldsProcessed = totalFields - reader.remainingFields();
431
- while (fieldsProcessed < fieldsToProcess) {
432
- const { type, length } = this.fromPrefix(reader.readField());
433
- switch (type) {
434
- case NOTES_PREFIX:
435
- ensureEmpty(effect.noteHashes);
436
- effect.noteHashes = reader.readFieldArray(length);
437
- break;
438
- case NULLIFIERS_PREFIX:
439
- ensureEmpty(effect.nullifiers);
440
- effect.nullifiers = reader.readFieldArray(length);
441
- break;
442
- case L2_L1_MSGS_PREFIX:
443
- ensureEmpty(effect.l2ToL1Msgs);
444
- effect.l2ToL1Msgs = reader.readFieldArray(length);
445
- break;
446
- case PUBLIC_DATA_UPDATE_REQUESTS_PREFIX: {
447
- ensureEmpty(effect.publicDataWrites);
448
- effect.publicDataWrites = Array.from({ length }, () => PublicDataWrite.fromBlobFields(reader));
449
- break;
450
- }
451
- case PRIVATE_LOGS_PREFIX: {
452
- ensureEmpty(effect.privateLogs);
453
- effect.privateLogs = Array.from({ length }, () => PrivateLog.fromBlobFields(reader));
454
- break;
455
- }
456
- case PUBLIC_LOGS_PREFIX: {
457
- ensureEmpty(effect.publicLogs);
458
- effect.publicLogs = Array.from({ length }, () => PublicLog.fromBlobFields(reader));
459
- break;
460
- }
461
- case CONTRACT_CLASS_LOGS_PREFIX: {
462
- ensureEmpty(effect.contractClassLogs);
463
- effect.contractClassLogs = Array.from({ length }, () => ContractClassLog.fromBlobFields(reader));
464
- break;
465
- }
466
- case REVERT_CODE_PREFIX:
467
- default:
468
- throw new Error(`Too many fields to decode given to TxEffect.fromBlobFields()`);
469
- }
470
- fieldsProcessed = totalFields - reader.remainingFields();
471
- }
472
- return effect;
296
+ const revertCode = RevertCode.fromField(new Fr(txStartMarker.revertCode));
297
+ const txHash = new TxHash(reader.readField());
298
+ const transactionFee = reader.readField();
299
+ const noteHashes = reader.readFieldArray(txStartMarker.numNoteHashes);
300
+ const nullifiers = reader.readFieldArray(txStartMarker.numNullifiers);
301
+ const l2ToL1Msgs = reader.readFieldArray(txStartMarker.numL2ToL1Msgs);
302
+ const publicDataWrites = Array.from({ length: txStartMarker.numPublicDataWrites }, () =>
303
+ PublicDataWrite.fromBlobFields(reader),
304
+ );
305
+ const privateLogs = Array.from({ length: txStartMarker.numPrivateLogs }, () => PrivateLog.fromBlobFields(reader));
306
+ const publicLogs = FlatPublicLogs.fromBlobFields(txStartMarker.publicLogsLength, reader).toLogs();
307
+ const contractClassLogs =
308
+ txStartMarker.contractClassLogLength > 0
309
+ ? [ContractClassLog.fromBlobFields(txStartMarker.contractClassLogLength, reader)]
310
+ : [];
311
+
312
+ return TxEffect.from({
313
+ revertCode,
314
+ txHash,
315
+ transactionFee,
316
+ noteHashes,
317
+ nullifiers,
318
+ l2ToL1Msgs,
319
+ publicDataWrites,
320
+ privateLogs,
321
+ publicLogs,
322
+ contractClassLogs,
323
+ });
473
324
  }
474
325
 
475
326
  static from(fields: FieldsOf<TxEffect>) {
@@ -514,7 +365,7 @@ export class TxEffect {
514
365
  l2ToL1Msgs: [${this.l2ToL1Msgs.map(h => h.toString()).join(', ')}],
515
366
  publicDataWrites: [${this.publicDataWrites.map(h => h.toString()).join(', ')}],
516
367
  privateLogs: [${this.privateLogs.map(l => l.fields.map(f => f.toString()).join(',')).join(', ')}],
517
- publicLogs: [${this.publicLogs.map(l => l.fields.map(f => f.toString()).join(',')).join(', ')}],
368
+ publicLogs: ${inspect(this.publicLogs)},
518
369
  contractClassLogs: [${this.contractClassLogs
519
370
  .map(l =>
520
371
  l
@@ -16,7 +16,7 @@ export const TX_ERROR_INVALID_INCLUDE_BY_TIMESTAMP = 'Invalid expiration timesta
16
16
  export const TX_ERROR_INCORRECT_L1_CHAIN_ID = 'Incorrect L1 chain id';
17
17
  export const TX_ERROR_INCORRECT_ROLLUP_VERSION = 'Incorrect rollup version';
18
18
  export const TX_ERROR_INCORRECT_VK_TREE_ROOT = 'Incorrect verification keys tree root';
19
- export const TX_ERROR_INCORRECT_PROTOCOL_CONTRACT_TREE_ROOT = 'Incorrect protocol contracts tree root';
19
+ export const TX_ERROR_INCORRECT_PROTOCOL_CONTRACTS_HASH = 'Incorrect protocol contracts hash';
20
20
 
21
21
  // Proof
22
22
  export const TX_ERROR_INVALID_PROOF = 'Invalid proof';
@@ -43,7 +43,7 @@ export class UpdateChecker extends EventEmitter<EventMap> {
43
43
  private rollupVersion: bigint,
44
44
  private fetch: typeof globalThis.fetch,
45
45
  private getLatestRollupVersion: () => Promise<bigint>,
46
- private checkIntervalMs = 60_000, // every minute
46
+ private checkIntervalMs = 10 * 60_000, // every 10 mins
47
47
  private log = createLogger('foundation:update-check'),
48
48
  ) {
49
49
  super();
@@ -4,6 +4,7 @@ import { z } from 'zod';
4
4
 
5
5
  import type {
6
6
  SingleValidatorStats,
7
+ ValidatorMissedStats,
7
8
  ValidatorStats,
8
9
  ValidatorStatusHistory,
9
10
  ValidatorStatusInSlot,
@@ -35,19 +36,20 @@ const ValidatorTimeStatSchema = z.object({
35
36
  date: z.string(),
36
37
  });
37
38
 
38
- const ValidatorFilteredHistorySchema = z.object({
39
+ const ValidatorMissedStatsSchema = z.object({
39
40
  currentStreak: schemas.Integer,
40
41
  rate: z.number().optional(),
41
42
  count: schemas.Integer,
42
- });
43
+ total: schemas.Integer,
44
+ }) satisfies ZodFor<ValidatorMissedStats>;
43
45
 
44
46
  export const ValidatorStatsSchema = z.object({
45
47
  address: schemas.EthAddress,
46
48
  lastProposal: ValidatorTimeStatSchema.optional(),
47
49
  lastAttestation: ValidatorTimeStatSchema.optional(),
48
50
  totalSlots: schemas.Integer,
49
- missedProposals: ValidatorFilteredHistorySchema,
50
- missedAttestations: ValidatorFilteredHistorySchema,
51
+ missedProposals: ValidatorMissedStatsSchema,
52
+ missedAttestations: ValidatorMissedStatsSchema,
51
53
  history: ValidatorStatusHistorySchema,
52
54
  }) satisfies ZodFor<ValidatorStats>;
53
55
 
@@ -11,21 +11,20 @@ export type ValidatorStatusInSlot =
11
11
 
12
12
  export type ValidatorStatusHistory = { slot: bigint; status: ValidatorStatusInSlot }[];
13
13
 
14
+ export type ValidatorMissedStats = {
15
+ currentStreak: number;
16
+ rate?: number;
17
+ count: number;
18
+ total: number;
19
+ };
20
+
14
21
  export type ValidatorStats = {
15
22
  address: EthAddress;
16
23
  lastProposal?: { timestamp: bigint; slot: bigint; date: string };
17
24
  lastAttestation?: { timestamp: bigint; slot: bigint; date: string };
18
25
  totalSlots: number;
19
- missedProposals: {
20
- currentStreak: number;
21
- rate?: number;
22
- count: number;
23
- };
24
- missedAttestations: {
25
- currentStreak: number;
26
- rate?: number;
27
- count: number;
28
- };
26
+ missedProposals: ValidatorMissedStats;
27
+ missedAttestations: ValidatorMissedStats;
29
28
  history: ValidatorStatusHistory;
30
29
  };
31
30
 
@@ -14,21 +14,21 @@ export type ComponentsVersions = {
14
14
  // such as the keystore, we need to change it so we can handle updates.
15
15
  l1RollupAddress: EthAddress;
16
16
  rollupVersion: number;
17
- l2ProtocolContractsTreeRoot: string;
17
+ l2ProtocolContractsHash: string;
18
18
  l2CircuitsVkTreeRoot: string;
19
19
  };
20
20
 
21
21
  /** Returns components versions from chain config. */
22
22
  export function getComponentsVersionsFromConfig(
23
23
  config: ChainConfig,
24
- l2ProtocolContractsTreeRoot: string | Fr,
24
+ l2ProtocolContractsHash: string | Fr,
25
25
  l2CircuitsVkTreeRoot: string | Fr,
26
26
  ): ComponentsVersions {
27
27
  return {
28
28
  l1ChainId: config.l1ChainId,
29
29
  l1RollupAddress: config.l1Contracts?.rollupAddress, // This should not be undefined, but sometimes the config lies to us and it is...
30
30
  rollupVersion: config.rollupVersion,
31
- l2ProtocolContractsTreeRoot: l2ProtocolContractsTreeRoot.toString(),
31
+ l2ProtocolContractsHash: l2ProtocolContractsHash.toString(),
32
32
  l2CircuitsVkTreeRoot: l2CircuitsVkTreeRoot.toString(),
33
33
  };
34
34
  }
@@ -37,7 +37,7 @@ export function getComponentsVersionsFromConfig(
37
37
  export function compressComponentVersions(versions: ComponentsVersions): string {
38
38
  if (
39
39
  versions.l1RollupAddress === undefined ||
40
- versions.l2ProtocolContractsTreeRoot === undefined ||
40
+ versions.l2ProtocolContractsHash === undefined ||
41
41
  versions.l2CircuitsVkTreeRoot === undefined
42
42
  ) {
43
43
  throw new Error(`Component versions are not set: ${jsonStringify(versions)}`);
@@ -48,7 +48,7 @@ export function compressComponentVersions(versions: ComponentsVersions): string
48
48
  versions.l1ChainId,
49
49
  versions.l1RollupAddress.toString().slice(2, 10),
50
50
  versions.rollupVersion,
51
- versions.l2ProtocolContractsTreeRoot.toString().slice(2, 10),
51
+ versions.l2ProtocolContractsHash.toString().slice(2, 10),
52
52
  versions.l2CircuitsVkTreeRoot.toString().slice(2, 10),
53
53
  ].join('-');
54
54
  }
@@ -62,7 +62,7 @@ export class ComponentsVersionsError extends Error {
62
62
 
63
63
  /** Checks if the compressed string matches against the expected versions. Throws on mismatch. */
64
64
  export function checkCompressedComponentVersion(compressed: string, expected: ComponentsVersions) {
65
- const [versionVersion, l1ChainId, l1RollupAddress, rollupVersion, l2ProtocolContractsTreeRoot, l2CircuitsVkTreeRoot] =
65
+ const [versionVersion, l1ChainId, l1RollupAddress, rollupVersion, l2ProtocolContractsHash, l2CircuitsVkTreeRoot] =
66
66
  compressed.split('-');
67
67
  if (versionVersion !== '00') {
68
68
  throw new ComponentsVersionsError('version', '00', versionVersion);
@@ -76,11 +76,11 @@ export function checkCompressedComponentVersion(compressed: string, expected: Co
76
76
  if (rollupVersion !== expected.rollupVersion.toString()) {
77
77
  throw new ComponentsVersionsError('L2 chain version', expected.rollupVersion.toString(), rollupVersion);
78
78
  }
79
- if (l2ProtocolContractsTreeRoot !== expected.l2ProtocolContractsTreeRoot.toString().slice(2, 10)) {
79
+ if (l2ProtocolContractsHash !== expected.l2ProtocolContractsHash.toString().slice(2, 10)) {
80
80
  throw new ComponentsVersionsError(
81
81
  `L2 protocol contracts vk tree root`,
82
- expected.l2ProtocolContractsTreeRoot.toString(),
83
- l2ProtocolContractsTreeRoot,
82
+ expected.l2ProtocolContractsHash.toString(),
83
+ l2ProtocolContractsHash,
84
84
  );
85
85
  }
86
86
  if (l2CircuitsVkTreeRoot !== expected.l2CircuitsVkTreeRoot.toString().slice(2, 10)) {
@@ -99,7 +99,7 @@ export function validatePartialComponentVersionsMatch(
99
99
  ) {
100
100
  for (const key of [
101
101
  'l1RollupAddress',
102
- 'l2ProtocolContractsTreeRoot',
102
+ 'l2ProtocolContractsHash',
103
103
  'l2CircuitsVkTreeRoot',
104
104
  'l1ChainId',
105
105
  'rollupVersion',
@@ -117,11 +117,16 @@ export function validatePartialComponentVersionsMatch(
117
117
  /** Returns a Koa middleware that injects the versioning info as headers. */
118
118
  export function getVersioningMiddleware(versions: Partial<ComponentsVersions>) {
119
119
  return async (ctx: Koa.Context, next: () => Promise<void>) => {
120
- await next();
121
- for (const key in versions) {
122
- const value = versions[key as keyof ComponentsVersions];
123
- if (value !== undefined) {
124
- ctx.set(`x-aztec-${key}`, value.toString());
120
+ try {
121
+ await next();
122
+ } finally {
123
+ // Always add version headers, even if there was an error
124
+ // This allows the client to detect version mismatches before processing other errors
125
+ for (const key in versions) {
126
+ const value = versions[key as keyof ComponentsVersions];
127
+ if (value !== undefined) {
128
+ ctx.set(`x-aztec-${key}`, value.toString());
129
+ }
125
130
  }
126
131
  }
127
132
  };
@@ -0,0 +1 @@
1
+ export * from './world_state_revision.js';
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+
3
+ export class WorldStateRevision {
4
+ constructor(
5
+ public readonly forkId: number,
6
+ public readonly blockNumber: number,
7
+ public readonly includeUncommitted: boolean,
8
+ ) {}
9
+
10
+ static empty() {
11
+ return new WorldStateRevision(0, 0, false);
12
+ }
13
+
14
+ static get schema() {
15
+ return z.object({
16
+ forkId: z.number(),
17
+ blockNumber: z.number(),
18
+ includeUncommitted: z.boolean(),
19
+ });
20
+ }
21
+ }