@aztec/pxe 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0

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