@aztec/stdlib 1.2.0 → 2.0.0-nightly.20250813

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 (324) hide show
  1. package/dest/abi/abi.d.ts +0 -67
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +1 -14
  4. package/dest/abi/authorization_selector.d.ts +52 -0
  5. package/dest/abi/authorization_selector.d.ts.map +1 -0
  6. package/dest/abi/authorization_selector.js +70 -0
  7. package/dest/abi/contract_artifact.d.ts.map +1 -1
  8. package/dest/abi/contract_artifact.js +0 -40
  9. package/dest/abi/decoder.d.ts.map +1 -1
  10. package/dest/abi/decoder.js +3 -6
  11. package/dest/abi/index.d.ts +1 -0
  12. package/dest/abi/index.d.ts.map +1 -1
  13. package/dest/abi/index.js +1 -0
  14. package/dest/avm/avm.d.ts +278 -412
  15. package/dest/avm/avm.d.ts.map +1 -1
  16. package/dest/avm/avm.js +12 -12
  17. package/dest/avm/avm_proving_request.d.ts +160 -186
  18. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  19. package/dest/block/l2_block.d.ts +8 -0
  20. package/dest/block/l2_block.d.ts.map +1 -1
  21. package/dest/block/l2_block.js +9 -0
  22. package/dest/block/l2_block_source.d.ts +446 -2
  23. package/dest/block/l2_block_source.d.ts.map +1 -1
  24. package/dest/block/l2_block_source.js +29 -0
  25. package/dest/block/proposal/committee_attestation.d.ts +3 -1
  26. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  27. package/dest/block/proposal/committee_attestation.js +3 -0
  28. package/dest/block/published_l2_block.d.ts +2 -1
  29. package/dest/block/published_l2_block.d.ts.map +1 -1
  30. package/dest/block/published_l2_block.js +6 -1
  31. package/dest/contract/contract_instance.d.ts +3 -3
  32. package/dest/contract/contract_instance.d.ts.map +1 -1
  33. package/dest/contract/contract_instance.js +3 -3
  34. package/dest/contract/interfaces/contract_class.d.ts +2 -2
  35. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +9 -9
  36. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  37. package/dest/contract/interfaces/protocol_contract_addresses.js +4 -4
  38. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  39. package/dest/contract/private_function_membership_proof.js +1 -1
  40. package/dest/contract/utility_function_membership_proof.d.ts +1 -1
  41. package/dest/contract/utility_function_membership_proof.js +1 -1
  42. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +20 -0
  43. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -0
  44. package/dest/{shared_mutable/shared_mutable_values.js → delayed_public_mutable/delayed_public_mutable_values.js} +9 -9
  45. package/dest/{shared_mutable/shared_mutable_values_with_hash.d.ts → delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts} +6 -6
  46. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -0
  47. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.js +30 -0
  48. package/dest/delayed_public_mutable/index.d.ts +5 -0
  49. package/dest/delayed_public_mutable/index.d.ts.map +1 -0
  50. package/dest/delayed_public_mutable/index.js +4 -0
  51. package/dest/delayed_public_mutable/scheduled_delay_change.d.ts.map +1 -0
  52. package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -0
  53. package/dest/gas/gas.d.ts +1 -0
  54. package/dest/gas/gas.d.ts.map +1 -1
  55. package/dest/gas/gas.js +3 -0
  56. package/dest/hash/hash.d.ts.map +1 -1
  57. package/dest/hash/hash.js +1 -4
  58. package/dest/interfaces/archiver.d.ts.map +1 -1
  59. package/dest/interfaces/archiver.js +4 -2
  60. package/dest/interfaces/aztec-node-admin.d.ts +211 -8
  61. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  62. package/dest/interfaces/aztec-node-admin.js +9 -3
  63. package/dest/interfaces/configs.d.ts +27 -0
  64. package/dest/interfaces/configs.d.ts.map +1 -1
  65. package/dest/interfaces/configs.js +6 -1
  66. package/dest/interfaces/get_logs_response.d.ts +1 -1
  67. package/dest/interfaces/proving-job.d.ts +166 -192
  68. package/dest/interfaces/proving-job.d.ts.map +1 -1
  69. package/dest/interfaces/pxe.d.ts +3 -1
  70. package/dest/interfaces/pxe.d.ts.map +1 -1
  71. package/dest/interfaces/pxe.js +1 -1
  72. package/dest/interfaces/server.d.ts +4 -2
  73. package/dest/interfaces/server.d.ts.map +1 -1
  74. package/dest/interfaces/server.js +4 -2
  75. package/dest/interfaces/slasher.d.ts +86 -0
  76. package/dest/interfaces/slasher.d.ts.map +1 -0
  77. package/dest/interfaces/slasher.js +23 -0
  78. package/dest/interfaces/tx_provider.d.ts +24 -0
  79. package/dest/interfaces/tx_provider.d.ts.map +1 -0
  80. package/dest/kernel/claimed_length_array.d.ts +34 -0
  81. package/dest/kernel/claimed_length_array.d.ts.map +1 -0
  82. package/dest/kernel/claimed_length_array.js +58 -0
  83. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -6
  84. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  85. package/dest/kernel/hints/build_note_hash_read_request_hints.js +18 -20
  86. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +7 -10
  87. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  88. package/dest/kernel/hints/build_nullifier_read_request_hints.js +17 -32
  89. package/dest/kernel/hints/build_transient_data_hints.d.ts +4 -3
  90. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  91. package/dest/kernel/hints/build_transient_data_hints.js +9 -10
  92. package/dest/kernel/hints/index.d.ts +1 -2
  93. package/dest/kernel/hints/index.d.ts.map +1 -1
  94. package/dest/kernel/hints/index.js +1 -2
  95. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  96. package/dest/kernel/hints/note_hash_read_request_hints.js +4 -4
  97. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  98. package/dest/kernel/hints/nullifier_read_request_hints.js +4 -4
  99. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +5 -5
  100. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  101. package/dest/kernel/hints/private_kernel_reset_hints.js +9 -9
  102. package/dest/kernel/hints/read_request_hints.d.ts +17 -17
  103. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  104. package/dest/kernel/hints/read_request_hints.js +28 -28
  105. package/dest/kernel/hints/{transient_data_index_hint.d.ts → transient_data_squashing_hint.d.ts} +5 -5
  106. package/dest/kernel/hints/transient_data_squashing_hint.d.ts.map +1 -0
  107. package/dest/kernel/hints/{transient_data_index_hint.js → transient_data_squashing_hint.js} +5 -5
  108. package/dest/kernel/index.d.ts +1 -0
  109. package/dest/kernel/index.d.ts.map +1 -1
  110. package/dest/kernel/index.js +1 -0
  111. package/dest/kernel/private_accumulated_data.d.ts +16 -15
  112. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  113. package/dest/kernel/private_accumulated_data.js +3 -3
  114. package/dest/kernel/private_call_data.d.ts +4 -4
  115. package/dest/kernel/private_call_data.d.ts.map +1 -1
  116. package/dest/kernel/private_call_data.js +2 -2
  117. package/dest/kernel/private_circuit_public_inputs.d.ts +26 -25
  118. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  119. package/dest/kernel/private_circuit_public_inputs.js +33 -15
  120. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +9 -0
  121. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  122. package/dest/kernel/private_kernel_circuit_public_inputs.js +8 -4
  123. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  124. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  125. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +9 -6
  126. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +11 -4
  127. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  128. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +20 -18
  129. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +4 -4
  130. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  131. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +9 -10
  132. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +11 -11
  133. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  134. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +11 -12
  135. package/dest/kernel/private_validation_requests.d.ts +8 -20
  136. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  137. package/dest/kernel/private_validation_requests.js +9 -21
  138. package/dest/kernel/utils/order_and_comparison.d.ts +0 -3
  139. package/dest/kernel/utils/order_and_comparison.d.ts.map +1 -1
  140. package/dest/kernel/utils/order_and_comparison.js +0 -19
  141. package/dest/logs/extended_public_log.d.ts +1 -1
  142. package/dest/logs/shared_secret_derivation.d.ts +1 -1
  143. package/dest/logs/shared_secret_derivation.js +1 -1
  144. package/dest/messaging/l2_to_l1_membership.d.ts +4 -1
  145. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  146. package/dest/messaging/l2_to_l1_membership.js +49 -54
  147. package/dest/messaging/l2_to_l1_message.d.ts +2 -0
  148. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  149. package/dest/messaging/l2_to_l1_message.js +7 -0
  150. package/dest/note/notes_filter.d.ts +5 -2
  151. package/dest/note/notes_filter.d.ts.map +1 -1
  152. package/dest/note/notes_filter.js +1 -1
  153. package/dest/p2p/attestation_utils.d.ts +10 -0
  154. package/dest/p2p/attestation_utils.d.ts.map +1 -0
  155. package/dest/p2p/attestation_utils.js +21 -0
  156. package/dest/p2p/block_attestation.d.ts +3 -4
  157. package/dest/p2p/block_attestation.d.ts.map +1 -1
  158. package/dest/p2p/block_attestation.js +3 -4
  159. package/dest/p2p/block_proposal.d.ts +8 -1
  160. package/dest/p2p/block_proposal.d.ts.map +1 -1
  161. package/dest/p2p/block_proposal.js +21 -8
  162. package/dest/p2p/consensus_payload.d.ts +3 -11
  163. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  164. package/dest/p2p/consensus_payload.js +13 -22
  165. package/dest/p2p/index.d.ts +1 -0
  166. package/dest/p2p/index.d.ts.map +1 -1
  167. package/dest/p2p/index.js +1 -0
  168. package/dest/p2p/topic_type.d.ts.map +1 -1
  169. package/dest/p2p/topic_type.js +5 -3
  170. package/dest/rollup/block_root_rollup.d.ts +1 -1
  171. package/dest/slashing/index.d.ts +51 -0
  172. package/dest/slashing/index.d.ts.map +1 -0
  173. package/dest/slashing/index.js +54 -0
  174. package/dest/stats/stats.d.ts +2 -2
  175. package/dest/stats/stats.d.ts.map +1 -1
  176. package/dest/tests/factories.d.ts +0 -2
  177. package/dest/tests/factories.d.ts.map +1 -1
  178. package/dest/tests/factories.js +25 -24
  179. package/dest/tests/mocks.d.ts +2 -0
  180. package/dest/tests/mocks.d.ts.map +1 -1
  181. package/dest/tests/mocks.js +31 -22
  182. package/dest/tx/index.d.ts +0 -1
  183. package/dest/tx/index.d.ts.map +1 -1
  184. package/dest/tx/index.js +0 -1
  185. package/dest/tx/private_execution_result.d.ts +2 -2
  186. package/dest/tx/private_execution_result.d.ts.map +1 -1
  187. package/dest/tx/private_execution_result.js +11 -11
  188. package/dest/tx/processed_tx.d.ts +2 -2
  189. package/dest/tx/processed_tx.d.ts.map +1 -1
  190. package/dest/tx/processed_tx.js +4 -4
  191. package/dest/tx/proven_tx.d.ts +1 -1
  192. package/dest/tx/proven_tx.d.ts.map +1 -1
  193. package/dest/tx/proven_tx.js +7 -3
  194. package/dest/tx/simulated_tx.d.ts +11 -17
  195. package/dest/tx/simulated_tx.d.ts.map +1 -1
  196. package/dest/tx/simulated_tx.js +12 -12
  197. package/dest/tx/tx.d.ts +25 -25
  198. package/dest/tx/tx.d.ts.map +1 -1
  199. package/dest/tx/tx.js +60 -48
  200. package/dest/tx/tx_effect.d.ts +2 -2
  201. package/dest/tx/tx_effect.d.ts.map +1 -1
  202. package/dest/tx/tx_effect.js +3 -18
  203. package/dest/tx/tx_execution_request.js +2 -2
  204. package/dest/tx/tx_hash.d.ts +7 -0
  205. package/dest/tx/tx_hash.d.ts.map +1 -1
  206. package/dest/tx/tx_hash.js +19 -1
  207. package/dest/tx/tx_request.d.ts +5 -5
  208. package/dest/tx/tx_request.d.ts.map +1 -1
  209. package/dest/tx/tx_request.js +7 -7
  210. package/dest/tx/validator/error_texts.d.ts +1 -0
  211. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  212. package/dest/tx/validator/error_texts.js +1 -0
  213. package/dest/tx/validator/tx_validator.d.ts +6 -4
  214. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  215. package/dest/tx/validator/tx_validator.js +3 -0
  216. package/dest/versioning/versioning.d.ts.map +1 -1
  217. package/dest/vks/verification_key.d.ts.map +1 -1
  218. package/dest/vks/verification_key.js +4 -4
  219. package/package.json +10 -9
  220. package/src/abi/abi.ts +0 -38
  221. package/src/abi/authorization_selector.ts +95 -0
  222. package/src/abi/contract_artifact.ts +0 -49
  223. package/src/abi/decoder.ts +3 -6
  224. package/src/abi/index.ts +1 -0
  225. package/src/avm/avm.ts +7 -9
  226. package/src/block/l2_block.ts +18 -0
  227. package/src/block/l2_block_source.ts +70 -1
  228. package/src/block/proposal/committee_attestation.ts +5 -1
  229. package/src/block/published_l2_block.ts +14 -5
  230. package/src/contract/contract_instance.ts +3 -3
  231. package/src/contract/interfaces/protocol_contract_addresses.ts +5 -10
  232. package/src/contract/private_function_membership_proof.ts +1 -1
  233. package/src/contract/utility_function_membership_proof.ts +1 -1
  234. package/src/{shared_mutable/shared_mutable_values.ts → delayed_public_mutable/delayed_public_mutable_values.ts} +10 -10
  235. package/src/delayed_public_mutable/delayed_public_mutable_values_with_hash.ts +38 -0
  236. package/src/delayed_public_mutable/index.ts +4 -0
  237. package/src/gas/gas.ts +4 -0
  238. package/src/hash/hash.ts +1 -4
  239. package/src/interfaces/archiver.ts +3 -1
  240. package/src/interfaces/aztec-node-admin.ts +19 -8
  241. package/src/interfaces/configs.ts +17 -0
  242. package/src/interfaces/pxe.ts +4 -2
  243. package/src/interfaces/server.ts +4 -2
  244. package/src/interfaces/slasher.ts +49 -0
  245. package/src/interfaces/tx_provider.ts +16 -0
  246. package/src/kernel/claimed_length_array.ts +104 -0
  247. package/src/kernel/hints/build_note_hash_read_request_hints.ts +28 -30
  248. package/src/kernel/hints/build_nullifier_read_request_hints.ts +28 -59
  249. package/src/kernel/hints/build_transient_data_hints.ts +12 -14
  250. package/src/kernel/hints/index.ts +1 -2
  251. package/src/kernel/hints/note_hash_read_request_hints.ts +4 -16
  252. package/src/kernel/hints/nullifier_read_request_hints.ts +4 -16
  253. package/src/kernel/hints/private_kernel_reset_hints.ts +7 -7
  254. package/src/kernel/hints/read_request_hints.ts +22 -22
  255. package/src/kernel/hints/{transient_data_index_hint.ts → transient_data_squashing_hint.ts} +5 -5
  256. package/src/kernel/index.ts +1 -0
  257. package/src/kernel/private_accumulated_data.ts +23 -23
  258. package/src/kernel/private_call_data.ts +3 -3
  259. package/src/kernel/private_circuit_public_inputs.ts +92 -68
  260. package/src/kernel/private_kernel_circuit_public_inputs.ts +9 -1
  261. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +13 -4
  262. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +20 -20
  263. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +7 -7
  264. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +16 -10
  265. package/src/kernel/private_validation_requests.ts +19 -50
  266. package/src/kernel/utils/order_and_comparison.ts +0 -25
  267. package/src/logs/shared_secret_derivation.ts +1 -1
  268. package/src/messaging/l2_to_l1_membership.ts +76 -85
  269. package/src/messaging/l2_to_l1_message.ts +9 -0
  270. package/src/note/notes_filter.ts +6 -3
  271. package/src/p2p/attestation_utils.ts +35 -0
  272. package/src/p2p/block_attestation.ts +3 -4
  273. package/src/p2p/block_proposal.ts +23 -5
  274. package/src/p2p/consensus_payload.ts +10 -29
  275. package/src/p2p/index.ts +1 -0
  276. package/src/p2p/topic_type.ts +3 -1
  277. package/src/slashing/index.ts +74 -0
  278. package/src/stats/stats.ts +2 -2
  279. package/src/tests/factories.ts +37 -27
  280. package/src/tests/mocks.ts +24 -22
  281. package/src/tx/index.ts +0 -1
  282. package/src/tx/private_execution_result.ts +11 -9
  283. package/src/tx/processed_tx.ts +6 -6
  284. package/src/tx/proven_tx.ts +7 -8
  285. package/src/tx/simulated_tx.ts +13 -19
  286. package/src/tx/tx.ts +70 -57
  287. package/src/tx/tx_effect.ts +5 -20
  288. package/src/tx/tx_execution_request.ts +2 -2
  289. package/src/tx/tx_hash.ts +21 -1
  290. package/src/tx/tx_request.ts +7 -6
  291. package/src/tx/validator/error_texts.ts +1 -0
  292. package/src/tx/validator/tx_validator.ts +5 -0
  293. package/src/versioning/versioning.ts +0 -3
  294. package/src/vks/verification_key.ts +4 -7
  295. package/dest/interfaces/tx-collector.d.ts +0 -15
  296. package/dest/interfaces/tx-collector.d.ts.map +0 -1
  297. package/dest/kernel/hints/rollup_validation_requests.d.ts +0 -34
  298. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +0 -1
  299. package/dest/kernel/hints/rollup_validation_requests.js +0 -55
  300. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +0 -1
  301. package/dest/shared_mutable/index.d.ts +0 -5
  302. package/dest/shared_mutable/index.d.ts.map +0 -1
  303. package/dest/shared_mutable/index.js +0 -4
  304. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +0 -1
  305. package/dest/shared_mutable/scheduled_value_change.d.ts.map +0 -1
  306. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -20
  307. package/dest/shared_mutable/shared_mutable_values.d.ts.map +0 -1
  308. package/dest/shared_mutable/shared_mutable_values_with_hash.d.ts.map +0 -1
  309. package/dest/shared_mutable/shared_mutable_values_with_hash.js +0 -30
  310. package/dest/tx/include_by_timestamp.d.ts +0 -54
  311. package/dest/tx/include_by_timestamp.d.ts.map +0 -1
  312. package/dest/tx/include_by_timestamp.js +0 -72
  313. package/src/interfaces/tx-collector.ts +0 -17
  314. package/src/kernel/hints/rollup_validation_requests.ts +0 -71
  315. package/src/shared_mutable/index.ts +0 -4
  316. package/src/shared_mutable/shared_mutable_values_with_hash.ts +0 -38
  317. package/src/tx/include_by_timestamp.ts +0 -90
  318. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.d.ts +0 -0
  319. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.js +0 -0
  320. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.d.ts +0 -0
  321. /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.js +0 -0
  322. /package/dest/interfaces/{tx-collector.js → tx_provider.js} +0 -0
  323. /package/src/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.ts +0 -0
  324. /package/src/{shared_mutable → delayed_public_mutable}/scheduled_value_change.ts +0 -0
@@ -2,37 +2,37 @@ import { makeTuple } from '@aztec/foundation/array';
2
2
  import { BufferReader, type Bufferable, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import { MembershipWitness } from '@aztec/foundation/trees';
4
4
 
5
- export enum ReadRequestState {
6
- NADA = 0,
7
- PENDING = 1,
8
- SETTLED = 2,
5
+ export enum ReadRequestActionEnum {
6
+ SKIP = 0,
7
+ READ_AS_PENDING = 1,
8
+ READ_AS_SETTLED = 2,
9
9
  }
10
10
 
11
- export class ReadRequestStatus {
11
+ export class ReadRequestAction {
12
12
  constructor(
13
- public state: ReadRequestState,
13
+ public action: ReadRequestActionEnum,
14
14
  public hintIndex: number,
15
15
  ) {}
16
16
 
17
- static nada() {
18
- return new ReadRequestStatus(ReadRequestState.NADA, 0);
17
+ static skip() {
18
+ return new ReadRequestAction(ReadRequestActionEnum.SKIP, 0);
19
19
  }
20
20
 
21
- static pending(hintIndex: number) {
22
- return new ReadRequestStatus(ReadRequestState.PENDING, hintIndex);
21
+ static readAsPending(hintIndex: number) {
22
+ return new ReadRequestAction(ReadRequestActionEnum.READ_AS_PENDING, hintIndex);
23
23
  }
24
24
 
25
- static settled(hintIndex: number) {
26
- return new ReadRequestStatus(ReadRequestState.SETTLED, hintIndex);
25
+ static readAsSettled(hintIndex: number) {
26
+ return new ReadRequestAction(ReadRequestActionEnum.READ_AS_SETTLED, hintIndex);
27
27
  }
28
28
 
29
29
  static fromBuffer(buffer: Buffer | BufferReader) {
30
30
  const reader = BufferReader.asReader(buffer);
31
- return new ReadRequestStatus(reader.readNumber(), reader.readNumber());
31
+ return new ReadRequestAction(reader.readNumber(), reader.readNumber());
32
32
  }
33
33
 
34
34
  toBuffer() {
35
- return serializeToBuffer(this.state, this.hintIndex);
35
+ return serializeToBuffer(this.action, this.hintIndex);
36
36
  }
37
37
  }
38
38
 
@@ -100,7 +100,7 @@ export class ReadRequestResetHints<
100
100
  LEAF_PREIMAGE extends Bufferable,
101
101
  > {
102
102
  constructor(
103
- public readRequestStatuses: Tuple<ReadRequestStatus, READ_REQUEST_LEN>,
103
+ public readRequestActions: Tuple<ReadRequestAction, READ_REQUEST_LEN>,
104
104
  /**
105
105
  * The hints for read requests reading pending values.
106
106
  */
@@ -122,7 +122,7 @@ export class ReadRequestResetHints<
122
122
  LEAF_PREIMAGE
123
123
  > {
124
124
  return new ReadRequestResetHints(
125
- this.readRequestStatuses,
125
+ this.readRequestActions,
126
126
  this.pendingReadHints.slice(0, numPendingReads) as Tuple<PendingReadHint, NEW_PENDING_READ_HINTS_LEN>,
127
127
  this.settledReadHints.slice(0, numSettledReads) as Tuple<
128
128
  SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>,
@@ -158,7 +158,7 @@ export class ReadRequestResetHints<
158
158
  > {
159
159
  const reader = BufferReader.asReader(buffer);
160
160
  return new ReadRequestResetHints(
161
- reader.readArray(readRequestLen, ReadRequestStatus),
161
+ reader.readArray(readRequestLen, ReadRequestAction),
162
162
  reader.readArray(numPendingReads, PendingReadHint),
163
163
  reader.readArray(numSettledReads, {
164
164
  fromBuffer: r => SettledReadHint.fromBuffer(r, treeHeight, leafPreimageFromBuffer),
@@ -167,19 +167,19 @@ export class ReadRequestResetHints<
167
167
  }
168
168
 
169
169
  toBuffer() {
170
- return serializeToBuffer(this.readRequestStatuses, this.pendingReadHints, this.settledReadHints);
170
+ return serializeToBuffer(this.readRequestActions, this.pendingReadHints, this.settledReadHints);
171
171
  }
172
172
  }
173
173
 
174
- export class ReadRequestResetStates<NUM_READS extends number> {
174
+ export class ReadRequestResetActions<NUM_READS extends number> {
175
175
  constructor(
176
- public states: Tuple<ReadRequestState, NUM_READS>,
176
+ public actions: Tuple<ReadRequestActionEnum, NUM_READS>,
177
177
  public pendingReadHints: PendingReadHint[],
178
178
  ) {}
179
179
 
180
180
  static empty<NUM_READS extends number>(numReads: NUM_READS) {
181
- return new ReadRequestResetStates(
182
- makeTuple(numReads, () => ReadRequestState.NADA),
181
+ return new ReadRequestResetActions(
182
+ makeTuple(numReads, () => ReadRequestActionEnum.SKIP),
183
183
  [],
184
184
  );
185
185
  }
@@ -3,7 +3,7 @@ import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/
3
3
 
4
4
  import { inspect } from 'util';
5
5
 
6
- export class TransientDataIndexHint {
6
+ export class TransientDataSquashingHint {
7
7
  constructor(
8
8
  public nullifierIndex: number,
9
9
  public noteHashIndex: number,
@@ -15,7 +15,7 @@ export class TransientDataIndexHint {
15
15
 
16
16
  static fromFields(fields: Fr[] | FieldReader) {
17
17
  const reader = FieldReader.asReader(fields);
18
- return new TransientDataIndexHint(reader.readU32(), reader.readU32());
18
+ return new TransientDataSquashingHint(reader.readU32(), reader.readU32());
19
19
  }
20
20
 
21
21
  isEmpty() {
@@ -23,7 +23,7 @@ export class TransientDataIndexHint {
23
23
  }
24
24
 
25
25
  static empty() {
26
- return new TransientDataIndexHint(0, 0);
26
+ return new TransientDataSquashingHint(0, 0);
27
27
  }
28
28
 
29
29
  toBuffer(): Buffer {
@@ -32,7 +32,7 @@ export class TransientDataIndexHint {
32
32
 
33
33
  static fromBuffer(buffer: Buffer | BufferReader) {
34
34
  const reader = BufferReader.asReader(buffer);
35
- return new TransientDataIndexHint(reader.readNumber(), reader.readNumber());
35
+ return new TransientDataSquashingHint(reader.readNumber(), reader.readNumber());
36
36
  }
37
37
 
38
38
  toString(): string {
@@ -40,6 +40,6 @@ export class TransientDataIndexHint {
40
40
  }
41
41
 
42
42
  [inspect.custom](): string {
43
- return `TransientDataIndexHint { ${this.toString()} }`;
43
+ return `TransientDataSquashingHint { ${this.toString()} }`;
44
44
  }
45
45
  }
@@ -1,3 +1,4 @@
1
+ export * from './claimed_length_array.js';
1
2
  export * from './private_to_rollup_accumulated_data.js';
2
3
  export * from './private_to_rollup_kernel_circuit_public_inputs.js';
3
4
  export * from './private_accumulated_data.js';
@@ -7,11 +7,11 @@ import {
7
7
  MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX,
8
8
  MAX_PRIVATE_LOGS_PER_TX,
9
9
  } from '@aztec/constants';
10
- import { makeTuple } from '@aztec/foundation/array';
11
- import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
10
+ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
12
11
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
13
12
 
14
13
  import { ScopedCountedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
14
+ import { ClaimedLengthArray, ClaimedLengthArrayFromBuffer } from './claimed_length_array.js';
15
15
  import { ScopedCountedLogHash } from './log_hash.js';
16
16
  import { ScopedNoteHash } from './note_hash.js';
17
17
  import { ScopedNullifier } from './nullifier.js';
@@ -28,32 +28,32 @@ export class PrivateAccumulatedData {
28
28
  /**
29
29
  * The new note hashes made in this transaction.
30
30
  */
31
- public noteHashes: Tuple<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>,
31
+ public noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>,
32
32
  /**
33
33
  * The new nullifiers made in this transaction.
34
34
  */
35
- public nullifiers: Tuple<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>,
35
+ public nullifiers: ClaimedLengthArray<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>,
36
36
  /**
37
37
  * All the new L2 to L1 messages created in this transaction.
38
38
  */
39
- public l2ToL1Msgs: Tuple<ScopedCountedL2ToL1Message, typeof MAX_L2_TO_L1_MSGS_PER_TX>,
39
+ public l2ToL1Msgs: ClaimedLengthArray<ScopedCountedL2ToL1Message, typeof MAX_L2_TO_L1_MSGS_PER_TX>,
40
40
  /**
41
41
  * Accumulated logs from all the previous kernel iterations.
42
42
  */
43
- public privateLogs: Tuple<ScopedPrivateLogData, typeof MAX_PRIVATE_LOGS_PER_TX>,
43
+ public privateLogs: ClaimedLengthArray<ScopedPrivateLogData, typeof MAX_PRIVATE_LOGS_PER_TX>,
44
44
  /**
45
45
  * Accumulated contract class logs from all the previous kernel iterations.
46
46
  * Note: Truncated to 31 bytes to fit in Fr.
47
47
  */
48
- public contractClassLogsHashes: Tuple<ScopedCountedLogHash, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
48
+ public contractClassLogsHashes: ClaimedLengthArray<ScopedCountedLogHash, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
49
49
  /**
50
50
  * Accumulated public call requests from all the previous kernel iterations.
51
51
  */
52
- public publicCallRequests: Tuple<CountedPublicCallRequest, typeof MAX_ENQUEUED_CALLS_PER_TX>,
52
+ public publicCallRequests: ClaimedLengthArray<CountedPublicCallRequest, typeof MAX_ENQUEUED_CALLS_PER_TX>,
53
53
  /**
54
54
  * Current private call stack.
55
55
  */
56
- public privateCallStack: Tuple<PrivateCallRequest, typeof MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX>,
56
+ public privateCallStack: ClaimedLengthArray<PrivateCallRequest, typeof MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX>,
57
57
  ) {}
58
58
 
59
59
  toBuffer() {
@@ -80,13 +80,13 @@ export class PrivateAccumulatedData {
80
80
  static fromBuffer(buffer: Buffer | BufferReader): PrivateAccumulatedData {
81
81
  const reader = BufferReader.asReader(buffer);
82
82
  return new PrivateAccumulatedData(
83
- reader.readArray(MAX_NOTE_HASHES_PER_TX, ScopedNoteHash),
84
- reader.readArray(MAX_NULLIFIERS_PER_TX, ScopedNullifier),
85
- reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedCountedL2ToL1Message),
86
- reader.readArray(MAX_PRIVATE_LOGS_PER_TX, ScopedPrivateLogData),
87
- reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, ScopedCountedLogHash),
88
- reader.readArray(MAX_ENQUEUED_CALLS_PER_TX, CountedPublicCallRequest),
89
- reader.readArray(MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX, PrivateCallRequest),
83
+ reader.readObject(ClaimedLengthArrayFromBuffer(ScopedNoteHash, MAX_NOTE_HASHES_PER_TX)),
84
+ reader.readObject(ClaimedLengthArrayFromBuffer(ScopedNullifier, MAX_NULLIFIERS_PER_TX)),
85
+ reader.readObject(ClaimedLengthArrayFromBuffer(ScopedCountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_TX)),
86
+ reader.readObject(ClaimedLengthArrayFromBuffer(ScopedPrivateLogData, MAX_PRIVATE_LOGS_PER_TX)),
87
+ reader.readObject(ClaimedLengthArrayFromBuffer(ScopedCountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_TX)),
88
+ reader.readObject(ClaimedLengthArrayFromBuffer(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_TX)),
89
+ reader.readObject(ClaimedLengthArrayFromBuffer(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX)),
90
90
  );
91
91
  }
92
92
 
@@ -101,13 +101,13 @@ export class PrivateAccumulatedData {
101
101
 
102
102
  static empty() {
103
103
  return new PrivateAccumulatedData(
104
- makeTuple(MAX_NOTE_HASHES_PER_TX, ScopedNoteHash.empty),
105
- makeTuple(MAX_NULLIFIERS_PER_TX, ScopedNullifier.empty),
106
- makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, ScopedCountedL2ToL1Message.empty),
107
- makeTuple(MAX_PRIVATE_LOGS_PER_TX, ScopedPrivateLogData.empty),
108
- makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ScopedCountedLogHash.empty),
109
- makeTuple(MAX_ENQUEUED_CALLS_PER_TX, CountedPublicCallRequest.empty),
110
- makeTuple(MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX, PrivateCallRequest.empty),
104
+ ClaimedLengthArray.empty(ScopedNoteHash, MAX_NOTE_HASHES_PER_TX),
105
+ ClaimedLengthArray.empty(ScopedNullifier, MAX_NULLIFIERS_PER_TX),
106
+ ClaimedLengthArray.empty(ScopedCountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_TX),
107
+ ClaimedLengthArray.empty(ScopedPrivateLogData, MAX_PRIVATE_LOGS_PER_TX),
108
+ ClaimedLengthArray.empty(ScopedCountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_TX),
109
+ ClaimedLengthArray.empty(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_TX),
110
+ ClaimedLengthArray.empty(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX),
111
111
  );
112
112
  }
113
113
  }
@@ -9,8 +9,8 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
9
9
  import { MembershipWitness } from '@aztec/foundation/trees';
10
10
  import type { FieldsOf } from '@aztec/foundation/types';
11
11
 
12
+ import { DelayedPublicMutableValues } from '../delayed_public_mutable/delayed_public_mutable_values.js';
12
13
  import { PublicKeys } from '../keys/public_keys.js';
13
- import { SharedMutableValues } from '../shared_mutable/shared_mutable_values.js';
14
14
  import { ProtocolContractLeafPreimage, PublicDataTreeLeafPreimage } from '../trees/index.js';
15
15
  import { VerificationKeyAsFields } from '../vks/verification_key.js';
16
16
  import { PrivateCircuitPublicInputs } from './private_circuit_public_inputs.js';
@@ -162,7 +162,7 @@ export class UpdatedClassIdHints {
162
162
  constructor(
163
163
  public updatedClassIdWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>,
164
164
  public updatedClassIdLeaf: PublicDataTreeLeafPreimage,
165
- public updatedClassIdValues: SharedMutableValues,
165
+ public updatedClassIdValues: DelayedPublicMutableValues,
166
166
  ) {}
167
167
 
168
168
  static getFields(fields: FieldsOf<UpdatedClassIdHints>) {
@@ -193,7 +193,7 @@ export class UpdatedClassIdHints {
193
193
  reader.readObject(PublicDataTreeLeafPreimage),
194
194
  reader.readObject({
195
195
  fromBuffer(reader) {
196
- return SharedMutableValues.fromBuffer(reader, UPDATES_VALUE_SIZE);
196
+ return DelayedPublicMutableValues.fromBuffer(reader, UPDATES_VALUE_SIZE);
197
197
  },
198
198
  }),
199
199
  );
@@ -9,15 +9,13 @@ import {
9
9
  MAX_NULLIFIER_READ_REQUESTS_PER_CALL,
10
10
  MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,
11
11
  MAX_PRIVATE_LOGS_PER_CALL,
12
- PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,
13
12
  } from '@aztec/constants';
14
- import { makeTuple } from '@aztec/foundation/array';
15
13
  import { Fr } from '@aztec/foundation/fields';
16
14
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
17
15
  import {
18
16
  BufferReader,
19
17
  FieldReader,
20
- type Tuple,
18
+ bigintToUInt64BE,
21
19
  serializeToBuffer,
22
20
  serializeToFields,
23
21
  } from '@aztec/foundation/serialize';
@@ -30,13 +28,17 @@ import { PrivateLogData } from '../kernel/private_log_data.js';
30
28
  import { CountedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
31
29
  import { BlockHeader } from '../tx/block_header.js';
32
30
  import { CallContext } from '../tx/call_context.js';
33
- import { IncludeByTimestamp } from '../tx/include_by_timestamp.js';
34
31
  import { TxContext } from '../tx/tx_context.js';
32
+ import type { UInt64 } from '../types/shared.js';
33
+ import {
34
+ ClaimedLengthArray,
35
+ ClaimedLengthArrayFromBuffer,
36
+ ClaimedLengthArrayFromFields,
37
+ } from './claimed_length_array.js';
35
38
  import { ReadRequest } from './hints/read_request.js';
36
39
  import { NoteHash } from './note_hash.js';
37
40
  import { Nullifier } from './nullifier.js';
38
41
  import { CountedPublicCallRequest, PublicCallRequest } from './public_call_request.js';
39
- import { isEmptyArray } from './utils/order_and_comparison.js';
40
42
 
41
43
  /**
42
44
  * Public inputs to a private circuit.
@@ -66,38 +68,38 @@ export class PrivateCircuitPublicInputs {
66
68
  /**
67
69
  * The highest timestamp of a block in which the transaction can still be included.
68
70
  */
69
- public includeByTimestamp: IncludeByTimestamp,
71
+ public includeByTimestamp: UInt64,
70
72
  /**
71
73
  * Read requests created by the corresponding function call.
72
74
  */
73
- public noteHashReadRequests: Tuple<ReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,
75
+ public noteHashReadRequests: ClaimedLengthArray<ReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,
74
76
  /**
75
77
  * Nullifier read requests created by the corresponding function call.
76
78
  */
77
- public nullifierReadRequests: Tuple<ReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,
79
+ public nullifierReadRequests: ClaimedLengthArray<ReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,
78
80
  /**
79
81
  * Key validation requests and generators created by the corresponding function call.
80
82
  */
81
- public keyValidationRequestsAndGenerators: Tuple<
83
+ public keyValidationRequestsAndGenerators: ClaimedLengthArray<
82
84
  KeyValidationRequestAndGenerator,
83
85
  typeof MAX_KEY_VALIDATION_REQUESTS_PER_CALL
84
86
  >,
85
87
  /**
86
88
  * New note hashes created by the corresponding function call.
87
89
  */
88
- public noteHashes: Tuple<NoteHash, typeof MAX_NOTE_HASHES_PER_CALL>,
90
+ public noteHashes: ClaimedLengthArray<NoteHash, typeof MAX_NOTE_HASHES_PER_CALL>,
89
91
  /**
90
92
  * New nullifiers created by the corresponding function call.
91
93
  */
92
- public nullifiers: Tuple<Nullifier, typeof MAX_NULLIFIERS_PER_CALL>,
94
+ public nullifiers: ClaimedLengthArray<Nullifier, typeof MAX_NULLIFIERS_PER_CALL>,
93
95
  /**
94
96
  * Private call requests made within the current kernel iteration.
95
97
  */
96
- public privateCallRequests: Tuple<PrivateCallRequest, typeof MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,
98
+ public privateCallRequests: ClaimedLengthArray<PrivateCallRequest, typeof MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,
97
99
  /**
98
100
  * Public call stack at the current kernel iteration.
99
101
  */
100
- public publicCallRequests: Tuple<CountedPublicCallRequest, typeof MAX_ENQUEUED_CALLS_PER_CALL>,
102
+ public publicCallRequests: ClaimedLengthArray<CountedPublicCallRequest, typeof MAX_ENQUEUED_CALLS_PER_CALL>,
101
103
  /**
102
104
  * Hash of the public teardown function.
103
105
  */
@@ -105,15 +107,15 @@ export class PrivateCircuitPublicInputs {
105
107
  /**
106
108
  * New L2 to L1 messages created by the corresponding function call.
107
109
  */
108
- public l2ToL1Msgs: Tuple<CountedL2ToL1Message, typeof MAX_L2_TO_L1_MSGS_PER_CALL>,
110
+ public l2ToL1Msgs: ClaimedLengthArray<CountedL2ToL1Message, typeof MAX_L2_TO_L1_MSGS_PER_CALL>,
109
111
  /**
110
112
  * Logs emitted in this function call.
111
113
  */
112
- public privateLogs: Tuple<PrivateLogData, typeof MAX_PRIVATE_LOGS_PER_CALL>,
114
+ public privateLogs: ClaimedLengthArray<PrivateLogData, typeof MAX_PRIVATE_LOGS_PER_CALL>,
113
115
  /**
114
116
  * Hash of the contract class logs emitted in this function call.
115
117
  */
116
- public contractClassLogsHashes: Tuple<CountedLogHash, typeof MAX_CONTRACT_CLASS_LOGS_PER_CALL>,
118
+ public contractClassLogsHashes: ClaimedLengthArray<CountedLogHash, typeof MAX_CONTRACT_CLASS_LOGS_PER_CALL>,
117
119
  /**
118
120
  * The side effect counter at the start of this call.
119
121
  */
@@ -158,18 +160,20 @@ export class PrivateCircuitPublicInputs {
158
160
  reader.readObject(Fr),
159
161
  reader.readObject(Fr),
160
162
  reader.readBoolean(),
161
- reader.readObject(IncludeByTimestamp),
162
- reader.readArray(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, ReadRequest),
163
- reader.readArray(MAX_NULLIFIER_READ_REQUESTS_PER_CALL, ReadRequest),
164
- reader.readArray(MAX_KEY_VALIDATION_REQUESTS_PER_CALL, KeyValidationRequestAndGenerator),
165
- reader.readArray(MAX_NOTE_HASHES_PER_CALL, NoteHash),
166
- reader.readArray(MAX_NULLIFIERS_PER_CALL, Nullifier),
167
- reader.readArray(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, PrivateCallRequest),
168
- reader.readArray(MAX_ENQUEUED_CALLS_PER_CALL, CountedPublicCallRequest),
163
+ reader.readUInt64(),
164
+ reader.readObject(ClaimedLengthArrayFromBuffer(ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL)),
165
+ reader.readObject(ClaimedLengthArrayFromBuffer(ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL)),
166
+ reader.readObject(
167
+ ClaimedLengthArrayFromBuffer(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL),
168
+ ),
169
+ reader.readObject(ClaimedLengthArrayFromBuffer(NoteHash, MAX_NOTE_HASHES_PER_CALL)),
170
+ reader.readObject(ClaimedLengthArrayFromBuffer(Nullifier, MAX_NULLIFIERS_PER_CALL)),
171
+ reader.readObject(ClaimedLengthArrayFromBuffer(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL)),
172
+ reader.readObject(ClaimedLengthArrayFromBuffer(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL)),
169
173
  reader.readObject(PublicCallRequest),
170
- reader.readArray(MAX_L2_TO_L1_MSGS_PER_CALL, CountedL2ToL1Message),
171
- reader.readArray(MAX_PRIVATE_LOGS_PER_CALL, PrivateLogData),
172
- reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_CALL, CountedLogHash),
174
+ reader.readObject(ClaimedLengthArrayFromBuffer(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL)),
175
+ reader.readObject(ClaimedLengthArrayFromBuffer(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL)),
176
+ reader.readObject(ClaimedLengthArrayFromBuffer(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL)),
173
177
  reader.readObject(Fr),
174
178
  reader.readObject(Fr),
175
179
  reader.readObject(BlockHeader),
@@ -185,18 +189,20 @@ export class PrivateCircuitPublicInputs {
185
189
  reader.readField(),
186
190
  reader.readField(),
187
191
  reader.readBoolean(),
188
- reader.readObject(IncludeByTimestamp),
189
- reader.readArray(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, ReadRequest),
190
- reader.readArray(MAX_NULLIFIER_READ_REQUESTS_PER_CALL, ReadRequest),
191
- reader.readArray(MAX_KEY_VALIDATION_REQUESTS_PER_CALL, KeyValidationRequestAndGenerator),
192
- reader.readArray(MAX_NOTE_HASHES_PER_CALL, NoteHash),
193
- reader.readArray(MAX_NULLIFIERS_PER_CALL, Nullifier),
194
- reader.readArray(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, PrivateCallRequest),
195
- reader.readArray(MAX_ENQUEUED_CALLS_PER_CALL, CountedPublicCallRequest),
192
+ reader.readU64(),
193
+ reader.readObject(ClaimedLengthArrayFromFields(ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL)),
194
+ reader.readObject(ClaimedLengthArrayFromFields(ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL)),
195
+ reader.readObject(
196
+ ClaimedLengthArrayFromFields(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL),
197
+ ),
198
+ reader.readObject(ClaimedLengthArrayFromFields(NoteHash, MAX_NOTE_HASHES_PER_CALL)),
199
+ reader.readObject(ClaimedLengthArrayFromFields(Nullifier, MAX_NULLIFIERS_PER_CALL)),
200
+ reader.readObject(ClaimedLengthArrayFromFields(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL)),
201
+ reader.readObject(ClaimedLengthArrayFromFields(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL)),
196
202
  reader.readObject(PublicCallRequest),
197
- reader.readArray(MAX_L2_TO_L1_MSGS_PER_CALL, CountedL2ToL1Message),
198
- reader.readArray(MAX_PRIVATE_LOGS_PER_CALL, PrivateLogData),
199
- reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_CALL, CountedLogHash),
203
+ reader.readObject(ClaimedLengthArrayFromFields(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL)),
204
+ reader.readObject(ClaimedLengthArrayFromFields(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL)),
205
+ reader.readObject(ClaimedLengthArrayFromFields(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL)),
200
206
  reader.readField(),
201
207
  reader.readField(),
202
208
  reader.readObject(BlockHeader),
@@ -215,18 +221,18 @@ export class PrivateCircuitPublicInputs {
215
221
  Fr.ZERO,
216
222
  Fr.ZERO,
217
223
  false,
218
- IncludeByTimestamp.empty(),
219
- makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, ReadRequest.empty),
220
- makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_CALL, ReadRequest.empty),
221
- makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_CALL, KeyValidationRequestAndGenerator.empty),
222
- makeTuple(MAX_NOTE_HASHES_PER_CALL, NoteHash.empty),
223
- makeTuple(MAX_NULLIFIERS_PER_CALL, Nullifier.empty),
224
- makeTuple(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, PrivateCallRequest.empty),
225
- makeTuple(MAX_ENQUEUED_CALLS_PER_CALL, CountedPublicCallRequest.empty),
224
+ 0n,
225
+ ClaimedLengthArray.empty(ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL),
226
+ ClaimedLengthArray.empty(ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL),
227
+ ClaimedLengthArray.empty(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL),
228
+ ClaimedLengthArray.empty(NoteHash, MAX_NOTE_HASHES_PER_CALL),
229
+ ClaimedLengthArray.empty(Nullifier, MAX_NULLIFIERS_PER_CALL),
230
+ ClaimedLengthArray.empty(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL),
231
+ ClaimedLengthArray.empty(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL),
226
232
  PublicCallRequest.empty(),
227
- makeTuple(MAX_L2_TO_L1_MSGS_PER_CALL, CountedL2ToL1Message.empty),
228
- makeTuple(MAX_PRIVATE_LOGS_PER_CALL, PrivateLogData.empty),
229
- makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_CALL, CountedLogHash.empty),
233
+ ClaimedLengthArray.empty(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL),
234
+ ClaimedLengthArray.empty(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL),
235
+ ClaimedLengthArray.empty(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL),
230
236
  Fr.ZERO,
231
237
  Fr.ZERO,
232
238
  BlockHeader.empty(),
@@ -241,18 +247,18 @@ export class PrivateCircuitPublicInputs {
241
247
  this.returnsHash.isZero() &&
242
248
  this.minRevertibleSideEffectCounter.isZero() &&
243
249
  !this.isFeePayer &&
244
- this.includeByTimestamp.isEmpty() &&
245
- isEmptyArray(this.noteHashReadRequests) &&
246
- isEmptyArray(this.nullifierReadRequests) &&
247
- isEmptyArray(this.keyValidationRequestsAndGenerators) &&
248
- isEmptyArray(this.noteHashes) &&
249
- isEmptyArray(this.nullifiers) &&
250
- isEmptyArray(this.privateCallRequests) &&
251
- isEmptyArray(this.publicCallRequests) &&
250
+ !this.includeByTimestamp &&
251
+ this.noteHashReadRequests.isEmpty() &&
252
+ this.nullifierReadRequests.isEmpty() &&
253
+ this.keyValidationRequestsAndGenerators.isEmpty() &&
254
+ this.noteHashes.isEmpty() &&
255
+ this.nullifiers.isEmpty() &&
256
+ this.privateCallRequests.isEmpty() &&
257
+ this.publicCallRequests.isEmpty() &&
252
258
  this.publicTeardownCallRequest.isEmpty() &&
253
- isEmptyArray(this.l2ToL1Msgs) &&
254
- isEmptyArray(this.privateLogs) &&
255
- isEmptyArray(this.contractClassLogsHashes) &&
259
+ this.l2ToL1Msgs.isEmpty() &&
260
+ this.privateLogs.isEmpty() &&
261
+ this.contractClassLogsHashes.isEmpty() &&
256
262
  this.startSideEffectCounter.isZero() &&
257
263
  this.endSideEffectCounter.isZero() &&
258
264
  this.historicalHeader.isEmpty() &&
@@ -296,20 +302,38 @@ export class PrivateCircuitPublicInputs {
296
302
  * @returns The buffer.
297
303
  */
298
304
  toBuffer(): Buffer {
299
- return serializeToBuffer(...PrivateCircuitPublicInputs.getFields(this));
305
+ // TODO(#15525): Use the line below once UInt64 can be serialized correctly.
306
+ // return serializeToBuffer(...PrivateCircuitPublicInputs.getFields(this));
307
+ return serializeToBuffer([
308
+ this.callContext,
309
+ this.argsHash,
310
+ this.returnsHash,
311
+ this.minRevertibleSideEffectCounter,
312
+ this.isFeePayer,
313
+ bigintToUInt64BE(this.includeByTimestamp),
314
+ this.noteHashReadRequests,
315
+ this.nullifierReadRequests,
316
+ this.keyValidationRequestsAndGenerators,
317
+ this.noteHashes,
318
+ this.nullifiers,
319
+ this.privateCallRequests,
320
+ this.publicCallRequests,
321
+ this.publicTeardownCallRequest,
322
+ this.l2ToL1Msgs,
323
+ this.privateLogs,
324
+ this.contractClassLogsHashes,
325
+ this.startSideEffectCounter,
326
+ this.endSideEffectCounter,
327
+ this.historicalHeader,
328
+ this.txContext,
329
+ ]);
300
330
  }
301
331
 
302
332
  /**
303
333
  * Serialize this as a field array.
304
334
  */
305
335
  toFields(): Fr[] {
306
- const fields = serializeToFields(...PrivateCircuitPublicInputs.getFields(this));
307
- if (fields.length !== PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH) {
308
- throw new Error(
309
- `Invalid number of fields for PrivateCircuitPublicInputs. Expected ${PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH}, got ${fields.length}`,
310
- );
311
- }
312
- return fields;
336
+ return serializeToFields(...PrivateCircuitPublicInputs.getFields(this));
313
337
  }
314
338
 
315
339
  public toJSON() {
@@ -1,9 +1,10 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
3
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
+ import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
 
5
5
  import { AztecAddress } from '../aztec-address/index.js';
6
6
  import { TxConstantData } from '../tx/tx_constant_data.js';
7
+ import type { UInt64 } from '../types/shared.js';
7
8
  import { PrivateAccumulatedData } from './private_accumulated_data.js';
8
9
  import { PrivateValidationRequests } from './private_validation_requests.js';
9
10
  import { PublicCallRequest } from './public_call_request.js';
@@ -37,6 +38,10 @@ export class PrivateKernelCircuitPublicInputs {
37
38
  * The address of the fee payer for the transaction
38
39
  */
39
40
  public feePayer: AztecAddress,
41
+ /**
42
+ * The timestamp by which the transaction must be included in a block.
43
+ */
44
+ public includeByTimestamp: UInt64,
40
45
  /**
41
46
  * Wether this is a private only tx or not
42
47
  */
@@ -63,6 +68,7 @@ export class PrivateKernelCircuitPublicInputs {
63
68
  this.end,
64
69
  this.publicTeardownCallRequest,
65
70
  this.feePayer,
71
+ bigintToUInt64BE(this.includeByTimestamp),
66
72
  this.isPrivateOnly,
67
73
  this.claimedFirstNullifier,
68
74
  );
@@ -82,6 +88,7 @@ export class PrivateKernelCircuitPublicInputs {
82
88
  reader.readObject(PrivateAccumulatedData),
83
89
  reader.readObject(PublicCallRequest),
84
90
  reader.readObject(AztecAddress),
91
+ reader.readUInt64(),
85
92
  reader.readBoolean(),
86
93
  reader.readObject(Fr),
87
94
  );
@@ -95,6 +102,7 @@ export class PrivateKernelCircuitPublicInputs {
95
102
  PrivateAccumulatedData.empty(),
96
103
  PublicCallRequest.empty(),
97
104
  AztecAddress.ZERO,
105
+ 0n,
98
106
  false,
99
107
  Fr.zero(),
100
108
  );
@@ -1,8 +1,8 @@
1
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
1
+ import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
2
2
 
3
+ import type { UInt64 } from '../types/shared.js';
3
4
  import { PaddedSideEffectAmounts } from './padded_side_effects.js';
4
5
  import { PrivateKernelData } from './private_kernel_data.js';
5
- import { countAccumulatedItems } from './utils/order_and_comparison.js';
6
6
 
7
7
  /**
8
8
  * Input to the private kernel circuit - tail call.
@@ -17,11 +17,15 @@ export class PrivateKernelTailCircuitPrivateInputs {
17
17
  * The number of the padded side effects.
18
18
  */
19
19
  public paddedSideEffectAmounts: PaddedSideEffectAmounts,
20
+ /**
21
+ * The timestamp by which the transaction must be included in a block.
22
+ */
23
+ public includeByTimestampUpperBound: UInt64,
20
24
  ) {}
21
25
 
22
26
  isForPublic() {
23
27
  return (
24
- countAccumulatedItems(this.previousKernel.publicInputs.end.publicCallRequests) > 0 ||
28
+ this.previousKernel.publicInputs.end.publicCallRequests.claimedLength > 0 ||
25
29
  !this.previousKernel.publicInputs.publicTeardownCallRequest.isEmpty()
26
30
  );
27
31
  }
@@ -31,7 +35,11 @@ export class PrivateKernelTailCircuitPrivateInputs {
31
35
  * @returns The buffer.
32
36
  */
33
37
  toBuffer() {
34
- return serializeToBuffer(this.previousKernel, this.paddedSideEffectAmounts);
38
+ return serializeToBuffer(
39
+ this.previousKernel,
40
+ this.paddedSideEffectAmounts,
41
+ bigintToUInt64BE(this.includeByTimestampUpperBound),
42
+ );
35
43
  }
36
44
 
37
45
  /**
@@ -44,6 +52,7 @@ export class PrivateKernelTailCircuitPrivateInputs {
44
52
  return new PrivateKernelTailCircuitPrivateInputs(
45
53
  reader.readObject(PrivateKernelData),
46
54
  reader.readObject(PaddedSideEffectAmounts),
55
+ reader.readUInt64(),
47
56
  );
48
57
  }
49
58
  }