@aztec/pxe 0.0.1-commit.f2ce05ee → 0.0.1-commit.f5a9928

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 (544) hide show
  1. package/dest/bin/check_oracle_version.js +41 -112
  2. package/dest/bin/index.d.ts +2 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +1 -0
  5. package/dest/bin/oracle_version_helpers.d.ts +34 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +46 -0
  8. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  10. package/dest/block_synchronizer/block_stream_source.js +37 -0
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +22 -16
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +71 -28
  14. package/dest/config/index.d.ts +9 -2
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +14 -15
  17. package/dest/config/package_info.js +1 -1
  18. package/dest/contract/contract_class_service.d.ts +24 -0
  19. package/dest/contract/contract_class_service.d.ts.map +1 -0
  20. package/dest/contract/contract_class_service.js +36 -0
  21. package/dest/contract/contract_sync_service.d.ts +48 -0
  22. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  23. package/dest/contract/contract_sync_service.js +119 -0
  24. package/dest/contract/helpers.d.ts +7 -0
  25. package/dest/contract/helpers.d.ts.map +1 -0
  26. package/dest/contract/helpers.js +20 -0
  27. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  28. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  29. package/dest/contract/skip_sync_contracts.js +18 -0
  30. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  31. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  32. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  33. package/dest/contract_function_simulator/contract_function_simulator.d.ts +72 -43
  34. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/contract_function_simulator.js +266 -114
  36. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  37. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  38. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  39. package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -10
  40. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/execution_note_cache.js +10 -29
  42. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  43. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  45. package/dest/contract_function_simulator/index.d.ts +26 -5
  46. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/index.js +11 -3
  48. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  49. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  50. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  51. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  52. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  53. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  54. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  55. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  57. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  58. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  60. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -4
  61. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +9 -10
  63. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  64. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  65. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  66. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  67. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  68. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  69. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +19 -10
  70. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -24
  72. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
  73. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  74. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -63
  75. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  76. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  77. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  78. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -5
  79. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  80. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +8 -12
  81. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  82. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  83. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  84. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  85. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  86. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  87. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  88. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  89. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  90. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  91. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  92. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  93. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  94. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  95. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  96. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  97. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  98. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  99. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  100. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  101. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  102. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  103. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  104. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  105. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  106. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  107. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  108. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  109. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  110. package/dest/contract_function_simulator/oracle/index.js +1 -1
  111. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -98
  112. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  113. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  114. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  115. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  116. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  117. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  118. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  119. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  120. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  121. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  122. package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
  123. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
  124. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  125. package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -0
  126. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
  127. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  128. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1243 -0
  129. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  130. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  131. package/dest/contract_function_simulator/oracle/private_execution.js +7 -6
  132. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +82 -98
  133. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  134. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +263 -117
  135. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +206 -83
  136. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  137. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +688 -188
  138. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  139. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  140. package/dest/contract_function_simulator/pick_notes.js +20 -3
  141. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  142. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  143. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  144. package/dest/contract_logging.d.ts +27 -0
  145. package/dest/contract_logging.d.ts.map +1 -0
  146. package/dest/contract_logging.js +38 -0
  147. package/dest/debug/pxe_debug_utils.d.ts +5 -9
  148. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  149. package/dest/debug/pxe_debug_utils.js +4 -10
  150. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  151. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  152. package/dest/entrypoints/client/bundle/index.js +3 -0
  153. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  154. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  155. package/dest/entrypoints/client/bundle/utils.js +29 -8
  156. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  157. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  158. package/dest/entrypoints/client/lazy/index.js +3 -0
  159. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  160. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  161. package/dest/entrypoints/client/lazy/utils.js +29 -8
  162. package/dest/entrypoints/client/store.d.ts +14 -0
  163. package/dest/entrypoints/client/store.d.ts.map +1 -0
  164. package/dest/entrypoints/client/store.js +42 -0
  165. package/dest/entrypoints/pxe_creation_options.d.ts +16 -2
  166. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  167. package/dest/entrypoints/pxe_creation_options.js +3 -1
  168. package/dest/entrypoints/server/index.d.ts +8 -3
  169. package/dest/entrypoints/server/index.d.ts.map +1 -1
  170. package/dest/entrypoints/server/index.js +6 -2
  171. package/dest/entrypoints/server/store.d.ts +18 -0
  172. package/dest/entrypoints/server/store.d.ts.map +1 -0
  173. package/dest/entrypoints/server/store.js +28 -0
  174. package/dest/entrypoints/server/utils.d.ts +4 -3
  175. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  176. package/dest/entrypoints/server/utils.js +30 -8
  177. package/dest/error_enriching.d.ts +5 -3
  178. package/dest/error_enriching.d.ts.map +1 -1
  179. package/dest/error_enriching.js +15 -12
  180. package/dest/events/event_service.d.ts +21 -5
  181. package/dest/events/event_service.d.ts.map +1 -1
  182. package/dest/events/event_service.js +51 -17
  183. package/dest/events/private_event_filter_validator.d.ts +3 -2
  184. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  185. package/dest/events/private_event_filter_validator.js +15 -0
  186. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  187. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  188. package/dest/hooks/authorize_utility_call.js +4 -0
  189. package/dest/hooks/execution_hooks.d.ts +62 -0
  190. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  191. package/dest/hooks/execution_hooks.js +9 -0
  192. package/dest/hooks/index.d.ts +5 -0
  193. package/dest/hooks/index.d.ts.map +1 -0
  194. package/dest/hooks/index.js +2 -0
  195. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  196. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  197. package/dest/hooks/resolve_custom_request.js +3 -0
  198. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  199. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  200. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  201. package/dest/logs/log_service.d.ts +21 -10
  202. package/dest/logs/log_service.d.ts.map +1 -1
  203. package/dest/logs/log_service.js +184 -90
  204. package/dest/messages/tx_resolver_service.d.ts +28 -0
  205. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  206. package/dest/messages/tx_resolver_service.js +62 -0
  207. package/dest/node/benchmarked_node.d.ts +20 -0
  208. package/dest/node/benchmarked_node.d.ts.map +1 -0
  209. package/dest/node/benchmarked_node.js +94 -0
  210. package/dest/node/caching_aztec_node.d.ts +24 -0
  211. package/dest/node/caching_aztec_node.d.ts.map +1 -0
  212. package/dest/node/caching_aztec_node.js +268 -0
  213. package/dest/notes/note_service.d.ts +34 -6
  214. package/dest/notes/note_service.d.ts.map +1 -1
  215. package/dest/notes/note_service.js +85 -59
  216. package/dest/notes_filter.d.ts +24 -0
  217. package/dest/notes_filter.d.ts.map +1 -0
  218. package/dest/notes_filter.js +4 -0
  219. package/dest/oracle_version.d.ts +4 -3
  220. package/dest/oracle_version.d.ts.map +1 -1
  221. package/dest/oracle_version.js +20 -10
  222. package/dest/private_kernel/batch_planner.d.ts +47 -0
  223. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  224. package/dest/private_kernel/batch_planner.js +104 -0
  225. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  226. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  227. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  228. package/dest/private_kernel/hints/index.d.ts +1 -1
  229. package/dest/private_kernel/hints/index.js +1 -1
  230. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  231. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  232. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +138 -72
  233. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  234. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  235. package/dest/private_kernel/hints/test_utils.js +202 -0
  236. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  237. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  238. package/dest/private_kernel/private_kernel_execution_prover.js +165 -82
  239. package/dest/private_kernel/private_kernel_oracle.d.ts +17 -11
  240. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  241. package/dest/private_kernel/private_kernel_oracle.js +47 -29
  242. package/dest/pxe.d.ts +219 -68
  243. package/dest/pxe.d.ts.map +1 -1
  244. package/dest/pxe.js +423 -243
  245. package/dest/storage/address_store/address_store.d.ts +1 -1
  246. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  247. package/dest/storage/address_store/address_store.js +2 -1
  248. package/dest/storage/allowed_scopes.d.ts +6 -0
  249. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  250. package/dest/storage/allowed_scopes.js +7 -0
  251. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
  252. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  253. package/dest/storage/anchor_block_store/anchor_block_store.js +9 -7
  254. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  255. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  256. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  257. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  258. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  259. package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
  260. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  261. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  262. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  263. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  264. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  265. package/dest/storage/capsule_store/capsule_service.js +47 -0
  266. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  267. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  268. package/dest/storage/capsule_store/capsule_store.js +37 -29
  269. package/dest/storage/capsule_store/index.d.ts +2 -1
  270. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  271. package/dest/storage/capsule_store/index.js +1 -0
  272. package/dest/storage/contract_store/contract_store.d.ts +63 -33
  273. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  274. package/dest/storage/contract_store/contract_store.js +179 -130
  275. package/dest/storage/contract_store/private_functions_tree.d.ts +1 -1
  276. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -1
  277. package/dest/storage/contract_store/private_functions_tree.js +2 -1
  278. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  279. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  280. package/dest/storage/fact_store/fact_service.js +45 -0
  281. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  282. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  283. package/dest/storage/fact_store/fact_store.js +411 -0
  284. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  285. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  286. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  287. package/dest/storage/fact_store/index.d.ts +6 -0
  288. package/dest/storage/fact_store/index.d.ts.map +1 -0
  289. package/dest/storage/fact_store/index.js +4 -0
  290. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  291. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  292. package/dest/storage/fact_store/origin_state.js +60 -0
  293. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  294. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  295. package/dest/storage/fact_store/stored_fact.js +64 -0
  296. package/dest/storage/index.d.ts +3 -2
  297. package/dest/storage/index.d.ts.map +1 -1
  298. package/dest/storage/index.js +2 -1
  299. package/dest/storage/metadata.d.ts +2 -2
  300. package/dest/storage/metadata.d.ts.map +1 -1
  301. package/dest/storage/metadata.js +1 -1
  302. package/dest/storage/note_store/note_store.d.ts +44 -35
  303. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  304. package/dest/storage/note_store/note_store.js +203 -174
  305. package/dest/storage/note_store/stored_note.d.ts +3 -8
  306. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  307. package/dest/storage/note_store/stored_note.js +4 -20
  308. package/dest/storage/open_pxe_stores.d.ts +35 -0
  309. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  310. package/dest/storage/open_pxe_stores.js +29 -0
  311. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  312. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  313. package/dest/storage/private_event_store/private_event_store.js +48 -45
  314. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  315. package/dest/storage/store_identity.d.ts +35 -0
  316. package/dest/storage/store_identity.d.ts.map +1 -0
  317. package/dest/storage/store_identity.js +44 -0
  318. package/dest/storage/tagging_store/index.d.ts +2 -2
  319. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  320. package/dest/storage/tagging_store/index.js +1 -1
  321. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  322. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  323. package/dest/storage/tagging_store/sender_tagging_store.d.ts +63 -31
  324. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  325. package/dest/storage/tagging_store/sender_tagging_store.js +210 -129
  326. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  327. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  328. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  329. package/dest/tagging/constants.d.ts +11 -2
  330. package/dest/tagging/constants.d.ts.map +1 -1
  331. package/dest/tagging/constants.js +38 -10
  332. package/dest/tagging/get_all_logs_by_tags.d.ts +55 -10
  333. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  334. package/dest/tagging/get_all_logs_by_tags.js +65 -32
  335. package/dest/tagging/index.d.ts +8 -7
  336. package/dest/tagging/index.d.ts.map +1 -1
  337. package/dest/tagging/index.js +6 -5
  338. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  339. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  340. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  341. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
  342. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  343. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +235 -0
  344. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  345. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  346. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  347. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  348. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  349. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  350. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +8 -10
  351. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  352. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +25 -22
  353. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
  354. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
  355. package/dest/tagging/sender_sync/utils/classify_pending_txs.js +62 -0
  356. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +17 -9
  357. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  358. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +53 -39
  359. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
  360. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
  361. package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +42 -0
  362. package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
  363. package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
  364. package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
  365. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  366. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  367. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  368. package/package.json +20 -17
  369. package/src/bin/check_oracle_version.ts +46 -135
  370. package/src/bin/index.ts +1 -0
  371. package/src/bin/oracle_version_helpers.ts +54 -0
  372. package/src/block_synchronizer/block_stream_source.ts +42 -0
  373. package/src/block_synchronizer/block_synchronizer.ts +86 -40
  374. package/src/config/index.ts +16 -9
  375. package/src/config/package_info.ts +1 -1
  376. package/src/contract/contract_class_service.ts +45 -0
  377. package/src/contract/contract_sync_service.ts +179 -0
  378. package/src/contract/helpers.ts +35 -0
  379. package/src/contract/skip_sync_contracts.ts +23 -0
  380. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  381. package/src/contract_function_simulator/contract_function_simulator.ts +468 -180
  382. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  383. package/src/contract_function_simulator/execution_note_cache.ts +10 -30
  384. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  385. package/src/contract_function_simulator/index.ts +89 -4
  386. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  387. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  388. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  389. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  390. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +10 -9
  391. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  392. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  393. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
  394. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -64
  395. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  396. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -11
  397. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  398. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  399. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  400. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  401. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  402. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  403. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  404. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  405. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  406. package/src/contract_function_simulator/oracle/index.ts +1 -15
  407. package/src/contract_function_simulator/oracle/interfaces.ts +11 -176
  408. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  409. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  410. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  411. package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
  412. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1052 -0
  413. package/src/contract_function_simulator/oracle/private_execution.ts +6 -7
  414. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +320 -210
  415. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +1028 -268
  416. package/src/contract_function_simulator/pick_notes.ts +22 -3
  417. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  418. package/src/contract_logging.ts +52 -0
  419. package/src/debug/pxe_debug_utils.ts +11 -17
  420. package/src/entrypoints/client/bundle/index.ts +3 -0
  421. package/src/entrypoints/client/bundle/utils.ts +35 -9
  422. package/src/entrypoints/client/lazy/index.ts +3 -0
  423. package/src/entrypoints/client/lazy/utils.ts +35 -9
  424. package/src/entrypoints/client/store.ts +54 -0
  425. package/src/entrypoints/pxe_creation_options.ts +21 -1
  426. package/src/entrypoints/server/index.ts +8 -2
  427. package/src/entrypoints/server/store.ts +47 -0
  428. package/src/entrypoints/server/utils.ts +46 -21
  429. package/src/error_enriching.ts +30 -13
  430. package/src/events/event_service.ts +85 -26
  431. package/src/events/private_event_filter_validator.ts +21 -1
  432. package/src/hooks/authorize_utility_call.ts +44 -0
  433. package/src/hooks/execution_hooks.ts +68 -0
  434. package/src/hooks/index.ts +13 -0
  435. package/src/hooks/resolve_custom_request.ts +24 -0
  436. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  437. package/src/logs/log_service.ts +231 -157
  438. package/src/messages/tx_resolver_service.ts +81 -0
  439. package/src/node/benchmarked_node.ts +140 -0
  440. package/src/node/caching_aztec_node.ts +407 -0
  441. package/src/notes/note_service.ts +128 -86
  442. package/src/notes_filter.ts +24 -0
  443. package/src/oracle_version.ts +20 -10
  444. package/src/private_kernel/batch_planner.ts +169 -0
  445. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  446. package/src/private_kernel/hints/index.ts +1 -1
  447. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +179 -121
  448. package/src/private_kernel/hints/test_utils.ts +318 -0
  449. package/src/private_kernel/private_kernel_execution_prover.ts +252 -116
  450. package/src/private_kernel/private_kernel_oracle.ts +65 -36
  451. package/src/pxe.ts +698 -311
  452. package/src/storage/address_store/address_store.ts +2 -1
  453. package/src/storage/allowed_scopes.ts +14 -0
  454. package/src/storage/anchor_block_store/anchor_block_store.ts +9 -7
  455. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  456. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  457. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  458. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  459. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  460. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  461. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  462. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  463. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  464. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  465. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  466. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  467. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  468. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  469. package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
  470. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  471. package/src/storage/capsule_store/capsule_service.ts +85 -0
  472. package/src/storage/capsule_store/capsule_store.ts +45 -27
  473. package/src/storage/capsule_store/index.ts +1 -0
  474. package/src/storage/contract_store/contract_store.ts +238 -166
  475. package/src/storage/contract_store/private_functions_tree.ts +2 -1
  476. package/src/storage/fact_store/fact_service.ts +69 -0
  477. package/src/storage/fact_store/fact_store.ts +488 -0
  478. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  479. package/src/storage/fact_store/index.ts +15 -0
  480. package/src/storage/fact_store/origin_state.ts +84 -0
  481. package/src/storage/fact_store/stored_fact.ts +80 -0
  482. package/src/storage/index.ts +2 -1
  483. package/src/storage/metadata.ts +1 -1
  484. package/src/storage/note_store/note_store.ts +236 -194
  485. package/src/storage/note_store/stored_note.ts +5 -27
  486. package/src/storage/open_pxe_stores.ts +52 -0
  487. package/src/storage/private_event_store/private_event_store.ts +55 -56
  488. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  489. package/src/storage/store_identity.ts +72 -0
  490. package/src/storage/tagging_store/index.ts +1 -1
  491. package/src/storage/tagging_store/recipient_tagging_store.ts +5 -5
  492. package/src/storage/tagging_store/sender_tagging_store.ts +278 -158
  493. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  494. package/src/tagging/constants.ts +42 -10
  495. package/src/tagging/get_all_logs_by_tags.ts +125 -36
  496. package/src/tagging/index.ts +12 -6
  497. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  498. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +356 -0
  499. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +4 -4
  500. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  501. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +32 -27
  502. package/src/tagging/sender_sync/utils/classify_pending_txs.ts +92 -0
  503. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +57 -50
  504. package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +65 -0
  505. package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
  506. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  507. package/dest/contract_function_simulator/benchmarked_node.d.ts +0 -9
  508. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +0 -1
  509. package/dest/contract_function_simulator/benchmarked_node.js +0 -77
  510. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -60
  511. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  512. package/dest/contract_function_simulator/oracle/oracle.js +0 -368
  513. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  514. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  515. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
  516. package/dest/contract_sync/contract_sync_service.d.ts +0 -41
  517. package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
  518. package/dest/contract_sync/contract_sync_service.js +0 -82
  519. package/dest/contract_sync/helpers.d.ts +0 -28
  520. package/dest/contract_sync/helpers.d.ts.map +0 -1
  521. package/dest/contract_sync/helpers.js +0 -55
  522. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  523. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  524. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  525. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  526. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  527. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -15
  528. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  529. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  530. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -15
  531. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  532. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -32
  533. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +0 -11
  534. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  535. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +0 -29
  536. package/src/contract_function_simulator/benchmarked_node.ts +0 -103
  537. package/src/contract_function_simulator/oracle/oracle.ts +0 -637
  538. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
  539. package/src/contract_sync/contract_sync_service.ts +0 -129
  540. package/src/contract_sync/helpers.ts +0 -93
  541. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
  542. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -143
  543. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -49
  544. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -36
@@ -10,7 +10,8 @@ import {
10
10
  import { makeTuple } from '@aztec/foundation/array';
11
11
  import { padArrayEnd } from '@aztec/foundation/collection';
12
12
  import type { Fr } from '@aztec/foundation/curves/bn254';
13
- import { type Tuple, assertLength } from '@aztec/foundation/serialize';
13
+ import { allToCompletion } from '@aztec/foundation/promise';
14
+ import { assertLength } from '@aztec/foundation/serialize';
14
15
  import { MembershipWitness } from '@aztec/foundation/trees';
15
16
  import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
16
17
  import {
@@ -26,17 +27,16 @@ import {
26
27
  type PrivateKernelSimulateOutput,
27
28
  ReadRequestActionEnum,
28
29
  ReadRequestResetActions,
29
- type ScopedKeyValidationRequestAndGenerator,
30
- ScopedNoteHash,
31
- ScopedNullifier,
32
- ScopedReadRequest,
30
+ type ScopedKeyValidationRequestAndSeparator,
33
31
  TransientDataSquashingHint,
34
32
  buildNoteHashReadRequestHintsFromResetActions,
35
33
  buildNullifierReadRequestHintsFromResetActions,
36
34
  buildTransientDataHints,
35
+ countSquashedLogs,
37
36
  findPrivateKernelResetDimensions,
38
37
  getNoteHashReadRequestResetActions,
39
38
  getNullifierReadRequestResetActions,
39
+ kernelStateIsForPublic,
40
40
  privateKernelResetDimensionNames,
41
41
  } from '@aztec/stdlib/kernel';
42
42
  import { type PrivateCallExecutionResult, collectNested } from '@aztec/stdlib/tx';
@@ -44,15 +44,6 @@ import { VkData } from '@aztec/stdlib/vks';
44
44
 
45
45
  import type { PrivateKernelOracle } from '../private_kernel_oracle.js';
46
46
 
47
- function collectNestedReadRequests<N extends number>(
48
- executionStack: PrivateCallExecutionResult[],
49
- extractReadRequests: (execution: PrivateCallExecutionResult) => ClaimedLengthArray<ScopedReadRequest, N>,
50
- ): ScopedReadRequest[] {
51
- return collectNested(executionStack, executionResult => {
52
- return extractReadRequests(executionResult).getActiveItems();
53
- });
54
- }
55
-
56
47
  function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
57
48
  return async (nullifier: Fr) => {
58
49
  const res = await oracle.getNullifierMembershipWitness(nullifier);
@@ -68,18 +59,18 @@ function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
68
59
  };
69
60
  }
70
61
 
71
- async function getMasterSecretKeysAndAppKeyGenerators(
62
+ async function getMasterSecretKeysAndKeyTypeDomainSeparators(
72
63
  keyValidationRequests: ClaimedLengthArray<
73
- ScopedKeyValidationRequestAndGenerator,
64
+ ScopedKeyValidationRequestAndSeparator,
74
65
  typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX
75
66
  >,
76
67
  numRequestsToVerify: number,
77
68
  oracle: PrivateKernelOracle,
78
69
  ) {
79
70
  const numRequestsToProcess = Math.min(keyValidationRequests.claimedLength, numRequestsToVerify);
80
- const keysHints = await Promise.all(
71
+ const keysHints = await allToCompletion(
81
72
  keyValidationRequests.array.slice(0, numRequestsToProcess).map(async ({ request }) => {
82
- const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
73
+ const secretKeys = await oracle.getMasterSecretKey(request.request.pkMHash);
83
74
  return new KeyValidationHint(secretKeys);
84
75
  }),
85
76
  );
@@ -91,11 +82,14 @@ export class PrivateKernelResetPrivateInputsBuilder {
91
82
  // If there's no next iteration, it's the final reset.
92
83
  private nextIteration?: PrivateCircuitPublicInputs;
93
84
 
94
- private noteHashResetActions: ReadRequestResetActions<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>;
95
- private nullifierResetActions: ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>;
85
+ private noteHashResetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
86
+ private nullifierResetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
96
87
  private numTransientData?: number;
97
- private transientDataSquashingHints: Tuple<TransientDataSquashingHint, typeof MAX_NULLIFIERS_PER_TX>;
98
- private requestedDimensions: PrivateKernelResetDimensions;
88
+ private transientDataSquashingHints = makeTuple(
89
+ MAX_NULLIFIERS_PER_TX,
90
+ () => new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
91
+ );
92
+ private requestedDimensions = PrivateKernelResetDimensions.empty();
99
93
 
100
94
  constructor(
101
95
  private previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>,
@@ -104,21 +98,18 @@ export class PrivateKernelResetPrivateInputsBuilder {
104
98
  private splitCounter: number,
105
99
  ) {
106
100
  this.previousKernel = previousKernelOutput.publicInputs;
107
- this.requestedDimensions = PrivateKernelResetDimensions.empty();
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(
111
- MAX_NULLIFIERS_PER_TX,
112
- () => new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
113
- );
114
101
  this.nextIteration = executionStack[this.executionStack.length - 1]?.publicInputs;
115
102
  }
116
103
 
104
+ getRequestedDimensions(): PrivateKernelResetDimensions {
105
+ return this.requestedDimensions;
106
+ }
107
+
117
108
  needsReset(): boolean {
118
109
  const fns: (() => boolean)[] = [
119
110
  () => this.needsResetNoteHashReadRequests(),
120
111
  () => this.needsResetNullifierReadRequests(),
121
- () => this.needsResetNullifierKeys(),
112
+ () => this.needsResetKeyValidationRequests(),
122
113
  () => this.needsResetTransientData(),
123
114
  ];
124
115
 
@@ -145,15 +136,23 @@ export class PrivateKernelResetPrivateInputsBuilder {
145
136
 
146
137
  const isInner = !!this.nextIteration;
147
138
 
148
- // "final" reset must be done at most once.
149
- // Because the code that silo note hashes can't be run repeatedly.
139
+ // "final" reset must be done exactly once, because siloing can't be run repeatedly.
150
140
  // The dimensions found must be big enough to reset all values, i.e. empty remainder.
151
141
  const allowRemainder = isInner;
152
142
 
143
+ // Terminal reset picks from the finalTail / finalTailToPublic catalogs; mid-tx resets always
144
+ // use the inner catalog. The public/private decision must match `kernelStateIsForPublic` - the
145
+ // same predicate the circuit inputs and the orchestrator use.
146
+ const mode = isInner
147
+ ? ('inner' as const)
148
+ : kernelStateIsForPublic(this.previousKernel)
149
+ ? ('finalTailToPublic' as const)
150
+ : ('finalTail' as const);
151
+
153
152
  const dimensions = findPrivateKernelResetDimensions(
154
153
  this.requestedDimensions,
155
154
  privateKernelResetDimensionsConfig,
156
- isInner,
155
+ mode,
157
156
  allowRemainder,
158
157
  );
159
158
 
@@ -170,7 +169,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
170
169
 
171
170
  // Execute all the expensive node querying operations in parallel.
172
171
  const [previousVkMembershipWitness, noteHashReadRequestHints, nullifierReadRequestHints, keyValidationHints] =
173
- await Promise.all([
172
+ await allToCompletion([
174
173
  oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey.keyAsFields),
175
174
  buildNoteHashReadRequestHintsFromResetActions<
176
175
  typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
@@ -189,8 +188,8 @@ export class PrivateKernelResetPrivateInputsBuilder {
189
188
  this.previousKernel.validationRequests.nullifierReadRequests,
190
189
  this.nullifierResetActions,
191
190
  ),
192
- getMasterSecretKeysAndAppKeyGenerators(
193
- this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators,
191
+ getMasterSecretKeysAndKeyTypeDomainSeparators(
192
+ this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators,
194
193
  dimensions.KEY_VALIDATION,
195
194
  oracle,
196
195
  ),
@@ -246,24 +245,17 @@ export class PrivateKernelResetPrivateInputsBuilder {
246
245
  resetActions.pendingReadHints = resetActions.pendingReadHints.slice(0, maxPending);
247
246
  }
248
247
 
249
- private needsResetNoteHashReadRequests(forceResetAll = false) {
248
+ private needsResetNoteHashReadRequests(forceReset = false) {
250
249
  const numCurr = this.previousKernel.validationRequests.noteHashReadRequests.claimedLength;
251
250
  const numNext = this.nextIteration ? this.nextIteration.noteHashReadRequests.claimedLength : 0;
252
- const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
251
+ const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
253
252
  if (numCurr + numNext <= maxAmountToKeep) {
254
253
  return false;
255
254
  }
256
255
 
257
- const futureNoteHashes = collectNested(this.executionStack, executionResult => {
258
- return executionResult.publicInputs.noteHashes
259
- .getActiveItems()
260
- .map(noteHash => new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress));
261
- });
262
-
263
256
  const resetActions = getNoteHashReadRequestResetActions(
264
257
  this.previousKernel.validationRequests.noteHashReadRequests,
265
258
  this.previousKernel.end.noteHashes,
266
- futureNoteHashes,
267
259
  );
268
260
 
269
261
  const numPendingReads = resetActions.pendingReadHints.length;
@@ -272,53 +264,72 @@ export class PrivateKernelResetPrivateInputsBuilder {
272
264
  0,
273
265
  );
274
266
 
267
+ const totalReadsToReset = numPendingReads + numSettledReads;
268
+ const minResetNeeded = numCurr + numNext - maxAmountToKeep;
269
+ if (totalReadsToReset < minResetNeeded) {
270
+ if (!this.nextIteration) {
271
+ // In the final reset, all note hashes have been emitted. So if we can't reset all requests, at least one
272
+ // pending read request doesn't match any of them.
273
+ throw new Error('No matching note hash found for note hash read request.');
274
+ } else if (!forceReset) {
275
+ // A pending read request can only be reset if its note hash has already been included (e.g. a parent call might
276
+ // be reading a note hash emitted by a child call. The read request of the parent call is included before the note
277
+ // hash of the child call).
278
+ // If we can't clear enough read requests to make room for the next iteration's reads, we're stuck.
279
+ throw new Error('Number of note hash read requests exceeds the limit.');
280
+ } else if (totalReadsToReset == 0) {
281
+ // It's transient data squashing asking for the read requests to be reset first (forceReset == true), and
282
+ // there's nothing to reset, returns false and let needsResetTransientData throw a more descriptive error.
283
+ return false;
284
+ }
285
+ // Otherwise, forceReset is true, we should proceed to reset as many as we can.
286
+ }
287
+
275
288
  if (!this.nextIteration) {
289
+ // If there's no next iteration, we need to reset all the read requests.
276
290
  this.noteHashResetActions = resetActions;
277
291
  this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
278
292
  this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
279
293
  } else {
280
- // Pick only one dimension to reset if next iteration is not empty.
294
+ // If there's a next iteration, only one dimension can be reset at a time.
295
+ // So we pick the dimension that has more read requests to reset.
281
296
  if (numPendingReads > numSettledReads) {
282
- this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
283
- this.noteHashResetActions.actions = assertLength(
297
+ // Reset the pending read requests.
298
+ const pendingOnlyActions = assertLength(
284
299
  resetActions.actions.map(action =>
285
300
  action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
286
301
  ),
287
302
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
288
303
  );
289
- this.noteHashResetActions.pendingReadHints = resetActions.pendingReadHints;
304
+ this.noteHashResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
305
+ this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
290
306
  } else {
291
- this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
292
- this.noteHashResetActions.actions = assertLength(
307
+ // Reset the settled read requests.
308
+ const settledOnlyActions = assertLength(
293
309
  resetActions.actions.map(action =>
294
310
  action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
295
311
  ),
296
312
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
297
313
  );
314
+ this.noteHashResetActions = new ReadRequestResetActions(settledOnlyActions, []);
315
+ this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
298
316
  }
299
317
  }
300
318
 
301
319
  return true;
302
320
  }
303
321
 
304
- private needsResetNullifierReadRequests(forceResetAll = false) {
322
+ private needsResetNullifierReadRequests(forceReset = false) {
305
323
  const numCurr = this.previousKernel.validationRequests.nullifierReadRequests.claimedLength;
306
324
  const numNext = this.nextIteration ? this.nextIteration.nullifierReadRequests.claimedLength : 0;
307
- const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
325
+ const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
308
326
  if (numCurr + numNext <= maxAmountToKeep) {
309
327
  return false;
310
328
  }
311
329
 
312
- const futureNullifiers = collectNested(this.executionStack, executionResult => {
313
- return executionResult.publicInputs.nullifiers
314
- .getActiveItems()
315
- .map(nullifier => new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress));
316
- });
317
-
318
330
  const resetActions = getNullifierReadRequestResetActions(
319
331
  this.previousKernel.validationRequests.nullifierReadRequests,
320
332
  this.previousKernel.end.nullifiers,
321
- futureNullifiers,
322
333
  );
323
334
 
324
335
  const numPendingReads = resetActions.pendingReadHints.length;
@@ -327,38 +338,63 @@ export class PrivateKernelResetPrivateInputsBuilder {
327
338
  0,
328
339
  );
329
340
 
341
+ const totalReadsToReset = numPendingReads + numSettledReads;
342
+ const minResetNeeded = numCurr + numNext - maxAmountToKeep;
343
+ if (totalReadsToReset < minResetNeeded) {
344
+ if (!this.nextIteration) {
345
+ // In the final reset, all nullifiers have been emitted. So if we can't reset all requests, at least one pending
346
+ // read request doesn't match any of them.
347
+ throw new Error('No matching nullifier found for nullifier read request.');
348
+ } else if (!forceReset) {
349
+ // A pending read request can only be reset if its nullifier has already been included (e.g. a parent call might
350
+ // be reading a nullifier emitted by a child call. The read request of the parent call is included before the
351
+ // nullifier of the child call).
352
+ // If we can't clear enough read requests to make room for the next iteration's reads, we're stuck.
353
+ throw new Error('Number of nullifier read requests exceeds the limit.');
354
+ } else if (totalReadsToReset == 0) {
355
+ // It's transient data squashing asking for the read requests to be reset first (forceReset == true), and
356
+ // there's nothing to reset, returns false and let needsResetTransientData throw a more descriptive error.
357
+ return false;
358
+ }
359
+ // Otherwise, forceReset is true, we should proceed to reset as many as we can.
360
+ }
361
+
330
362
  if (!this.nextIteration) {
363
+ // If there's no next iteration, we need to reset all the read requests.
331
364
  this.nullifierResetActions = resetActions;
332
365
  this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
333
366
  this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
334
367
  } else {
335
- // Pick only one dimension to reset if next iteration is not empty.
368
+ // If there's a next iteration, we can only reset one dimension at a time.
336
369
  if (numPendingReads > numSettledReads) {
337
- this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
338
- this.nullifierResetActions.actions = assertLength(
370
+ // Reset the pending read requests.
371
+ const pendingOnlyActions = assertLength(
339
372
  resetActions.actions.map(action =>
340
373
  action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
341
374
  ),
342
375
  MAX_NULLIFIER_READ_REQUESTS_PER_TX,
343
376
  );
344
- this.nullifierResetActions.pendingReadHints = resetActions.pendingReadHints;
377
+ this.nullifierResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
378
+ this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
345
379
  } else {
346
- this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
347
- this.nullifierResetActions.actions = assertLength(
380
+ // Reset the settled read requests.
381
+ const settledOnlyActions = assertLength(
348
382
  resetActions.actions.map(action =>
349
383
  action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
350
384
  ),
351
385
  MAX_NULLIFIER_READ_REQUESTS_PER_TX,
352
386
  );
387
+ this.nullifierResetActions = new ReadRequestResetActions(settledOnlyActions, []);
388
+ this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
353
389
  }
354
390
  }
355
391
 
356
392
  return true;
357
393
  }
358
394
 
359
- private needsResetNullifierKeys() {
360
- const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators.claimedLength;
361
- const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndGenerators.claimedLength : 0;
395
+ private needsResetKeyValidationRequests() {
396
+ const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators.claimedLength;
397
+ const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndSeparators.claimedLength : 0;
362
398
  const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
363
399
  if (numCurr + numNext <= maxAmountToKeep) {
364
400
  return false;
@@ -370,9 +406,6 @@ export class PrivateKernelResetPrivateInputsBuilder {
370
406
  }
371
407
 
372
408
  private needsResetTransientData() {
373
- // Initialize this to 0 so that needsSilo can be run.
374
- this.numTransientData = 0;
375
-
376
409
  const nextAccumNoteHashes =
377
410
  this.previousKernel.end.noteHashes.claimedLength + (this.nextIteration?.noteHashes.claimedLength ?? 0);
378
411
  const noteHashWillOverflow = nextAccumNoteHashes > MAX_NOTE_HASHES_PER_TX;
@@ -387,19 +420,19 @@ export class PrivateKernelResetPrivateInputsBuilder {
387
420
  return false;
388
421
  }
389
422
 
390
- const futureNoteHashReads = collectNestedReadRequests(
391
- this.executionStack,
392
- executionResult => executionResult.publicInputs.noteHashReadRequests,
423
+ const futureNoteHashReads = collectNested(this.executionStack, executionResult =>
424
+ executionResult.publicInputs.noteHashReadRequests.getActiveItems(),
393
425
  );
394
- const futureNullifierReads = collectNestedReadRequests(
395
- this.executionStack,
396
- executionResult => executionResult.publicInputs.nullifierReadRequests,
426
+ const futureNullifierReads = collectNested(this.executionStack, executionResult =>
427
+ executionResult.publicInputs.nullifierReadRequests.getActiveItems(),
428
+ );
429
+ const futureLogs = collectNested(this.executionStack, executionResult =>
430
+ executionResult.publicInputs.privateLogs.getActiveItems(),
397
431
  );
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).
400
432
  if (this.nextIteration) {
401
- // If it's not the final reset, only one dimension will be reset at a time.
402
- // The note hashes and nullifiers for the remaining read requests can't be squashed.
433
+ // If it's not the final reset, only one dimension will be reset at a time. Since we are resetting the transient
434
+ // data, the note hash and nullifier read requests in the previous kernel won't be squashed and need to be
435
+ // included in the future read requests.
403
436
  futureNoteHashReads.push(...this.previousKernel.validationRequests.noteHashReadRequests.getActiveItems());
404
437
  futureNullifierReads.push(...this.previousKernel.validationRequests.nullifierReadRequests.getActiveItems());
405
438
  }
@@ -409,27 +442,50 @@ export class PrivateKernelResetPrivateInputsBuilder {
409
442
  this.previousKernel.end.nullifiers,
410
443
  futureNoteHashReads,
411
444
  futureNullifierReads,
445
+ futureLogs,
412
446
  this.noteHashNullifierCounterMap,
413
447
  this.splitCounter,
414
448
  );
415
449
 
416
- if (this.nextIteration && !numTransientData) {
417
- const forceResetAll = true;
418
- const canClearReadRequests =
419
- (noteHashWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll)) ||
420
- (nullifierWillOverflow && this.needsResetNullifierReadRequests(forceResetAll)) ||
421
- (logsWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll));
422
- if (!canClearReadRequests) {
423
- const overflownData = noteHashWillOverflow
424
- ? 'note hashes'
425
- : nullifierWillOverflow
426
- ? 'nullifiers'
427
- : 'private logs';
428
- throw new Error(`Number of ${overflownData} exceeds the limit.`);
450
+ if (this.nextIteration) {
451
+ const noteHashOverflowBy = noteHashWillOverflow
452
+ ? nextAccumNoteHashes - MAX_NOTE_HASHES_PER_TX - numTransientData
453
+ : 0;
454
+ const nullifierOverflowBy = nullifierWillOverflow
455
+ ? nextAccumNullifiers - MAX_NULLIFIERS_PER_TX - numTransientData
456
+ : 0;
457
+ const numSquashedLogs = logsWillOverflow
458
+ ? countSquashedLogs(
459
+ this.previousKernel.end.noteHashes,
460
+ this.previousKernel.end.privateLogs,
461
+ transientDataSquashingHints.slice(0, numTransientData),
462
+ )
463
+ : 0;
464
+ const logsOverflowBy = logsWillOverflow ? nextAccumLogs - MAX_PRIVATE_LOGS_PER_TX - numSquashedLogs : 0;
465
+
466
+ if (noteHashOverflowBy > 0 || nullifierOverflowBy > 0 || logsOverflowBy > 0) {
467
+ // There's not enough transient data to squash to clear space for the overflow. It may be because some data is
468
+ // still required for read requests. Force a reset of the read requests first, and return to transient data
469
+ // squashing in the next round of reset.
470
+ // Note that clearing the read requests might not be enough to clear more space for the overflow. In this case,
471
+ // running the next reset will fail at the following check.
472
+ // Only one dimension can be reset at a time for an inner reset, so we try the note hash read requests first
473
+ // (which also helps with log overflow), then fall back to nullifier read requests.
474
+ const forceReset = true;
475
+ if ((noteHashOverflowBy > 0 || logsOverflowBy > 0) && this.needsResetNoteHashReadRequests(forceReset)) {
476
+ return true;
477
+ }
478
+ if (nullifierOverflowBy > 0 && this.needsResetNullifierReadRequests(forceReset)) {
479
+ return true;
480
+ }
481
+ if (noteHashWillOverflow) {
482
+ throw new Error('Number of note hashes exceeds the limit.');
483
+ }
484
+ if (nullifierWillOverflow) {
485
+ throw new Error('Number of nullifiers exceeds the limit.');
486
+ }
487
+ throw new Error('Number of private logs exceeds the limit.');
429
488
  }
430
- // Clearing the read requests might not be enough to squash the overflown data.
431
- // In this case, the next iteration will fail at the above check.
432
- return true;
433
489
  }
434
490
 
435
491
  this.numTransientData = numTransientData;
@@ -444,10 +500,13 @@ export class PrivateKernelResetPrivateInputsBuilder {
444
500
  throw new Error('`needsResetTransientData` must be run before `needsSiloNoteHashes`.');
445
501
  }
446
502
 
447
- const numNoteHashes = this.previousKernel.end.noteHashes
448
- .getActiveItems()
449
- .filter(n => !n.contractAddress.isZero()).length;
450
- const numToSilo = Math.max(0, numNoteHashes - this.numTransientData);
503
+ const noteHashes = this.previousKernel.end.noteHashes;
504
+ if (noteHashes.claimedLength > 0 && noteHashes.array[0].contractAddress.isZero()) {
505
+ // Already siloed.
506
+ return false;
507
+ }
508
+
509
+ const numToSilo = noteHashes.claimedLength - this.numTransientData;
451
510
  this.requestedDimensions.NOTE_HASH_SILOING = numToSilo;
452
511
 
453
512
  return numToSilo > 0;
@@ -458,15 +517,14 @@ export class PrivateKernelResetPrivateInputsBuilder {
458
517
  throw new Error('`needsResetTransientData` must be run before `needsSiloNullifiers`.');
459
518
  }
460
519
 
461
- const numNullifiers = this.previousKernel.end.nullifiers
462
- .getActiveItems()
463
- .filter(n => !n.contractAddress.isZero()).length;
464
- const numToSilo = Math.max(0, numNullifiers - this.numTransientData);
465
- // Include the first nullifier if there's something to silo.
466
- // The reset circuit checks that capped_size must be greater than or equal to all non-empty nullifiers.
467
- // Which includes the first nullifier, even though its contract address is always zero and doesn't need siloing.
468
- const cappedSize = numToSilo ? numToSilo + 1 : 0;
469
- this.requestedDimensions.NULLIFIER_SILOING = cappedSize;
520
+ const nullifiers = this.previousKernel.end.nullifiers;
521
+ if (nullifiers.claimedLength > 0 && nullifiers.array[0].contractAddress.isZero()) {
522
+ // Already siloed.
523
+ return false;
524
+ }
525
+
526
+ const numToSilo = nullifiers.claimedLength - this.numTransientData;
527
+ this.requestedDimensions.NULLIFIER_SILOING = numToSilo;
470
528
 
471
529
  return numToSilo > 0;
472
530
  }
@@ -477,17 +535,17 @@ export class PrivateKernelResetPrivateInputsBuilder {
477
535
  }
478
536
 
479
537
  const privateLogs = this.previousKernel.end.privateLogs;
480
- const numLogs = privateLogs.getActiveItems().filter(l => !l.contractAddress.isZero()).length;
538
+ if (privateLogs.claimedLength > 0 && privateLogs.array[0].contractAddress.isZero()) {
539
+ // Already siloed.
540
+ return false;
541
+ }
481
542
 
482
- const noteHashes = this.previousKernel.end.noteHashes;
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;
489
-
490
- const numToSilo = numLogs - numSquashedLogs;
543
+ const numSquashedLogs = countSquashedLogs(
544
+ this.previousKernel.end.noteHashes,
545
+ privateLogs,
546
+ this.transientDataSquashingHints.slice(0, this.numTransientData),
547
+ );
548
+ const numToSilo = privateLogs.claimedLength - numSquashedLogs;
491
549
  this.requestedDimensions.PRIVATE_LOG_SILOING = numToSilo;
492
550
 
493
551
  return numToSilo > 0;