@aztec/stdlib 1.2.1 → 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 +210 -8
  61. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  62. package/dest/interfaces/aztec-node-admin.js +8 -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 +1 -1
  73. package/dest/interfaces/server.d.ts.map +1 -1
  74. package/dest/interfaces/server.js +1 -1
  75. package/dest/interfaces/slasher.d.ts +21 -0
  76. package/dest/interfaces/slasher.d.ts.map +1 -1
  77. package/dest/interfaces/slasher.js +6 -1
  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 +18 -11
  241. package/src/interfaces/configs.ts +17 -0
  242. package/src/interfaces/pxe.ts +4 -2
  243. package/src/interfaces/server.ts +1 -1
  244. package/src/interfaces/slasher.ts +11 -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
@@ -3,18 +3,15 @@ import {
3
3
  MAX_NULLIFIER_READ_REQUESTS_PER_TX,
4
4
  type NULLIFIER_TREE_HEIGHT,
5
5
  } from '@aztec/constants';
6
- import { padArrayEnd } from '@aztec/foundation/collection';
7
6
  import type { Fr } from '@aztec/foundation/fields';
8
- import type { Tuple } from '@aztec/foundation/serialize';
9
7
  import { type IndexedTreeLeafPreimage, MembershipWitness } from '@aztec/foundation/trees';
10
8
 
11
- import { AztecAddress } from '../../aztec-address/index.js';
12
9
  import { siloNullifier } from '../../hash/hash.js';
13
- import { Nullifier, type ScopedNullifier } from '../nullifier.js';
14
- import { countAccumulatedItems, getNonEmptyItems } from '../utils/order_and_comparison.js';
10
+ import type { ClaimedLengthArray } from '../claimed_length_array.js';
11
+ import type { ScopedNullifier } from '../nullifier.js';
15
12
  import { NullifierReadRequestHintsBuilder } from './nullifier_read_request_hints.js';
16
- import { ReadRequest, ScopedReadRequest } from './read_request.js';
17
- import { PendingReadHint, ReadRequestResetStates, ReadRequestState } from './read_request_hints.js';
13
+ import { ScopedReadRequest } from './read_request.js';
14
+ import { PendingReadHint, ReadRequestActionEnum, ReadRequestResetActions } from './read_request_hints.js';
18
15
  import { ScopedValueCache } from './scoped_value_cache.js';
19
16
 
20
17
  export function isValidNullifierReadRequest(readRequest: ScopedReadRequest, nullifier: ScopedNullifier) {
@@ -30,15 +27,15 @@ interface NullifierMembershipWitnessWithPreimage {
30
27
  leafPreimage: IndexedTreeLeafPreimage;
31
28
  }
32
29
 
33
- export function getNullifierReadRequestResetStates(
34
- nullifierReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
35
- nullifiers: Tuple<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>,
30
+ export function getNullifierReadRequestResetActions(
31
+ nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
32
+ nullifiers: ClaimedLengthArray<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>,
36
33
  futureNullifiers: ScopedNullifier[],
37
- ): ReadRequestResetStates<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX> {
38
- const resetStates = ReadRequestResetStates.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
34
+ ): ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX> {
35
+ const resetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
39
36
 
40
37
  const nullifierMap: Map<bigint, { nullifier: ScopedNullifier; index: number }[]> = new Map();
41
- getNonEmptyItems(nullifiers).forEach((nullifier, index) => {
38
+ nullifiers.getActiveItems().forEach((nullifier, index) => {
42
39
  const value = nullifier.value.toBigInt();
43
40
  const arr = nullifierMap.get(value) ?? [];
44
41
  arr.push({ nullifier, index });
@@ -47,48 +44,46 @@ export function getNullifierReadRequestResetStates(
47
44
 
48
45
  const futureNullifiersMap = new ScopedValueCache(futureNullifiers);
49
46
 
50
- const numReadRequests = countAccumulatedItems(nullifierReadRequests);
51
-
52
- for (let i = 0; i < numReadRequests; ++i) {
53
- const readRequest = nullifierReadRequests[i];
47
+ for (let i = 0; i < nullifierReadRequests.claimedLength; ++i) {
48
+ const readRequest = nullifierReadRequests.array[i];
54
49
  const pendingNullifier = nullifierMap
55
50
  .get(readRequest.value.toBigInt())
56
51
  ?.find(({ nullifier }) => isValidNullifierReadRequest(readRequest, nullifier));
57
52
 
58
53
  if (pendingNullifier !== undefined) {
59
- resetStates.states[i] = ReadRequestState.PENDING;
60
- resetStates.pendingReadHints.push(new PendingReadHint(i, pendingNullifier.index));
54
+ resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
55
+ resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNullifier.index));
61
56
  } else if (
62
57
  !futureNullifiersMap
63
58
  .get(readRequest)
64
59
  .some(futureNullifier => isValidNullifierReadRequest(readRequest, futureNullifier))
65
60
  ) {
66
- resetStates.states[i] = ReadRequestState.SETTLED;
61
+ resetActions.actions[i] = ReadRequestActionEnum.READ_AS_SETTLED;
67
62
  }
68
63
  }
69
64
 
70
- return resetStates;
65
+ return resetActions;
71
66
  }
72
67
 
73
- export async function buildNullifierReadRequestHintsFromResetStates<PENDING extends number, SETTLED extends number>(
68
+ export async function buildNullifierReadRequestHintsFromResetActions<PENDING extends number, SETTLED extends number>(
74
69
  oracle: {
75
70
  getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitnessWithPreimage>;
76
71
  },
77
- nullifierReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
78
- resetStates: ReadRequestResetStates<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
72
+ nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
73
+ resetActions: ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
79
74
  maxPending: PENDING = MAX_NULLIFIER_READ_REQUESTS_PER_TX as PENDING,
80
75
  maxSettled: SETTLED = MAX_NULLIFIER_READ_REQUESTS_PER_TX as SETTLED,
81
76
  siloed = false,
82
77
  ) {
83
78
  const builder = new NullifierReadRequestHintsBuilder(maxPending, maxSettled);
84
79
 
85
- resetStates.pendingReadHints.forEach(hint => {
80
+ resetActions.pendingReadHints.forEach(hint => {
86
81
  builder.addPendingReadRequest(hint.readRequestIndex, hint.pendingValueIndex);
87
82
  });
88
83
 
89
- for (let i = 0; i < resetStates.states.length; i++) {
90
- if (resetStates.states[i] === ReadRequestState.SETTLED) {
91
- const readRequest = nullifierReadRequests[i];
84
+ for (let i = 0; i < resetActions.actions.length; i++) {
85
+ if (resetActions.actions[i] === ReadRequestActionEnum.READ_AS_SETTLED) {
86
+ const readRequest = nullifierReadRequests.array[i];
92
87
  const siloedValue = siloed
93
88
  ? readRequest.value
94
89
  : await siloNullifier(readRequest.contractAddress, readRequest.value);
@@ -108,46 +103,20 @@ export async function buildNullifierReadRequestHints<PENDING extends number, SET
108
103
  oracle: {
109
104
  getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitnessWithPreimage>;
110
105
  },
111
- nullifierReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
112
- nullifiers: Tuple<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>,
106
+ nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
107
+ nullifiers: ClaimedLengthArray<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>,
113
108
  futureNullifiers: ScopedNullifier[],
114
109
  maxPending: PENDING = MAX_NULLIFIER_READ_REQUESTS_PER_TX as PENDING,
115
110
  maxSettled: SETTLED = MAX_NULLIFIER_READ_REQUESTS_PER_TX as SETTLED,
116
111
  siloed = false,
117
112
  ) {
118
- const resetStates = getNullifierReadRequestResetStates(nullifierReadRequests, nullifiers, futureNullifiers);
119
- return await buildNullifierReadRequestHintsFromResetStates(
113
+ const resetActions = getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers, futureNullifiers);
114
+ return await buildNullifierReadRequestHintsFromResetActions(
120
115
  oracle,
121
116
  nullifierReadRequests,
122
- resetStates,
117
+ resetActions,
123
118
  maxPending,
124
119
  maxSettled,
125
120
  siloed,
126
121
  );
127
122
  }
128
-
129
- export async function buildSiloedNullifierReadRequestHints<PENDING extends number, SETTLED extends number>(
130
- oracle: {
131
- getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitnessWithPreimage>;
132
- },
133
- nullifierReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
134
- nullifiers: Tuple<Nullifier, typeof MAX_NULLIFIERS_PER_TX>,
135
- maxPending: PENDING = MAX_NULLIFIER_READ_REQUESTS_PER_TX as PENDING,
136
- maxSettled: SETTLED = MAX_NULLIFIER_READ_REQUESTS_PER_TX as SETTLED,
137
- ) {
138
- // Nullifiers outputted from public kernels are already siloed while read requests are not.
139
- // Siloing the read request values and set the contract addresses to zero to find the matching nullifier contexts.
140
- const nonEmptyNullifierReadRequests = getNonEmptyItems(nullifierReadRequests);
141
- const readRequests = await Promise.all(
142
- nonEmptyNullifierReadRequests.map(async r =>
143
- new ReadRequest(await siloNullifier(r.contractAddress, r.value), r.counter).scope(AztecAddress.ZERO),
144
- ),
145
- );
146
- const siloedReadRequests = padArrayEnd(readRequests, ScopedReadRequest.empty(), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
147
-
148
- const scopedNullifiers = nullifiers.map(n =>
149
- new Nullifier(n.value, n.counter, n.noteHash).scope(AztecAddress.ZERO),
150
- ) as Tuple<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>;
151
-
152
- return buildNullifierReadRequestHints(oracle, siloedReadRequests, scopedNullifiers, [], maxPending, maxSettled, true);
153
- }
@@ -1,35 +1,32 @@
1
1
  import { padArrayEnd } from '@aztec/foundation/collection';
2
2
  import type { Tuple } from '@aztec/foundation/serialize';
3
3
 
4
+ import type { ClaimedLengthArray } from '../claimed_length_array.js';
4
5
  import type { ScopedNoteHash } from '../note_hash.js';
5
6
  import type { ScopedNullifier } from '../nullifier.js';
6
- import { countAccumulatedItems } from '../utils/order_and_comparison.js';
7
7
  import { isValidNoteHashReadRequest } from './build_note_hash_read_request_hints.js';
8
8
  import { isValidNullifierReadRequest } from './build_nullifier_read_request_hints.js';
9
9
  import type { ScopedReadRequest } from './read_request.js';
10
10
  import { ScopedValueCache } from './scoped_value_cache.js';
11
- import { TransientDataIndexHint } from './transient_data_index_hint.js';
11
+ import { TransientDataSquashingHint } from './transient_data_squashing_hint.js';
12
12
 
13
13
  export function buildTransientDataHints<NOTE_HASHES_LEN extends number, NULLIFIERS_LEN extends number>(
14
- noteHashes: Tuple<ScopedNoteHash, NOTE_HASHES_LEN>,
15
- nullifiers: Tuple<ScopedNullifier, NULLIFIERS_LEN>,
14
+ noteHashes: ClaimedLengthArray<ScopedNoteHash, NOTE_HASHES_LEN>,
15
+ nullifiers: ClaimedLengthArray<ScopedNullifier, NULLIFIERS_LEN>,
16
16
  futureNoteHashReads: ScopedReadRequest[],
17
17
  futureNullifierReads: ScopedReadRequest[],
18
18
  noteHashNullifierCounterMap: Map<number, number>,
19
19
  validationRequestsSplitCounter: number,
20
- noteHashesLength: NOTE_HASHES_LEN = noteHashes.length as NOTE_HASHES_LEN,
21
- nullifiersLength: NULLIFIERS_LEN = nullifiers.length as NULLIFIERS_LEN,
22
- ): { numTransientData: number; hints: Tuple<TransientDataIndexHint, NULLIFIERS_LEN> } {
20
+ ): { numTransientData: number; hints: Tuple<TransientDataSquashingHint, NULLIFIERS_LEN> } {
23
21
  const futureNoteHashReadsMap = new ScopedValueCache(futureNoteHashReads);
24
22
  const futureNullifierReadsMap = new ScopedValueCache(futureNullifierReads);
25
23
 
26
24
  const nullifierIndexMap: Map<number, number> = new Map();
27
- nullifiers.forEach((n, i) => nullifierIndexMap.set(n.counter, i));
25
+ nullifiers.getActiveItems().forEach((n, i) => nullifierIndexMap.set(n.counter, i));
28
26
 
29
27
  const hints = [];
30
- const numNoteHashes = countAccumulatedItems(noteHashes);
31
- for (let noteHashIndex = 0; noteHashIndex < numNoteHashes; noteHashIndex++) {
32
- const noteHash = noteHashes[noteHashIndex];
28
+ for (let noteHashIndex = 0; noteHashIndex < noteHashes.claimedLength; noteHashIndex++) {
29
+ const noteHash = noteHashes.array[noteHashIndex];
33
30
  const noteHashNullifierCounter = noteHashNullifierCounterMap.get(noteHash.counter);
34
31
  // The note hash might not be linked to a nullifier or it might be read in the future
35
32
  if (
@@ -45,7 +42,7 @@ export function buildTransientDataHints<NOTE_HASHES_LEN extends number, NULLIFIE
45
42
  continue;
46
43
  }
47
44
 
48
- const nullifier = nullifiers[nullifierIndex];
45
+ const nullifier = nullifiers.array[nullifierIndex];
49
46
  // Cannot nullify a non-revertible note hash with a revertible nullifier.
50
47
  if (noteHash.counter < validationRequestsSplitCounter && nullifier.counter >= validationRequestsSplitCounter) {
51
48
  continue;
@@ -71,11 +68,12 @@ export function buildTransientDataHints<NOTE_HASHES_LEN extends number, NULLIFIE
71
68
  continue;
72
69
  }
73
70
 
74
- hints.push(new TransientDataIndexHint(nullifierIndex, noteHashIndex));
71
+ hints.push(new TransientDataSquashingHint(nullifierIndex, noteHashIndex));
75
72
  }
76
73
 
74
+ const noActionHint = new TransientDataSquashingHint(nullifiers.array.length, noteHashes.array.length);
77
75
  return {
78
76
  numTransientData: hints.length,
79
- hints: padArrayEnd(hints, new TransientDataIndexHint(nullifiersLength, noteHashesLength), nullifiersLength),
77
+ hints: padArrayEnd(hints, noActionHint, nullifiers.array.length as NULLIFIERS_LEN),
80
78
  };
81
79
  }
@@ -10,7 +10,6 @@ export * from './key_validation_request_and_generator.js';
10
10
  export * from './read_request.js';
11
11
  export * from './key_validation_request.js';
12
12
  export * from './scoped_key_validation_request_and_generator.js';
13
- export * from './rollup_validation_requests.js';
14
- export * from './transient_data_index_hint.js';
13
+ export * from './transient_data_squashing_hint.js';
15
14
  export * from './private_kernel_reset_hints.js';
16
15
  export * from './tree_leaf_read_request.js';
@@ -4,13 +4,7 @@ import { Fr } from '@aztec/foundation/fields';
4
4
  import type { BufferReader } from '@aztec/foundation/serialize';
5
5
  import type { MembershipWitness } from '@aztec/foundation/trees';
6
6
 
7
- import {
8
- PendingReadHint,
9
- ReadRequestResetHints,
10
- ReadRequestState,
11
- ReadRequestStatus,
12
- SettledReadHint,
13
- } from './read_request_hints.js';
7
+ import { PendingReadHint, ReadRequestAction, ReadRequestResetHints, SettledReadHint } from './read_request_hints.js';
14
8
 
15
9
  type NoteHashLeafValue = Fr;
16
10
 
@@ -47,7 +41,7 @@ export class NoteHashReadRequestHintsBuilder<PENDING extends number, SETTLED ext
47
41
  public readonly maxSettled: SETTLED,
48
42
  ) {
49
43
  this.hints = new ReadRequestResetHints(
50
- makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ReadRequestStatus.nada),
44
+ makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ReadRequestAction.skip),
51
45
  makeTuple(maxPending, () => PendingReadHint.nada(MAX_NOTE_HASH_READ_REQUESTS_PER_TX)),
52
46
  makeTuple(maxSettled, () =>
53
47
  SettledReadHint.nada(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT, Fr.zero),
@@ -63,10 +57,7 @@ export class NoteHashReadRequestHintsBuilder<PENDING extends number, SETTLED ext
63
57
  if (this.numPendingReadHints === this.maxPending) {
64
58
  throw new Error('Cannot add more pending read request.');
65
59
  }
66
- this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(
67
- ReadRequestState.PENDING,
68
- this.numPendingReadHints,
69
- );
60
+ this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsPending(this.numPendingReadHints);
70
61
  this.hints.pendingReadHints[this.numPendingReadHints] = new PendingReadHint(readRequestIndex, noteHashIndex);
71
62
  this.numPendingReadHints++;
72
63
  }
@@ -79,10 +70,7 @@ export class NoteHashReadRequestHintsBuilder<PENDING extends number, SETTLED ext
79
70
  if (this.numSettledReadHints === this.maxSettled) {
80
71
  throw new Error('Cannot add more settled read request.');
81
72
  }
82
- this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(
83
- ReadRequestState.SETTLED,
84
- this.numSettledReadHints,
85
- );
73
+ this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsSettled(this.numSettledReadHints);
86
74
  this.hints.settledReadHints[this.numSettledReadHints] = new SettledReadHint(
87
75
  readRequestIndex,
88
76
  membershipWitness,
@@ -4,13 +4,7 @@ import type { BufferReader } from '@aztec/foundation/serialize';
4
4
  import type { MembershipWitness, TreeLeafPreimage } from '@aztec/foundation/trees';
5
5
 
6
6
  import { NullifierLeafPreimage } from '../../trees/index.js';
7
- import {
8
- PendingReadHint,
9
- ReadRequestResetHints,
10
- ReadRequestState,
11
- ReadRequestStatus,
12
- SettledReadHint,
13
- } from './read_request_hints.js';
7
+ import { PendingReadHint, ReadRequestAction, ReadRequestResetHints, SettledReadHint } from './read_request_hints.js';
14
8
 
15
9
  export type NullifierReadRequestHints<PENDING extends number, SETTLED extends number> = ReadRequestResetHints<
16
10
  typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX,
@@ -45,7 +39,7 @@ export class NullifierReadRequestHintsBuilder<PENDING extends number, SETTLED ex
45
39
  public readonly maxSettled: SETTLED,
46
40
  ) {
47
41
  this.hints = new ReadRequestResetHints(
48
- makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ReadRequestStatus.nada),
42
+ makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ReadRequestAction.skip),
49
43
  makeTuple(maxPending, () => PendingReadHint.nada(MAX_NULLIFIER_READ_REQUESTS_PER_TX)),
50
44
  makeTuple(maxSettled, () =>
51
45
  SettledReadHint.nada(MAX_NULLIFIER_READ_REQUESTS_PER_TX, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage.empty),
@@ -62,10 +56,7 @@ export class NullifierReadRequestHintsBuilder<PENDING extends number, SETTLED ex
62
56
  throw new Error('Cannot add more pending read request.');
63
57
  }
64
58
 
65
- this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(
66
- ReadRequestState.PENDING,
67
- this.numPendingReadHints,
68
- );
59
+ this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsPending(this.numPendingReadHints);
69
60
  this.hints.pendingReadHints[this.numPendingReadHints] = new PendingReadHint(readRequestIndex, nullifierIndex);
70
61
  this.numPendingReadHints++;
71
62
  }
@@ -78,10 +69,7 @@ export class NullifierReadRequestHintsBuilder<PENDING extends number, SETTLED ex
78
69
  if (this.numSettledReadHints === this.maxSettled) {
79
70
  throw new Error('Cannot add more settled read request.');
80
71
  }
81
- this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(
82
- ReadRequestState.SETTLED,
83
- this.numSettledReadHints,
84
- );
72
+ this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsSettled(this.numSettledReadHints);
85
73
  this.hints.settledReadHints[this.numSettledReadHints] = new SettledReadHint(
86
74
  readRequestIndex,
87
75
  membershipWitness,
@@ -3,7 +3,7 @@ import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/s
3
3
  import { KeyValidationHint } from './key_validation_hint.js';
4
4
  import { type NoteHashReadRequestHints, noteHashReadRequestHintsFromBuffer } from './note_hash_read_request_hints.js';
5
5
  import { type NullifierReadRequestHints, nullifierReadRequestHintsFromBuffer } from './nullifier_read_request_hints.js';
6
- import { TransientDataIndexHint } from './transient_data_index_hint.js';
6
+ import { TransientDataSquashingHint } from './transient_data_squashing_hint.js';
7
7
 
8
8
  export class PrivateKernelResetHints<
9
9
  NH_RR_PENDING extends number,
@@ -29,7 +29,7 @@ export class PrivateKernelResetHints<
29
29
  /**
30
30
  * Contains hints for the transient note hashes to locate corresponding nullifiers.
31
31
  */
32
- public transientDataIndexHints: Tuple<TransientDataIndexHint, TRANSIENT_DATA_HINTS_LEN>,
32
+ public transientDataSquashingHints: Tuple<TransientDataSquashingHint, TRANSIENT_DATA_HINTS_LEN>,
33
33
  /**
34
34
  * The "final" minRevertibleSideEffectCounter of a tx, to split the data for squashing.
35
35
  * Not the minRevertibleSideEffectCounter at the point the reset circuit is run.
@@ -42,7 +42,7 @@ export class PrivateKernelResetHints<
42
42
  this.noteHashReadRequestHints,
43
43
  this.nullifierReadRequestHints,
44
44
  this.keyValidationHints,
45
- this.transientDataIndexHints,
45
+ this.transientDataSquashingHints,
46
46
  this.validationRequestsSplitCounter,
47
47
  );
48
48
  }
@@ -53,7 +53,7 @@ export class PrivateKernelResetHints<
53
53
  numNullifierReadRequestPending: number,
54
54
  numNullifierReadRequestSettled: number,
55
55
  numKeyValidationHints: number,
56
- numTransientDataIndexHints: number,
56
+ numTransientDataSquashingHints: number,
57
57
  ) {
58
58
  // Noir does not allow empty arrays. So we make the minimum array size 1.
59
59
  // There is a constant for each dimension, coded in the circuit that indicates how many hints should be applied.
@@ -70,7 +70,7 @@ export class PrivateKernelResetHints<
70
70
  useSize(numNullifierReadRequestSettled),
71
71
  ),
72
72
  this.keyValidationHints.slice(0, useSize(numKeyValidationHints)),
73
- this.transientDataIndexHints.slice(0, useSize(numTransientDataIndexHints)),
73
+ this.transientDataSquashingHints.slice(0, useSize(numTransientDataSquashingHints)),
74
74
  this.validationRequestsSplitCounter,
75
75
  );
76
76
  }
@@ -93,7 +93,7 @@ export class PrivateKernelResetHints<
93
93
  numNullifierReadRequestPending: NLL_RR_PENDING,
94
94
  numNullifierReadRequestSettled: NLL_RR_SETTLED,
95
95
  numKeyValidationHints: KEY_VALIDATION_HINTS_LEN,
96
- numTransientDataIndexHints: TRANSIENT_DATA_HINTS_LEN,
96
+ numTransientDataSquashingHints: TRANSIENT_DATA_HINTS_LEN,
97
97
  ): PrivateKernelResetHints<
98
98
  NH_RR_PENDING,
99
99
  NH_RR_SETTLED,
@@ -113,7 +113,7 @@ export class PrivateKernelResetHints<
113
113
  nullifierReadRequestHintsFromBuffer(buf, numNullifierReadRequestPending, numNullifierReadRequestSettled),
114
114
  }),
115
115
  reader.readArray(numKeyValidationHints, KeyValidationHint),
116
- reader.readArray(numTransientDataIndexHints, TransientDataIndexHint),
116
+ reader.readArray(numTransientDataSquashingHints, TransientDataSquashingHint),
117
117
  reader.readNumber(),
118
118
  );
119
119
  }
@@ -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
  }