@aztec/pxe 0.0.0-test.1 → 0.0.1-commit.5476d83

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 (328) hide show
  1. package/README.md +5 -5
  2. package/dest/bin/check_oracle_version.d.ts +2 -0
  3. package/dest/bin/check_oracle_version.d.ts.map +1 -0
  4. package/dest/bin/check_oracle_version.js +39 -0
  5. package/dest/config/index.d.ts +11 -24
  6. package/dest/config/index.d.ts.map +1 -1
  7. package/dest/config/index.js +18 -33
  8. package/dest/config/package_info.d.ts +1 -1
  9. package/dest/config/package_info.js +1 -1
  10. package/dest/contract_function_simulator/contract_function_simulator.d.ts +56 -0
  11. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -0
  12. package/dest/contract_function_simulator/contract_function_simulator.js +300 -0
  13. package/dest/contract_function_simulator/execution_data_provider.d.ts +265 -0
  14. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +1 -0
  15. package/dest/contract_function_simulator/execution_data_provider.js +14 -0
  16. package/dest/contract_function_simulator/execution_note_cache.d.ts +94 -0
  17. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -0
  18. package/dest/contract_function_simulator/execution_note_cache.js +190 -0
  19. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
  20. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  21. package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
  22. package/dest/contract_function_simulator/hashed_values_cache.d.ts +28 -0
  23. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -0
  24. package/dest/contract_function_simulator/hashed_values_cache.js +36 -0
  25. package/dest/contract_function_simulator/index.d.ts +14 -0
  26. package/dest/contract_function_simulator/index.d.ts.map +1 -0
  27. package/dest/contract_function_simulator/index.js +12 -0
  28. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +20 -0
  29. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -0
  30. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +37 -0
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +15 -0
  32. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -0
  33. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +25 -0
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +17 -0
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -0
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +65 -0
  37. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +23 -0
  38. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -0
  39. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +48 -0
  40. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
  41. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  42. package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
  43. package/dest/contract_function_simulator/oracle/index.d.ts +14 -0
  44. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -0
  45. package/dest/contract_function_simulator/oracle/index.js +2 -0
  46. package/dest/contract_function_simulator/oracle/interfaces.d.ts +100 -0
  47. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  48. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  49. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +17 -0
  50. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -0
  51. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +24 -0
  52. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +24 -0
  53. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -0
  54. package/dest/contract_function_simulator/oracle/note_packing_utils.js +50 -0
  55. package/dest/contract_function_simulator/oracle/oracle.d.ts +58 -0
  56. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -0
  57. package/dest/contract_function_simulator/oracle/oracle.js +333 -0
  58. package/dest/contract_function_simulator/oracle/private_execution.d.ts +48 -0
  59. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -0
  60. package/dest/contract_function_simulator/oracle/private_execution.js +123 -0
  61. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +231 -0
  62. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -0
  63. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +428 -0
  64. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +153 -0
  65. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -0
  66. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +265 -0
  67. package/dest/contract_function_simulator/pick_notes.d.ts +85 -0
  68. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -0
  69. package/dest/contract_function_simulator/pick_notes.js +51 -0
  70. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +6 -0
  71. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -0
  72. package/dest/contract_function_simulator/proxied_contract_data_source.js +62 -0
  73. package/dest/contract_function_simulator/proxied_node.d.ts +9 -0
  74. package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -0
  75. package/dest/contract_function_simulator/proxied_node.js +27 -0
  76. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +122 -0
  77. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -0
  78. package/dest/contract_function_simulator/pxe_oracle_interface.js +694 -0
  79. package/dest/entrypoints/client/bundle/index.d.ts +5 -3
  80. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  81. package/dest/entrypoints/client/bundle/index.js +3 -2
  82. package/dest/entrypoints/client/bundle/utils.d.ts +10 -10
  83. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  84. package/dest/entrypoints/client/bundle/utils.js +18 -12
  85. package/dest/entrypoints/client/lazy/index.d.ts +5 -3
  86. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  87. package/dest/entrypoints/client/lazy/index.js +3 -2
  88. package/dest/entrypoints/client/lazy/utils.d.ts +9 -9
  89. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  90. package/dest/entrypoints/client/lazy/utils.js +17 -11
  91. package/dest/entrypoints/pxe_creation_options.d.ts +14 -0
  92. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -0
  93. package/dest/entrypoints/server/index.d.ts +6 -4
  94. package/dest/entrypoints/server/index.d.ts.map +1 -1
  95. package/dest/entrypoints/server/index.js +4 -3
  96. package/dest/entrypoints/server/utils.d.ts +8 -16
  97. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  98. package/dest/entrypoints/server/utils.js +30 -35
  99. package/dest/error_enriching.d.ts +11 -0
  100. package/dest/error_enriching.d.ts.map +1 -0
  101. package/dest/{pxe_service/error_enriching.js → error_enriching.js} +26 -18
  102. package/dest/oracle_version.d.ts +3 -0
  103. package/dest/oracle_version.d.ts.map +1 -0
  104. package/dest/oracle_version.js +10 -0
  105. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +28 -0
  106. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -0
  107. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +271 -0
  108. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts +3 -0
  109. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts.map +1 -0
  110. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.js +48 -0
  111. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +4 -0
  112. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +1 -0
  113. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +41 -0
  114. package/dest/private_kernel/hints/index.d.ts +3 -0
  115. package/dest/private_kernel/hints/index.d.ts.map +1 -0
  116. package/dest/{kernel_prover → private_kernel}/hints/index.js +1 -0
  117. package/dest/private_kernel/index.d.ts +3 -0
  118. package/dest/private_kernel/index.d.ts.map +1 -0
  119. package/dest/private_kernel/index.js +2 -0
  120. package/dest/private_kernel/private_kernel_execution_prover.d.ts +44 -0
  121. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -0
  122. package/dest/private_kernel/private_kernel_execution_prover.js +289 -0
  123. package/dest/private_kernel/private_kernel_oracle.d.ts +62 -0
  124. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -0
  125. package/dest/private_kernel/private_kernel_oracle.js +4 -0
  126. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +45 -0
  127. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -0
  128. package/dest/{kernel_oracle/index.js → private_kernel/private_kernel_oracle_impl.js} +19 -9
  129. package/dest/pxe.d.ts +240 -0
  130. package/dest/pxe.d.ts.map +1 -0
  131. package/dest/pxe.js +771 -0
  132. package/dest/storage/address_data_provider/address_data_provider.d.ts +2 -4
  133. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -1
  134. package/dest/storage/address_data_provider/address_data_provider.js +0 -3
  135. package/dest/storage/address_data_provider/index.d.ts +1 -1
  136. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +15 -6
  137. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -1
  138. package/dest/storage/capsule_data_provider/capsule_data_provider.js +85 -24
  139. package/dest/storage/capsule_data_provider/index.d.ts +1 -1
  140. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +13 -58
  141. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -1
  142. package/dest/storage/contract_data_provider/contract_data_provider.js +89 -79
  143. package/dest/storage/contract_data_provider/index.d.ts +1 -2
  144. package/dest/storage/contract_data_provider/index.d.ts.map +1 -1
  145. package/dest/storage/contract_data_provider/index.js +0 -1
  146. package/dest/storage/contract_data_provider/private_functions_tree.d.ts +3 -42
  147. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -1
  148. package/dest/storage/contract_data_provider/private_functions_tree.js +9 -61
  149. package/dest/storage/index.d.ts +3 -4
  150. package/dest/storage/index.d.ts.map +1 -1
  151. package/dest/storage/index.js +2 -3
  152. package/dest/storage/metadata.d.ts +2 -0
  153. package/dest/storage/metadata.d.ts.map +1 -0
  154. package/dest/storage/metadata.js +1 -0
  155. package/dest/storage/note_data_provider/index.d.ts +2 -2
  156. package/dest/storage/note_data_provider/index.d.ts.map +1 -1
  157. package/dest/storage/note_data_provider/index.js +1 -1
  158. package/dest/storage/note_data_provider/note_data_provider.d.ts +73 -10
  159. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
  160. package/dest/storage/note_data_provider/note_data_provider.js +145 -83
  161. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +37 -0
  162. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +1 -0
  163. package/dest/storage/private_event_data_provider/private_event_data_provider.js +105 -0
  164. package/dest/storage/sync_data_provider/index.d.ts +1 -1
  165. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +3 -5
  166. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -1
  167. package/dest/storage/sync_data_provider/sync_data_provider.js +2 -5
  168. package/dest/storage/tagging_data_provider/index.d.ts +1 -1
  169. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +29 -7
  170. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -1
  171. package/dest/storage/tagging_data_provider/tagging_data_provider.js +48 -24
  172. package/dest/synchronizer/index.d.ts +1 -1
  173. package/dest/synchronizer/synchronizer.d.ts +8 -10
  174. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  175. package/dest/synchronizer/synchronizer.js +17 -19
  176. package/dest/tagging/constants.d.ts +2 -0
  177. package/dest/tagging/constants.d.ts.map +1 -0
  178. package/dest/tagging/constants.js +2 -0
  179. package/dest/tagging/index.d.ts +7 -0
  180. package/dest/tagging/index.d.ts.map +1 -0
  181. package/dest/tagging/index.js +5 -0
  182. package/dest/tagging/siloed_tag.d.ts +14 -0
  183. package/dest/tagging/siloed_tag.d.ts.map +1 -0
  184. package/dest/tagging/siloed_tag.js +20 -0
  185. package/dest/tagging/tag.d.ts +12 -0
  186. package/dest/tagging/tag.d.ts.map +1 -0
  187. package/dest/tagging/tag.js +17 -0
  188. package/dest/tagging/utils.d.ts +18 -0
  189. package/dest/tagging/utils.d.ts.map +1 -0
  190. package/dest/tagging/utils.js +24 -0
  191. package/package.json +37 -34
  192. package/src/bin/check_oracle_version.ts +50 -0
  193. package/src/config/index.ts +27 -55
  194. package/src/config/package_info.ts +1 -1
  195. package/src/contract_function_simulator/contract_function_simulator.ts +553 -0
  196. package/src/contract_function_simulator/execution_data_provider.ts +333 -0
  197. package/src/contract_function_simulator/execution_note_cache.ts +229 -0
  198. package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
  199. package/src/contract_function_simulator/hashed_values_cache.ts +47 -0
  200. package/src/contract_function_simulator/index.ts +13 -0
  201. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +47 -0
  202. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -0
  203. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +69 -0
  204. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +61 -0
  205. package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
  206. package/src/contract_function_simulator/oracle/index.ts +16 -0
  207. package/src/contract_function_simulator/oracle/interfaces.ts +170 -0
  208. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +23 -0
  209. package/src/contract_function_simulator/oracle/note_packing_utils.ts +54 -0
  210. package/src/contract_function_simulator/oracle/oracle.ts +583 -0
  211. package/src/contract_function_simulator/oracle/private_execution.ts +207 -0
  212. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +633 -0
  213. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +358 -0
  214. package/src/contract_function_simulator/pick_notes.ts +141 -0
  215. package/src/contract_function_simulator/proxied_contract_data_source.ts +66 -0
  216. package/src/contract_function_simulator/proxied_node.ts +33 -0
  217. package/src/contract_function_simulator/pxe_oracle_interface.ts +1008 -0
  218. package/src/entrypoints/client/bundle/index.ts +4 -2
  219. package/src/entrypoints/client/bundle/utils.ts +36 -36
  220. package/src/entrypoints/client/lazy/index.ts +4 -2
  221. package/src/entrypoints/client/lazy/utils.ts +36 -31
  222. package/src/entrypoints/{client/pxe_creation_options.ts → pxe_creation_options.ts} +4 -1
  223. package/src/entrypoints/server/index.ts +5 -3
  224. package/src/entrypoints/server/utils.ts +58 -50
  225. package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +36 -27
  226. package/src/oracle_version.ts +11 -0
  227. package/src/{kernel_prover → private_kernel}/hints/build_private_kernel_reset_private_inputs.ts +158 -146
  228. package/src/private_kernel/hints/compute_side_effect_uniqueness_hints.ts +173 -0
  229. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +58 -0
  230. package/src/{kernel_prover → private_kernel}/hints/index.ts +1 -0
  231. package/src/private_kernel/index.ts +2 -0
  232. package/src/private_kernel/private_kernel_execution_prover.ts +436 -0
  233. package/src/{kernel_prover/proving_data_oracle.ts → private_kernel/private_kernel_oracle.ts} +17 -29
  234. package/src/{kernel_oracle/index.ts → private_kernel/private_kernel_oracle_impl.ts} +30 -15
  235. package/src/pxe.ts +1085 -0
  236. package/src/storage/address_data_provider/address_data_provider.ts +1 -7
  237. package/src/storage/capsule_data_provider/capsule_data_provider.ts +97 -30
  238. package/src/storage/contract_data_provider/contract_data_provider.ts +109 -93
  239. package/src/storage/contract_data_provider/index.ts +0 -1
  240. package/src/storage/contract_data_provider/private_functions_tree.ts +11 -75
  241. package/src/storage/index.ts +2 -4
  242. package/src/storage/metadata.ts +1 -0
  243. package/src/storage/note_data_provider/index.ts +1 -1
  244. package/src/storage/note_data_provider/note_data_provider.ts +176 -122
  245. package/src/storage/private_event_data_provider/private_event_data_provider.ts +143 -0
  246. package/src/storage/sync_data_provider/sync_data_provider.ts +4 -10
  247. package/src/storage/tagging_data_provider/tagging_data_provider.ts +58 -30
  248. package/src/synchronizer/synchronizer.ts +21 -22
  249. package/src/tagging/constants.ts +2 -0
  250. package/src/tagging/index.ts +6 -0
  251. package/src/tagging/siloed_tag.ts +22 -0
  252. package/src/tagging/tag.ts +16 -0
  253. package/src/tagging/utils.ts +31 -0
  254. package/dest/bin/index.d.ts +0 -3
  255. package/dest/bin/index.d.ts.map +0 -1
  256. package/dest/bin/index.js +0 -28
  257. package/dest/entrypoints/client/pxe_creation_options.d.ts +0 -11
  258. package/dest/entrypoints/client/pxe_creation_options.d.ts.map +0 -1
  259. package/dest/kernel_oracle/index.d.ts +0 -45
  260. package/dest/kernel_oracle/index.d.ts.map +0 -1
  261. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  262. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  263. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +0 -270
  264. package/dest/kernel_prover/hints/index.d.ts +0 -2
  265. package/dest/kernel_prover/hints/index.d.ts.map +0 -1
  266. package/dest/kernel_prover/index.d.ts +0 -3
  267. package/dest/kernel_prover/index.d.ts.map +0 -1
  268. package/dest/kernel_prover/index.js +0 -2
  269. package/dest/kernel_prover/kernel_prover.d.ts +0 -38
  270. package/dest/kernel_prover/kernel_prover.d.ts.map +0 -1
  271. package/dest/kernel_prover/kernel_prover.js +0 -217
  272. package/dest/kernel_prover/proving_data_oracle.d.ts +0 -73
  273. package/dest/kernel_prover/proving_data_oracle.d.ts.map +0 -1
  274. package/dest/kernel_prover/proving_data_oracle.js +0 -4
  275. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +0 -11
  276. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +0 -1
  277. package/dest/note_decryption_utils/add_public_values_to_payload.js +0 -47
  278. package/dest/pxe_http/index.d.ts +0 -2
  279. package/dest/pxe_http/index.d.ts.map +0 -1
  280. package/dest/pxe_http/index.js +0 -1
  281. package/dest/pxe_http/pxe_http_server.d.ts +0 -16
  282. package/dest/pxe_http/pxe_http_server.d.ts.map +0 -1
  283. package/dest/pxe_http/pxe_http_server.js +0 -27
  284. package/dest/pxe_oracle_interface/index.d.ts +0 -159
  285. package/dest/pxe_oracle_interface/index.d.ts.map +0 -1
  286. package/dest/pxe_oracle_interface/index.js +0 -692
  287. package/dest/pxe_oracle_interface/tagging_utils.d.ts +0 -17
  288. package/dest/pxe_oracle_interface/tagging_utils.d.ts.map +0 -1
  289. package/dest/pxe_oracle_interface/tagging_utils.js +0 -23
  290. package/dest/pxe_service/error_enriching.d.ts +0 -11
  291. package/dest/pxe_service/error_enriching.d.ts.map +0 -1
  292. package/dest/pxe_service/index.d.ts +0 -3
  293. package/dest/pxe_service/index.d.ts.map +0 -1
  294. package/dest/pxe_service/index.js +0 -2
  295. package/dest/pxe_service/pxe_service.d.ts +0 -111
  296. package/dest/pxe_service/pxe_service.d.ts.map +0 -1
  297. package/dest/pxe_service/pxe_service.js +0 -664
  298. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts +0 -11
  299. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts.map +0 -1
  300. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.js +0 -20
  301. package/dest/storage/auth_witness_data_provider/index.d.ts +0 -2
  302. package/dest/storage/auth_witness_data_provider/index.d.ts.map +0 -1
  303. package/dest/storage/auth_witness_data_provider/index.js +0 -1
  304. package/dest/storage/data_provider.d.ts +0 -4
  305. package/dest/storage/data_provider.d.ts.map +0 -1
  306. package/dest/storage/data_provider.js +0 -1
  307. package/dest/storage/note_data_provider/note_dao.d.ts +0 -106
  308. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  309. package/dest/storage/note_data_provider/note_dao.js +0 -106
  310. package/dest/test/pxe_test_suite.d.ts +0 -3
  311. package/dest/test/pxe_test_suite.d.ts.map +0 -1
  312. package/dest/test/pxe_test_suite.js +0 -97
  313. package/src/bin/index.ts +0 -38
  314. package/src/kernel_prover/index.ts +0 -2
  315. package/src/kernel_prover/kernel_prover.ts +0 -351
  316. package/src/note_decryption_utils/add_public_values_to_payload.ts +0 -64
  317. package/src/pxe_http/index.ts +0 -1
  318. package/src/pxe_http/pxe_http_server.ts +0 -29
  319. package/src/pxe_oracle_interface/index.ts +0 -925
  320. package/src/pxe_oracle_interface/tagging_utils.ts +0 -32
  321. package/src/pxe_service/index.ts +0 -2
  322. package/src/pxe_service/pxe_service.ts +0 -949
  323. package/src/storage/auth_witness_data_provider/auth_witness_data_provider.ts +0 -34
  324. package/src/storage/auth_witness_data_provider/index.ts +0 -1
  325. package/src/storage/data_provider.ts +0 -3
  326. package/src/storage/note_data_provider/note_dao.ts +0 -162
  327. package/src/test/pxe_test_suite.ts +0 -111
  328. /package/dest/entrypoints/{client/pxe_creation_options.js → pxe_creation_options.js} +0 -0
@@ -4,8 +4,8 @@ import {
4
4
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
5
5
  MAX_NULLIFIERS_PER_TX,
6
6
  MAX_NULLIFIER_READ_REQUESTS_PER_TX,
7
+ MAX_PRIVATE_LOGS_PER_TX,
7
8
  NULLIFIER_TREE_HEIGHT,
8
- VK_TREE_HEIGHT,
9
9
  } from '@aztec/constants';
10
10
  import { makeTuple } from '@aztec/foundation/array';
11
11
  import { padArrayEnd } from '@aztec/foundation/collection';
@@ -14,7 +14,9 @@ import { type Tuple, assertLength } from '@aztec/foundation/serialize';
14
14
  import { MembershipWitness } from '@aztec/foundation/trees';
15
15
  import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
16
16
  import {
17
+ ClaimedLengthArray,
17
18
  KeyValidationHint,
19
+ PaddedSideEffects,
18
20
  type PrivateCircuitPublicInputs,
19
21
  type PrivateKernelCircuitPublicInputs,
20
22
  PrivateKernelData,
@@ -22,41 +24,36 @@ import {
22
24
  PrivateKernelResetDimensions,
23
25
  PrivateKernelResetHints,
24
26
  type PrivateKernelSimulateOutput,
25
- type ReadRequest,
26
- ReadRequestResetStates,
27
- ReadRequestState,
27
+ ReadRequestActionEnum,
28
+ ReadRequestResetActions,
28
29
  type ScopedKeyValidationRequestAndGenerator,
29
30
  ScopedNoteHash,
30
31
  ScopedNullifier,
31
32
  ScopedReadRequest,
32
- TransientDataIndexHint,
33
- buildNoteHashReadRequestHintsFromResetStates,
34
- buildNullifierReadRequestHintsFromResetStates,
33
+ TransientDataSquashingHint,
34
+ buildNoteHashReadRequestHintsFromResetActions,
35
+ buildNullifierReadRequestHintsFromResetActions,
35
36
  buildTransientDataHints,
36
- countAccumulatedItems,
37
37
  findPrivateKernelResetDimensions,
38
- getNonEmptyItems,
39
- getNoteHashReadRequestResetStates,
40
- getNullifierReadRequestResetStates,
38
+ getNoteHashReadRequestResetActions,
39
+ getNullifierReadRequestResetActions,
41
40
  privateKernelResetDimensionNames,
42
41
  } from '@aztec/stdlib/kernel';
43
42
  import { type PrivateCallExecutionResult, collectNested } from '@aztec/stdlib/tx';
43
+ import { VkData } from '@aztec/stdlib/vks';
44
44
 
45
- import type { ProvingDataOracle } from '../proving_data_oracle.js';
45
+ import type { PrivateKernelOracle } from '../private_kernel_oracle.js';
46
46
 
47
- function collectNestedReadRequests(
47
+ function collectNestedReadRequests<N extends number>(
48
48
  executionStack: PrivateCallExecutionResult[],
49
- extractReadRequests: (execution: PrivateCallExecutionResult) => ReadRequest[],
49
+ extractReadRequests: (execution: PrivateCallExecutionResult) => ClaimedLengthArray<ScopedReadRequest, N>,
50
50
  ): ScopedReadRequest[] {
51
51
  return collectNested(executionStack, executionResult => {
52
- const nonEmptyReadRequests = getNonEmptyItems(extractReadRequests(executionResult));
53
- return nonEmptyReadRequests.map(
54
- readRequest => new ScopedReadRequest(readRequest, executionResult.publicInputs.callContext.contractAddress),
55
- );
52
+ return extractReadRequests(executionResult).getActiveItems();
56
53
  });
57
54
  }
58
55
 
59
- function getNullifierMembershipWitnessResolver(oracle: ProvingDataOracle) {
56
+ function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
60
57
  return async (nullifier: Fr) => {
61
58
  const res = await oracle.getNullifierMembershipWitness(nullifier);
62
59
  if (!res) {
@@ -72,23 +69,21 @@ function getNullifierMembershipWitnessResolver(oracle: ProvingDataOracle) {
72
69
  }
73
70
 
74
71
  async function getMasterSecretKeysAndAppKeyGenerators(
75
- keyValidationRequests: Tuple<ScopedKeyValidationRequestAndGenerator, typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX>,
76
- oracle: ProvingDataOracle,
72
+ keyValidationRequests: ClaimedLengthArray<
73
+ ScopedKeyValidationRequestAndGenerator,
74
+ typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX
75
+ >,
76
+ numRequestsToVerify: number,
77
+ oracle: PrivateKernelOracle,
77
78
  ) {
78
- const keysHints = [];
79
- for (let i = 0; i < keyValidationRequests.length; ++i) {
80
- const request = keyValidationRequests[i].request;
81
- if (request.isEmpty()) {
82
- break;
83
- }
84
- const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
85
- keysHints.push(new KeyValidationHint(secretKeys, i));
86
- }
87
- return padArrayEnd(
88
- keysHints,
89
- KeyValidationHint.nada(MAX_KEY_VALIDATION_REQUESTS_PER_TX),
90
- MAX_KEY_VALIDATION_REQUESTS_PER_TX,
79
+ const numRequestsToProcess = Math.min(keyValidationRequests.claimedLength, numRequestsToVerify);
80
+ const keysHints = await Promise.all(
81
+ keyValidationRequests.array.slice(0, numRequestsToProcess).map(async ({ request }) => {
82
+ const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
83
+ return new KeyValidationHint(secretKeys);
84
+ }),
91
85
  );
86
+ return padArrayEnd(keysHints, KeyValidationHint.empty(), MAX_KEY_VALIDATION_REQUESTS_PER_TX);
92
87
  }
93
88
 
94
89
  export class PrivateKernelResetPrivateInputsBuilder {
@@ -96,25 +91,25 @@ export class PrivateKernelResetPrivateInputsBuilder {
96
91
  // If there's no next iteration, it's the final reset.
97
92
  private nextIteration?: PrivateCircuitPublicInputs;
98
93
 
99
- private noteHashResetStates: ReadRequestResetStates<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>;
100
- private nullifierResetStates: ReadRequestResetStates<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>;
94
+ private noteHashResetActions: ReadRequestResetActions<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>;
95
+ private nullifierResetActions: ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>;
101
96
  private numTransientData?: number;
102
- private transientDataIndexHints: Tuple<TransientDataIndexHint, typeof MAX_NULLIFIERS_PER_TX>;
97
+ private transientDataSquashingHints: Tuple<TransientDataSquashingHint, typeof MAX_NULLIFIERS_PER_TX>;
103
98
  private requestedDimensions: PrivateKernelResetDimensions;
104
99
 
105
100
  constructor(
106
101
  private previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>,
107
102
  private executionStack: PrivateCallExecutionResult[],
108
103
  private noteHashNullifierCounterMap: Map<number, number>,
109
- private validationRequestsSplitCounter: number,
104
+ private splitCounter: number,
110
105
  ) {
111
106
  this.previousKernel = previousKernelOutput.publicInputs;
112
107
  this.requestedDimensions = PrivateKernelResetDimensions.empty();
113
- this.noteHashResetStates = ReadRequestResetStates.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
114
- this.nullifierResetStates = ReadRequestResetStates.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
115
- this.transientDataIndexHints = makeTuple(
108
+ this.noteHashResetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
109
+ this.nullifierResetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
110
+ this.transientDataSquashingHints = makeTuple(
116
111
  MAX_NULLIFIERS_PER_TX,
117
- () => new TransientDataIndexHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
112
+ () => new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
118
113
  );
119
114
  this.nextIteration = executionStack[this.executionStack.length - 1]?.publicInputs;
120
115
  }
@@ -143,7 +138,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
143
138
  }
144
139
  }
145
140
 
146
- async build(oracle: ProvingDataOracle, noteHashLeafIndexMap: Map<bigint, bigint>) {
141
+ async build(oracle: PrivateKernelOracle, noteHashLeafIndexMap: Map<bigint, bigint>) {
147
142
  if (privateKernelResetDimensionNames.every(name => !this.requestedDimensions[name])) {
148
143
  throw new Error('Reset is not required.');
149
144
  }
@@ -162,122 +157,131 @@ export class PrivateKernelResetPrivateInputsBuilder {
162
157
  allowRemainder,
163
158
  );
164
159
 
165
- const previousVkMembershipWitness = await oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey);
166
- const previousKernelData = new PrivateKernelData(
167
- this.previousKernelOutput.publicInputs,
160
+ const previousVkMembershipWitness = await oracle.getVkMembershipWitness(
161
+ this.previousKernelOutput.verificationKey.keyAsFields,
162
+ );
163
+ const vkData = new VkData(
168
164
  this.previousKernelOutput.verificationKey,
169
165
  Number(previousVkMembershipWitness.leafIndex),
170
- assertLength<Fr, typeof VK_TREE_HEIGHT>(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT),
166
+ previousVkMembershipWitness.siblingPath,
171
167
  );
168
+ const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
172
169
 
173
- this.reduceReadRequestStates(
174
- this.noteHashResetStates,
175
- dimensions.NOTE_HASH_PENDING_AMOUNT,
176
- dimensions.NOTE_HASH_SETTLED_AMOUNT,
170
+ this.reduceReadRequestActions(
171
+ this.noteHashResetActions,
172
+ dimensions.NOTE_HASH_PENDING_READ,
173
+ dimensions.NOTE_HASH_SETTLED_READ,
177
174
  );
178
- this.reduceReadRequestStates(
179
- this.nullifierResetStates,
180
- dimensions.NULLIFIER_PENDING_AMOUNT,
181
- dimensions.NULLIFIER_SETTLED_AMOUNT,
175
+ this.reduceReadRequestActions(
176
+ this.nullifierResetActions,
177
+ dimensions.NULLIFIER_PENDING_READ,
178
+ dimensions.NULLIFIER_SETTLED_READ,
182
179
  );
183
180
 
181
+ // TODO: Enable padding when we have a better idea what are the final amounts we should pad to.
182
+ const paddedSideEffects = PaddedSideEffects.empty();
183
+
184
184
  return new PrivateKernelResetCircuitPrivateInputs(
185
185
  previousKernelData,
186
+ paddedSideEffects,
186
187
  new PrivateKernelResetHints(
187
- await buildNoteHashReadRequestHintsFromResetStates(
188
+ await buildNoteHashReadRequestHintsFromResetActions(
188
189
  oracle,
189
190
  this.previousKernel.validationRequests.noteHashReadRequests,
190
191
  this.previousKernel.end.noteHashes,
191
- this.noteHashResetStates,
192
+ this.noteHashResetActions,
192
193
  noteHashLeafIndexMap,
193
194
  ),
194
- await buildNullifierReadRequestHintsFromResetStates(
195
+ await buildNullifierReadRequestHintsFromResetActions(
195
196
  { getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle) },
196
197
  this.previousKernel.validationRequests.nullifierReadRequests,
197
- this.nullifierResetStates,
198
+ this.nullifierResetActions,
198
199
  ),
199
200
  await getMasterSecretKeysAndAppKeyGenerators(
200
201
  this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators,
202
+ dimensions.KEY_VALIDATION,
201
203
  oracle,
202
204
  ),
203
- this.transientDataIndexHints,
204
- this.validationRequestsSplitCounter,
205
+ this.transientDataSquashingHints,
205
206
  ),
206
207
  dimensions,
207
208
  );
208
209
  }
209
210
 
210
- private reduceReadRequestStates<NUM_READS extends number>(
211
- resetStates: ReadRequestResetStates<NUM_READS>,
211
+ private reduceReadRequestActions<NUM_READS extends number>(
212
+ resetActions: ReadRequestResetActions<NUM_READS>,
212
213
  maxPending: number,
213
214
  maxSettled: number,
214
215
  ) {
215
216
  let numPending = 0;
216
217
  let numSettled = 0;
217
- for (let i = 0; i < resetStates.states.length; i++) {
218
- const state = resetStates.states[i];
219
- if (state === ReadRequestState.PENDING) {
218
+ for (let i = 0; i < resetActions.actions.length; i++) {
219
+ const action = resetActions.actions[i];
220
+ if (action === ReadRequestActionEnum.READ_AS_PENDING) {
220
221
  if (numPending < maxPending) {
221
222
  numPending++;
222
223
  } else {
223
- resetStates.states[i] = ReadRequestState.NADA;
224
+ resetActions.actions[i] = ReadRequestActionEnum.SKIP;
224
225
  }
225
- } else if (state === ReadRequestState.SETTLED) {
226
+ } else if (action === ReadRequestActionEnum.READ_AS_SETTLED) {
226
227
  if (numSettled < maxSettled) {
227
228
  numSettled++;
228
229
  } else {
229
- resetStates.states[i] = ReadRequestState.NADA;
230
+ resetActions.actions[i] = ReadRequestActionEnum.SKIP;
230
231
  }
231
232
  }
232
233
  }
233
234
 
234
- resetStates.pendingReadHints = resetStates.pendingReadHints.slice(0, maxPending);
235
+ resetActions.pendingReadHints = resetActions.pendingReadHints.slice(0, maxPending);
235
236
  }
236
237
 
237
238
  private needsResetNoteHashReadRequests(forceResetAll = false) {
238
- const numCurr = countAccumulatedItems(this.previousKernel.validationRequests.noteHashReadRequests);
239
- const numNext = this.nextIteration ? countAccumulatedItems(this.nextIteration.noteHashReadRequests) : 0;
239
+ const numCurr = this.previousKernel.validationRequests.noteHashReadRequests.claimedLength;
240
+ const numNext = this.nextIteration ? this.nextIteration.noteHashReadRequests.claimedLength : 0;
240
241
  const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
241
242
  if (numCurr + numNext <= maxAmountToKeep) {
242
243
  return false;
243
244
  }
244
245
 
245
246
  const futureNoteHashes = collectNested(this.executionStack, executionResult => {
246
- const nonEmptyNoteHashes = getNonEmptyItems(executionResult.publicInputs.noteHashes);
247
- return nonEmptyNoteHashes.map(
248
- noteHash => new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress),
249
- );
247
+ return executionResult.publicInputs.noteHashes
248
+ .getActiveItems()
249
+ .map(noteHash => new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress));
250
250
  });
251
251
 
252
- const resetStates = getNoteHashReadRequestResetStates(
252
+ const resetActions = getNoteHashReadRequestResetActions(
253
253
  this.previousKernel.validationRequests.noteHashReadRequests,
254
254
  this.previousKernel.end.noteHashes,
255
255
  futureNoteHashes,
256
256
  );
257
257
 
258
- const numPendingReads = resetStates.pendingReadHints.length;
259
- const numSettledReads = resetStates.states.reduce(
260
- (accum, state) => accum + (state === ReadRequestState.SETTLED ? 1 : 0),
258
+ const numPendingReads = resetActions.pendingReadHints.length;
259
+ const numSettledReads = resetActions.actions.reduce(
260
+ (accum, action) => accum + (action === ReadRequestActionEnum.READ_AS_SETTLED ? 1 : 0),
261
261
  0,
262
262
  );
263
263
 
264
264
  if (!this.nextIteration) {
265
- this.noteHashResetStates = resetStates;
266
- this.requestedDimensions.NOTE_HASH_PENDING_AMOUNT = numPendingReads;
267
- this.requestedDimensions.NOTE_HASH_SETTLED_AMOUNT = numSettledReads;
265
+ this.noteHashResetActions = resetActions;
266
+ this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
267
+ this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
268
268
  } else {
269
269
  // Pick only one dimension to reset if next iteration is not empty.
270
270
  if (numPendingReads > numSettledReads) {
271
- this.requestedDimensions.NOTE_HASH_PENDING_AMOUNT = numPendingReads;
272
- this.noteHashResetStates.states = assertLength(
273
- resetStates.states.map(state => (state === ReadRequestState.PENDING ? state : ReadRequestState.NADA)),
271
+ this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
272
+ this.noteHashResetActions.actions = assertLength(
273
+ resetActions.actions.map(action =>
274
+ action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
275
+ ),
274
276
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
275
277
  );
276
- this.noteHashResetStates.pendingReadHints = resetStates.pendingReadHints;
278
+ this.noteHashResetActions.pendingReadHints = resetActions.pendingReadHints;
277
279
  } else {
278
- this.requestedDimensions.NOTE_HASH_SETTLED_AMOUNT = numSettledReads;
279
- this.noteHashResetStates.states = assertLength(
280
- resetStates.states.map(state => (state === ReadRequestState.SETTLED ? state : ReadRequestState.NADA)),
280
+ this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
281
+ this.noteHashResetActions.actions = assertLength(
282
+ resetActions.actions.map(action =>
283
+ action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
284
+ ),
281
285
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
282
286
  );
283
287
  }
@@ -287,49 +291,52 @@ export class PrivateKernelResetPrivateInputsBuilder {
287
291
  }
288
292
 
289
293
  private needsResetNullifierReadRequests(forceResetAll = false) {
290
- const numCurr = countAccumulatedItems(this.previousKernel.validationRequests.nullifierReadRequests);
291
- const numNext = this.nextIteration ? countAccumulatedItems(this.nextIteration.nullifierReadRequests) : 0;
294
+ const numCurr = this.previousKernel.validationRequests.nullifierReadRequests.claimedLength;
295
+ const numNext = this.nextIteration ? this.nextIteration.nullifierReadRequests.claimedLength : 0;
292
296
  const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
293
297
  if (numCurr + numNext <= maxAmountToKeep) {
294
298
  return false;
295
299
  }
296
300
 
297
301
  const futureNullifiers = collectNested(this.executionStack, executionResult => {
298
- const nonEmptyNullifiers = getNonEmptyItems(executionResult.publicInputs.nullifiers);
299
- return nonEmptyNullifiers.map(
300
- nullifier => new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress),
301
- );
302
+ return executionResult.publicInputs.nullifiers
303
+ .getActiveItems()
304
+ .map(nullifier => new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress));
302
305
  });
303
306
 
304
- const resetStates = getNullifierReadRequestResetStates(
307
+ const resetActions = getNullifierReadRequestResetActions(
305
308
  this.previousKernel.validationRequests.nullifierReadRequests,
306
309
  this.previousKernel.end.nullifiers,
307
310
  futureNullifiers,
308
311
  );
309
312
 
310
- const numPendingReads = resetStates.pendingReadHints.length;
311
- const numSettledReads = resetStates.states.reduce(
312
- (accum, state) => accum + (state === ReadRequestState.SETTLED ? 1 : 0),
313
+ const numPendingReads = resetActions.pendingReadHints.length;
314
+ const numSettledReads = resetActions.actions.reduce(
315
+ (accum, action) => accum + (action === ReadRequestActionEnum.READ_AS_SETTLED ? 1 : 0),
313
316
  0,
314
317
  );
315
318
 
316
319
  if (!this.nextIteration) {
317
- this.nullifierResetStates = resetStates;
318
- this.requestedDimensions.NULLIFIER_PENDING_AMOUNT = numPendingReads;
319
- this.requestedDimensions.NULLIFIER_SETTLED_AMOUNT = numSettledReads;
320
+ this.nullifierResetActions = resetActions;
321
+ this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
322
+ this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
320
323
  } else {
321
324
  // Pick only one dimension to reset if next iteration is not empty.
322
325
  if (numPendingReads > numSettledReads) {
323
- this.requestedDimensions.NULLIFIER_PENDING_AMOUNT = numPendingReads;
324
- this.nullifierResetStates.states = assertLength(
325
- resetStates.states.map(state => (state === ReadRequestState.PENDING ? state : ReadRequestState.NADA)),
326
+ this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
327
+ this.nullifierResetActions.actions = assertLength(
328
+ resetActions.actions.map(action =>
329
+ action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
330
+ ),
326
331
  MAX_NULLIFIER_READ_REQUESTS_PER_TX,
327
332
  );
328
- this.nullifierResetStates.pendingReadHints = resetStates.pendingReadHints;
333
+ this.nullifierResetActions.pendingReadHints = resetActions.pendingReadHints;
329
334
  } else {
330
- this.requestedDimensions.NULLIFIER_SETTLED_AMOUNT = numSettledReads;
331
- this.nullifierResetStates.states = assertLength(
332
- resetStates.states.map(state => (state === ReadRequestState.SETTLED ? state : ReadRequestState.NADA)),
335
+ this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
336
+ this.nullifierResetActions.actions = assertLength(
337
+ resetActions.actions.map(action =>
338
+ action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
339
+ ),
333
340
  MAX_NULLIFIER_READ_REQUESTS_PER_TX,
334
341
  );
335
342
  }
@@ -339,18 +346,14 @@ export class PrivateKernelResetPrivateInputsBuilder {
339
346
  }
340
347
 
341
348
  private needsResetNullifierKeys() {
342
- const numCurr = countAccumulatedItems(
343
- this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators,
344
- );
345
- const numNext = this.nextIteration
346
- ? countAccumulatedItems(this.nextIteration.keyValidationRequestsAndGenerators)
347
- : 0;
349
+ const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators.claimedLength;
350
+ const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndGenerators.claimedLength : 0;
348
351
  const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
349
352
  if (numCurr + numNext <= maxAmountToKeep) {
350
353
  return false;
351
354
  }
352
355
 
353
- this.requestedDimensions.NULLIFIER_KEYS = numCurr;
356
+ this.requestedDimensions.KEY_VALIDATION = numCurr;
354
357
 
355
358
  return true;
356
359
  }
@@ -360,14 +363,16 @@ export class PrivateKernelResetPrivateInputsBuilder {
360
363
  this.numTransientData = 0;
361
364
 
362
365
  const nextAccumNoteHashes =
363
- countAccumulatedItems(this.previousKernel.end.noteHashes) +
364
- countAccumulatedItems(this.nextIteration?.noteHashes ?? []);
366
+ this.previousKernel.end.noteHashes.claimedLength + (this.nextIteration?.noteHashes.claimedLength ?? 0);
365
367
  const noteHashWillOverflow = nextAccumNoteHashes > MAX_NOTE_HASHES_PER_TX;
366
368
  const nextAccumNullifiers =
367
- countAccumulatedItems(this.previousKernel.end.nullifiers) +
368
- countAccumulatedItems(this.nextIteration?.nullifiers ?? []);
369
+ this.previousKernel.end.nullifiers.claimedLength + (this.nextIteration?.nullifiers.claimedLength ?? 0);
369
370
  const nullifierWillOverflow = nextAccumNullifiers > MAX_NULLIFIERS_PER_TX;
370
- if (this.nextIteration && !noteHashWillOverflow && !nullifierWillOverflow) {
371
+ const nextAccumLogs =
372
+ this.previousKernel.end.privateLogs.claimedLength + (this.nextIteration?.privateLogs.claimedLength ?? 0);
373
+ const logsWillOverflow = nextAccumLogs > MAX_PRIVATE_LOGS_PER_TX;
374
+
375
+ if (this.nextIteration && !noteHashWillOverflow && !nullifierWillOverflow && !logsWillOverflow) {
371
376
  return false;
372
377
  }
373
378
 
@@ -379,35 +384,36 @@ export class PrivateKernelResetPrivateInputsBuilder {
379
384
  this.executionStack,
380
385
  executionResult => executionResult.publicInputs.nullifierReadRequests,
381
386
  );
387
+ // TODO(#15902): Collect future logs and only allow squashing a note hash when all its logs have been emitted
388
+ // (i.e. none of the future logs are linked to the to-be-squashed note hashes).
382
389
  if (this.nextIteration) {
383
390
  // If it's not the final reset, only one dimension will be reset at a time.
384
391
  // The note hashes and nullifiers for the remaining read requests can't be squashed.
385
- futureNoteHashReads.push(
386
- ...this.previousKernel.validationRequests.noteHashReadRequests.filter(r => !r.isEmpty()),
387
- );
388
- futureNullifierReads.push(
389
- ...this.previousKernel.validationRequests.nullifierReadRequests.filter(r => !r.isEmpty()),
390
- );
392
+ futureNoteHashReads.push(...this.previousKernel.validationRequests.noteHashReadRequests.getActiveItems());
393
+ futureNullifierReads.push(...this.previousKernel.validationRequests.nullifierReadRequests.getActiveItems());
391
394
  }
392
395
 
393
- const { numTransientData, hints: transientDataIndexHints } = buildTransientDataHints(
396
+ const { numTransientData, hints: transientDataSquashingHints } = buildTransientDataHints(
394
397
  this.previousKernel.end.noteHashes,
395
398
  this.previousKernel.end.nullifiers,
396
399
  futureNoteHashReads,
397
400
  futureNullifierReads,
398
401
  this.noteHashNullifierCounterMap,
399
- this.validationRequestsSplitCounter,
400
- MAX_NOTE_HASHES_PER_TX,
401
- MAX_NULLIFIERS_PER_TX,
402
+ this.splitCounter,
402
403
  );
403
404
 
404
405
  if (this.nextIteration && !numTransientData) {
405
406
  const forceResetAll = true;
406
407
  const canClearReadRequests =
407
408
  (noteHashWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll)) ||
408
- (nullifierWillOverflow && this.needsResetNullifierReadRequests(forceResetAll));
409
+ (nullifierWillOverflow && this.needsResetNullifierReadRequests(forceResetAll)) ||
410
+ (logsWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll));
409
411
  if (!canClearReadRequests) {
410
- const overflownData = noteHashWillOverflow ? 'note hashes' : 'nullifiers';
412
+ const overflownData = noteHashWillOverflow
413
+ ? 'note hashes'
414
+ : nullifierWillOverflow
415
+ ? 'nullifiers'
416
+ : 'private logs';
411
417
  throw new Error(`Number of ${overflownData} exceeds the limit.`);
412
418
  }
413
419
  // Clearing the read requests might not be enough to squash the overflown data.
@@ -416,8 +422,8 @@ export class PrivateKernelResetPrivateInputsBuilder {
416
422
  }
417
423
 
418
424
  this.numTransientData = numTransientData;
419
- this.transientDataIndexHints = transientDataIndexHints;
420
- this.requestedDimensions.TRANSIENT_DATA_AMOUNT = numTransientData;
425
+ this.transientDataSquashingHints = transientDataSquashingHints;
426
+ this.requestedDimensions.TRANSIENT_DATA_SQUASHING = numTransientData;
421
427
 
422
428
  return numTransientData > 0;
423
429
  }
@@ -427,9 +433,11 @@ export class PrivateKernelResetPrivateInputsBuilder {
427
433
  throw new Error('`needsResetTransientData` must be run before `needsSiloNoteHashes`.');
428
434
  }
429
435
 
430
- const numNoteHashes = this.previousKernel.end.noteHashes.filter(n => !n.contractAddress.isZero()).length;
436
+ const numNoteHashes = this.previousKernel.end.noteHashes
437
+ .getActiveItems()
438
+ .filter(n => !n.contractAddress.isZero()).length;
431
439
  const numToSilo = Math.max(0, numNoteHashes - this.numTransientData);
432
- this.requestedDimensions.NOTE_HASH_SILOING_AMOUNT = numToSilo;
440
+ this.requestedDimensions.NOTE_HASH_SILOING = numToSilo;
433
441
 
434
442
  return numToSilo > 0;
435
443
  }
@@ -439,13 +447,15 @@ export class PrivateKernelResetPrivateInputsBuilder {
439
447
  throw new Error('`needsResetTransientData` must be run before `needsSiloNullifiers`.');
440
448
  }
441
449
 
442
- const numNullifiers = this.previousKernel.end.nullifiers.filter(n => !n.contractAddress.isZero()).length;
450
+ const numNullifiers = this.previousKernel.end.nullifiers
451
+ .getActiveItems()
452
+ .filter(n => !n.contractAddress.isZero()).length;
443
453
  const numToSilo = Math.max(0, numNullifiers - this.numTransientData);
444
454
  // Include the first nullifier if there's something to silo.
445
455
  // The reset circuit checks that capped_size must be greater than or equal to all non-empty nullifiers.
446
456
  // Which includes the first nullifier, even though its contract address is always zero and doesn't need siloing.
447
457
  const cappedSize = numToSilo ? numToSilo + 1 : 0;
448
- this.requestedDimensions.NULLIFIER_SILOING_AMOUNT = cappedSize;
458
+ this.requestedDimensions.NULLIFIER_SILOING = cappedSize;
449
459
 
450
460
  return numToSilo > 0;
451
461
  }
@@ -456,16 +466,18 @@ export class PrivateKernelResetPrivateInputsBuilder {
456
466
  }
457
467
 
458
468
  const privateLogs = this.previousKernel.end.privateLogs;
459
- const numLogs = privateLogs.filter(l => !l.contractAddress.isZero()).length;
469
+ const numLogs = privateLogs.getActiveItems().filter(l => !l.contractAddress.isZero()).length;
460
470
 
461
471
  const noteHashes = this.previousKernel.end.noteHashes;
462
- const squashedNoteHashCounters = this.transientDataIndexHints
463
- .filter(h => h.noteHashIndex < noteHashes.length)
464
- .map(h => noteHashes[h.noteHashIndex].counter);
465
- const numSquashedLogs = privateLogs.filter(l => squashedNoteHashCounters.includes(l.inner.noteHashCounter)).length;
472
+ const squashedNoteHashCounters = this.transientDataSquashingHints
473
+ .filter(h => h.noteHashIndex < noteHashes.claimedLength)
474
+ .map(h => noteHashes.array[h.noteHashIndex].counter);
475
+ const numSquashedLogs = privateLogs
476
+ .getActiveItems()
477
+ .filter(l => squashedNoteHashCounters.includes(l.inner.noteHashCounter)).length;
466
478
 
467
479
  const numToSilo = numLogs - numSquashedLogs;
468
- this.requestedDimensions.PRIVATE_LOG_SILOING_AMOUNT = numToSilo;
480
+ this.requestedDimensions.PRIVATE_LOG_SILOING = numToSilo;
469
481
 
470
482
  return numToSilo > 0;
471
483
  }