@aztec/pxe 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa

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