@aztec/pxe 0.0.0-test.1 → 0.0.1-commit.0208eb9

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