@aztec/pxe 0.0.1-commit.24de95ac → 0.0.1-commit.2606882

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 (521) hide show
  1. package/dest/bin/check_oracle_version.d.ts +1 -1
  2. package/dest/bin/check_oracle_version.js +54 -20
  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 +26 -0
  7. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  8. package/dest/bin/oracle_version_helpers.js +93 -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 +62 -0
  12. package/dest/block_synchronizer/block_synchronizer.d.ts +49 -0
  13. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  14. package/dest/block_synchronizer/block_synchronizer.js +173 -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 +13 -13
  19. package/dest/config/index.d.ts.map +1 -1
  20. package/dest/config/index.js +24 -15
  21. package/dest/config/package_info.d.ts +1 -1
  22. package/dest/config/package_info.js +1 -1
  23. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  24. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  25. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  26. package/dest/contract_function_simulator/contract_function_simulator.d.ts +89 -26
  27. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/contract_function_simulator.js +267 -88
  29. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  30. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  31. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  32. package/dest/contract_function_simulator/execution_note_cache.d.ts +26 -15
  33. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/execution_note_cache.js +59 -34
  35. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  36. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  38. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  39. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/index.d.ts +15 -3
  41. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/index.js +12 -1
  43. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
  44. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  45. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
  46. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  47. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  48. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  49. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +6 -6
  50. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +12 -10
  52. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +16 -5
  53. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +39 -7
  55. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +4 -4
  56. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +3 -5
  58. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  59. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  60. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  61. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -7
  62. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +15 -10
  64. package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
  65. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  66. package/dest/contract_function_simulator/noir-structs/option.js +62 -0
  67. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +11 -0
  68. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  69. package/dest/contract_function_simulator/noir-structs/provided_secret.js +24 -0
  70. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  71. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  73. package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
  74. package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -88
  75. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  76. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  77. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  78. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  79. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  80. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  81. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  82. package/dest/contract_function_simulator/oracle/note_packing_utils.js +17 -12
  83. package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -43
  84. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  85. package/dest/contract_function_simulator/oracle/oracle.js +475 -251
  86. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +127 -0
  87. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  88. package/dest/contract_function_simulator/oracle/oracle_registry.js +786 -0
  89. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +139 -0
  90. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  91. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +560 -0
  92. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  93. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  94. package/dest/contract_function_simulator/oracle/private_execution.js +6 -40
  95. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +78 -102
  96. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  97. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +177 -137
  98. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +189 -60
  99. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  100. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +507 -118
  101. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  102. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  103. package/dest/contract_function_simulator/pick_notes.js +21 -4
  104. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  105. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  106. package/dest/contract_function_simulator/proxied_contract_data_source.js +39 -50
  107. package/dest/contract_logging.d.ts +27 -0
  108. package/dest/contract_logging.d.ts.map +1 -0
  109. package/dest/contract_logging.js +38 -0
  110. package/dest/contract_sync/contract_sync_service.d.ts +42 -0
  111. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  112. package/dest/contract_sync/contract_sync_service.js +135 -0
  113. package/dest/contract_sync/helpers.d.ts +27 -0
  114. package/dest/contract_sync/helpers.d.ts.map +1 -0
  115. package/dest/contract_sync/helpers.js +53 -0
  116. package/dest/debug/pxe_debug_utils.d.ts +40 -0
  117. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  118. package/dest/debug/pxe_debug_utils.js +42 -0
  119. package/dest/entrypoints/client/bundle/index.d.ts +3 -2
  120. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  121. package/dest/entrypoints/client/bundle/index.js +2 -1
  122. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  123. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  124. package/dest/entrypoints/client/bundle/utils.js +43 -12
  125. package/dest/entrypoints/client/lazy/index.d.ts +3 -2
  126. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  127. package/dest/entrypoints/client/lazy/index.js +2 -1
  128. package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
  129. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  130. package/dest/entrypoints/client/lazy/utils.js +44 -13
  131. package/dest/entrypoints/pxe_creation_options.d.ts +15 -3
  132. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  133. package/dest/entrypoints/pxe_creation_options.js +3 -1
  134. package/dest/entrypoints/server/index.d.ts +7 -3
  135. package/dest/entrypoints/server/index.d.ts.map +1 -1
  136. package/dest/entrypoints/server/index.js +6 -2
  137. package/dest/entrypoints/server/utils.d.ts +4 -3
  138. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  139. package/dest/entrypoints/server/utils.js +50 -30
  140. package/dest/error_enriching.d.ts +4 -4
  141. package/dest/error_enriching.d.ts.map +1 -1
  142. package/dest/error_enriching.js +6 -6
  143. package/dest/events/event_service.d.ts +24 -0
  144. package/dest/events/event_service.d.ts.map +1 -0
  145. package/dest/events/event_service.js +77 -0
  146. package/dest/events/index.d.ts +2 -0
  147. package/dest/events/index.d.ts.map +1 -0
  148. package/dest/events/index.js +1 -0
  149. package/dest/events/private_event_filter_validator.d.ts +10 -0
  150. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  151. package/dest/events/private_event_filter_validator.js +53 -0
  152. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  153. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  154. package/dest/hooks/authorize_utility_call.js +4 -0
  155. package/dest/hooks/execution_hooks.d.ts +42 -0
  156. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  157. package/dest/hooks/execution_hooks.js +9 -0
  158. package/dest/hooks/index.d.ts +4 -0
  159. package/dest/hooks/index.d.ts.map +1 -0
  160. package/dest/hooks/index.js +1 -0
  161. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  162. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  163. package/dest/job_coordinator/job_coordinator.js +94 -0
  164. package/dest/logs/log_service.d.ts +29 -0
  165. package/dest/logs/log_service.d.ts.map +1 -0
  166. package/dest/logs/log_service.js +172 -0
  167. package/dest/messages/message_context_service.d.ts +17 -0
  168. package/dest/messages/message_context_service.d.ts.map +1 -0
  169. package/dest/messages/message_context_service.js +55 -0
  170. package/dest/notes/index.d.ts +2 -0
  171. package/dest/notes/index.d.ts.map +1 -0
  172. package/dest/notes/index.js +1 -0
  173. package/dest/notes/note_service.d.ts +70 -0
  174. package/dest/notes/note_service.d.ts.map +1 -0
  175. package/dest/notes/note_service.js +172 -0
  176. package/dest/notes_filter.d.ts +24 -0
  177. package/dest/notes_filter.d.ts.map +1 -0
  178. package/dest/notes_filter.js +4 -0
  179. package/dest/oracle_version.d.ts +4 -3
  180. package/dest/oracle_version.d.ts.map +1 -1
  181. package/dest/oracle_version.js +20 -9
  182. package/dest/private_kernel/batch_planner.d.ts +47 -0
  183. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  184. package/dest/private_kernel/batch_planner.js +104 -0
  185. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  186. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  187. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  188. package/dest/private_kernel/hints/index.d.ts +3 -3
  189. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  190. package/dest/private_kernel/hints/index.js +2 -2
  191. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  192. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  193. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +145 -78
  194. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  195. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  196. package/dest/private_kernel/hints/test_utils.js +202 -0
  197. package/dest/private_kernel/index.d.ts +1 -1
  198. package/dest/private_kernel/private_kernel_execution_prover.d.ts +7 -2
  199. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  200. package/dest/private_kernel/private_kernel_execution_prover.js +177 -76
  201. package/dest/private_kernel/private_kernel_oracle.d.ts +30 -29
  202. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  203. package/dest/private_kernel/private_kernel_oracle.js +96 -2
  204. package/dest/pxe.d.ts +170 -103
  205. package/dest/pxe.d.ts.map +1 -1
  206. package/dest/pxe.js +356 -306
  207. package/dest/storage/address_store/address_store.d.ts +11 -0
  208. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  209. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  210. package/dest/storage/address_store/index.d.ts +2 -0
  211. package/dest/storage/address_store/index.d.ts.map +1 -0
  212. package/dest/storage/address_store/index.js +1 -0
  213. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  214. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  215. package/dest/storage/anchor_block_store/anchor_block_store.js +26 -0
  216. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  217. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  218. package/dest/storage/anchor_block_store/index.js +1 -0
  219. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  220. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  221. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  222. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  223. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  224. package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
  225. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  226. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  227. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  228. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  229. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  230. package/dest/storage/capsule_store/capsule_service.js +50 -0
  231. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  232. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  233. package/dest/storage/capsule_store/capsule_store.js +261 -0
  234. package/dest/storage/capsule_store/index.d.ts +3 -0
  235. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  236. package/dest/storage/capsule_store/index.js +2 -0
  237. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  238. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  239. package/dest/storage/contract_store/contract_store.js +292 -0
  240. package/dest/storage/contract_store/index.d.ts +2 -0
  241. package/dest/storage/contract_store/index.d.ts.map +1 -0
  242. package/dest/storage/contract_store/index.js +1 -0
  243. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  244. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  245. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  246. package/dest/storage/index.d.ts +8 -8
  247. package/dest/storage/index.d.ts.map +1 -1
  248. package/dest/storage/index.js +7 -7
  249. package/dest/storage/metadata.d.ts +2 -2
  250. package/dest/storage/metadata.js +1 -1
  251. package/dest/storage/note_store/index.d.ts +3 -0
  252. package/dest/storage/note_store/index.d.ts.map +1 -0
  253. package/dest/storage/note_store/index.js +2 -0
  254. package/dest/storage/note_store/note_store.d.ts +83 -0
  255. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  256. package/dest/storage/note_store/note_store.js +343 -0
  257. package/dest/storage/note_store/stored_note.d.ts +16 -0
  258. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  259. package/dest/storage/note_store/stored_note.js +43 -0
  260. package/dest/storage/open_pxe_stores.d.ts +33 -0
  261. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  262. package/dest/storage/open_pxe_stores.js +27 -0
  263. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  264. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  265. package/dest/storage/private_event_store/private_event_store.js +276 -0
  266. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  267. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  268. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  269. package/dest/storage/tagging_store/index.d.ts +4 -0
  270. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  271. package/dest/storage/tagging_store/index.js +3 -0
  272. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  273. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  274. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  275. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  276. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  277. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  278. package/dest/storage/tagging_store/sender_tagging_store.d.ts +78 -0
  279. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  280. package/dest/storage/tagging_store/sender_tagging_store.js +374 -0
  281. package/dest/tagging/constants.d.ts +2 -2
  282. package/dest/tagging/constants.d.ts.map +1 -1
  283. package/dest/tagging/constants.js +10 -2
  284. package/dest/tagging/get_all_logs_by_tags.d.ts +48 -0
  285. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  286. package/dest/tagging/get_all_logs_by_tags.js +59 -0
  287. package/dest/tagging/index.d.ts +18 -7
  288. package/dest/tagging/index.d.ts.map +1 -1
  289. package/dest/tagging/index.js +16 -5
  290. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  291. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  292. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  293. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
  294. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  295. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -0
  296. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  297. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  298. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  299. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  300. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  301. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  302. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +16 -0
  303. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  304. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +92 -0
  305. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +17 -0
  306. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  307. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +60 -0
  308. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -0
  309. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  310. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +72 -0
  311. package/package.json +33 -20
  312. package/src/bin/check_oracle_version.ts +63 -25
  313. package/src/bin/index.ts +1 -0
  314. package/src/bin/oracle_version_helpers.ts +121 -0
  315. package/src/block_synchronizer/block_stream_source.ts +81 -0
  316. package/src/block_synchronizer/block_synchronizer.ts +200 -0
  317. package/src/block_synchronizer/index.ts +1 -0
  318. package/src/config/index.ts +31 -26
  319. package/src/config/package_info.ts +1 -1
  320. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  321. package/src/contract_function_simulator/contract_function_simulator.ts +462 -122
  322. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  323. package/src/contract_function_simulator/execution_note_cache.ts +59 -29
  324. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  325. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  326. package/src/contract_function_simulator/index.ts +52 -2
  327. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
  328. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  329. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +15 -10
  330. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +40 -6
  331. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +4 -7
  332. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  333. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +17 -10
  334. package/src/contract_function_simulator/noir-structs/option.ts +69 -0
  335. package/src/contract_function_simulator/noir-structs/provided_secret.ts +27 -0
  336. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  337. package/src/contract_function_simulator/oracle/interfaces.ts +12 -151
  338. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  339. package/src/contract_function_simulator/oracle/note_packing_utils.ts +31 -15
  340. package/src/contract_function_simulator/oracle/oracle.ts +570 -434
  341. package/src/contract_function_simulator/oracle/oracle_registry.ts +585 -0
  342. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +553 -0
  343. package/src/contract_function_simulator/oracle/private_execution.ts +6 -72
  344. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +230 -188
  345. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +751 -142
  346. package/src/contract_function_simulator/pick_notes.ts +23 -4
  347. package/src/contract_function_simulator/proxied_contract_data_source.ts +47 -53
  348. package/src/contract_logging.ts +52 -0
  349. package/src/contract_sync/contract_sync_service.ts +189 -0
  350. package/src/contract_sync/helpers.ts +86 -0
  351. package/src/debug/pxe_debug_utils.ts +85 -0
  352. package/src/entrypoints/client/bundle/index.ts +2 -1
  353. package/src/entrypoints/client/bundle/utils.ts +33 -21
  354. package/src/entrypoints/client/lazy/index.ts +2 -1
  355. package/src/entrypoints/client/lazy/utils.ts +35 -23
  356. package/src/entrypoints/pxe_creation_options.ts +20 -2
  357. package/src/entrypoints/server/index.ts +6 -2
  358. package/src/entrypoints/server/utils.ts +47 -60
  359. package/src/error_enriching.ts +7 -15
  360. package/src/events/event_service.ts +119 -0
  361. package/src/events/index.ts +1 -0
  362. package/src/events/private_event_filter_validator.ts +66 -0
  363. package/src/hooks/authorize_utility_call.ts +44 -0
  364. package/src/hooks/execution_hooks.ts +48 -0
  365. package/src/hooks/index.ts +7 -0
  366. package/src/job_coordinator/job_coordinator.ts +150 -0
  367. package/src/logs/log_service.ts +237 -0
  368. package/src/messages/message_context_service.ts +62 -0
  369. package/src/notes/index.ts +1 -0
  370. package/src/notes/note_service.ts +230 -0
  371. package/src/notes_filter.ts +24 -0
  372. package/src/oracle_version.ts +20 -9
  373. package/src/private_kernel/batch_planner.ts +169 -0
  374. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  375. package/src/private_kernel/hints/index.ts +2 -2
  376. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +200 -146
  377. package/src/private_kernel/hints/test_utils.ts +318 -0
  378. package/src/private_kernel/private_kernel_execution_prover.ts +272 -110
  379. package/src/private_kernel/private_kernel_oracle.ts +130 -39
  380. package/src/pxe.ts +606 -414
  381. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  382. package/src/storage/address_store/index.ts +1 -0
  383. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +11 -12
  384. package/src/storage/anchor_block_store/index.ts +1 -0
  385. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  386. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  387. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  388. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  389. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  390. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
  391. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
  392. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  393. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
  394. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
  395. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
  396. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
  397. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  398. package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
  399. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  400. package/src/storage/capsule_store/capsule_service.ts +90 -0
  401. package/src/storage/capsule_store/capsule_store.ts +333 -0
  402. package/src/storage/capsule_store/index.ts +2 -0
  403. package/src/storage/contract_store/contract_store.ts +408 -0
  404. package/src/storage/contract_store/index.ts +1 -0
  405. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  406. package/src/storage/index.ts +7 -7
  407. package/src/storage/metadata.ts +1 -1
  408. package/src/storage/note_store/index.ts +2 -0
  409. package/src/storage/note_store/note_store.ts +415 -0
  410. package/src/storage/note_store/stored_note.ts +48 -0
  411. package/src/storage/open_pxe_stores.ts +49 -0
  412. package/src/storage/private_event_store/private_event_store.ts +388 -0
  413. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  414. package/src/storage/tagging_store/index.ts +3 -0
  415. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  416. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  417. package/src/storage/tagging_store/sender_tagging_store.ts +476 -0
  418. package/src/tagging/constants.ts +10 -2
  419. package/src/tagging/get_all_logs_by_tags.ts +120 -0
  420. package/src/tagging/index.ts +20 -6
  421. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  422. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
  423. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  424. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  425. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +134 -0
  426. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +66 -0
  427. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
  428. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  429. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  430. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  431. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  432. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  433. package/dest/contract_function_simulator/proxied_node.js +0 -27
  434. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  435. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  436. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  437. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  438. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  439. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  440. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  441. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  442. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  443. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  444. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  445. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  446. package/dest/storage/address_data_provider/index.d.ts +0 -2
  447. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  448. package/dest/storage/address_data_provider/index.js +0 -1
  449. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  450. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  451. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  452. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  453. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  454. package/dest/storage/capsule_data_provider/index.js +0 -1
  455. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
  456. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  457. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -205
  458. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  459. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  460. package/dest/storage/contract_data_provider/index.js +0 -1
  461. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  462. package/dest/storage/note_data_provider/index.d.ts +0 -3
  463. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  464. package/dest/storage/note_data_provider/index.js +0 -2
  465. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  466. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  467. package/dest/storage/note_data_provider/note_dao.js +0 -102
  468. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  469. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  470. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  471. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
  472. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  473. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
  474. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  475. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  476. package/dest/storage/sync_data_provider/index.js +0 -1
  477. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  478. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  479. package/dest/storage/sync_data_provider/sync_data_provider.js +0 -26
  480. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  481. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  482. package/dest/storage/tagging_data_provider/index.js +0 -1
  483. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  484. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  485. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  486. package/dest/synchronizer/index.d.ts +0 -2
  487. package/dest/synchronizer/index.d.ts.map +0 -1
  488. package/dest/synchronizer/index.js +0 -1
  489. package/dest/synchronizer/synchronizer.d.ts +0 -35
  490. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  491. package/dest/synchronizer/synchronizer.js +0 -101
  492. package/dest/tagging/siloed_tag.d.ts +0 -14
  493. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  494. package/dest/tagging/siloed_tag.js +0 -20
  495. package/dest/tagging/tag.d.ts +0 -12
  496. package/dest/tagging/tag.d.ts.map +0 -1
  497. package/dest/tagging/tag.js +0 -17
  498. package/dest/tagging/utils.d.ts +0 -18
  499. package/dest/tagging/utils.d.ts.map +0 -1
  500. package/dest/tagging/utils.js +0 -24
  501. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  502. package/src/contract_function_simulator/proxied_node.ts +0 -33
  503. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
  504. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  505. package/src/storage/address_data_provider/index.ts +0 -1
  506. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  507. package/src/storage/capsule_data_provider/index.ts +0 -1
  508. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
  509. package/src/storage/contract_data_provider/index.ts +0 -1
  510. package/src/storage/note_data_provider/index.ts +0 -2
  511. package/src/storage/note_data_provider/note_dao.ts +0 -154
  512. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  513. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
  514. package/src/storage/sync_data_provider/index.ts +0 -1
  515. package/src/storage/tagging_data_provider/index.ts +0 -1
  516. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  517. package/src/synchronizer/index.ts +0 -1
  518. package/src/synchronizer/synchronizer.ts +0 -120
  519. package/src/tagging/siloed_tag.ts +0 -22
  520. package/src/tagging/tag.ts +0 -16
  521. package/src/tagging/utils.ts +0 -31
@@ -1,8 +1,8 @@
1
1
  import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { Timer } from '@aztec/foundation/timer';
5
- import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
5
+ import { toACVMWitness } from '@aztec/simulator/client';
6
6
  import {
7
7
  type FunctionAbi,
8
8
  type FunctionArtifact,
@@ -10,31 +10,51 @@ import {
10
10
  type NoteSelector,
11
11
  countArgumentsSize,
12
12
  } from '@aztec/stdlib/abi';
13
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
14
13
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
14
+ import { siloNullifier } from '@aztec/stdlib/hash';
16
15
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
17
- import type { ContractClassLog, DirectionalAppTaggingSecret, PreTag } from '@aztec/stdlib/logs';
16
+ import {
17
+ AppTaggingSecret,
18
+ AppTaggingSecretKind,
19
+ type ContractClassLog,
20
+ type TaggingIndexRange,
21
+ } from '@aztec/stdlib/logs';
18
22
  import { Note, type NoteStatus } from '@aztec/stdlib/note';
19
23
  import {
20
- type BlockHeader,
21
24
  CallContext,
22
- Capsule,
23
25
  CountedContractClassLog,
24
26
  NoteAndSlot,
25
27
  PrivateCallExecutionResult,
26
28
  type TxContext,
27
29
  } from '@aztec/stdlib/tx';
28
30
 
29
- import { Tag } from '../../tagging/tag.js';
30
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
31
+ import { NoteService } from '../../notes/note_service.js';
32
+ import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
33
+ import { syncSenderTaggingIndexes } from '../../tagging/index.js';
31
34
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
32
35
  import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
33
36
  import type { HashedValuesCache } from '../hashed_values_cache.js';
37
+ import { BoundedVec } from '../noir-structs/bounded_vec.js';
38
+ import type { NoteData } from '../noir-structs/note_data.js';
39
+ import { Option } from '../noir-structs/option.js';
34
40
  import { pickNotes } from '../pick_notes.js';
35
- import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
36
- import { executePrivateFunction, verifyCurrentClassId } from './private_execution.js';
37
- import { UtilityExecutionOracle } from './utility_execution_oracle.js';
41
+ import type { IPrivateExecutionOracle } from './interfaces.js';
42
+ import { executePrivateFunction } from './private_execution.js';
43
+ import { UtilityExecutionOracle, type UtilityExecutionOracleArgs } from './utility_execution_oracle.js';
44
+
45
+ /** Args for PrivateExecutionOracle constructor. */
46
+ export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contractAddress'> & {
47
+ argsHash: Fr;
48
+ txContext: TxContext;
49
+ callContext: CallContext;
50
+ executionCache: HashedValuesCache;
51
+ noteCache: ExecutionNoteCache;
52
+ taggingIndexCache: ExecutionTaggingIndexCache;
53
+ senderTaggingStore: SenderTaggingStore;
54
+ totalPublicCalldataCount?: number;
55
+ sideEffectCounter?: number;
56
+ senderForTags?: AztecAddress;
57
+ };
38
58
 
39
59
  /**
40
60
  * The execution oracle for the private part of a transaction.
@@ -51,46 +71,47 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
51
71
  * Users can also use this to get a clearer idea of what's happened during a simulation.
52
72
  */
53
73
  private newNotes: NoteAndSlot[] = [];
54
- /**
55
- * Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
56
- * The mapping maps from the unique siloed note hash to the index for notes created in private executions.
57
- * It maps from siloed note hash to the index for notes created by public functions.
58
- *
59
- * They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
60
- * because these notes are meant to be maintained on a per-call basis
61
- * They should act as references for the read requests output by an app circuit via public inputs.
62
- */
63
- private noteHashLeafIndexMap: Map<bigint, bigint> = new Map();
64
74
  private noteHashNullifierCounterMap: Map<number, number> = new Map();
65
75
  private contractClassLogs: CountedContractClassLog[] = [];
66
- private offchainEffects: { data: Fr[] }[] = [];
67
76
  private nestedExecutionResults: PrivateCallExecutionResult[] = [];
68
77
 
69
- constructor(
70
- private readonly argsHash: Fr,
71
- private readonly txContext: TxContext,
72
- private readonly callContext: CallContext,
73
- /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
74
- protected readonly anchorBlockHeader: BlockHeader,
75
- /** List of transient auth witnesses to be used during this simulation */
76
- authWitnesses: AuthWitness[],
77
- capsules: Capsule[],
78
- private readonly executionCache: HashedValuesCache,
79
- private readonly noteCache: ExecutionNoteCache,
80
- private readonly taggingIndexCache: ExecutionTaggingIndexCache,
81
- executionDataProvider: ExecutionDataProvider,
82
- private totalPublicCalldataCount: number = 0,
83
- protected sideEffectCounter: number = 0,
84
- log = createLogger('simulator:client_execution_context'),
85
- scopes?: AztecAddress[],
86
- private senderForTags?: AztecAddress,
87
- private simulator?: CircuitSimulator,
88
- ) {
89
- super(callContext.contractAddress, authWitnesses, capsules, executionDataProvider, log, scopes);
78
+ private readonly argsHash: Fr;
79
+ private readonly txContext: TxContext;
80
+ private readonly callContext: CallContext;
81
+ private readonly executionCache: HashedValuesCache;
82
+ private readonly noteCache: ExecutionNoteCache;
83
+ private readonly taggingIndexCache: ExecutionTaggingIndexCache;
84
+ private readonly senderTaggingStore: SenderTaggingStore;
85
+ private totalPublicCalldataCount: number;
86
+ private readonly initialSideEffectCounter: number;
87
+ /** Sender for tags passed in at oracle construction time. Returned by `getSenderForTags`. */
88
+ private readonly defaultSenderForTags: AztecAddress | undefined;
89
+
90
+ constructor(args: PrivateExecutionOracleArgs) {
91
+ super({
92
+ ...args,
93
+ contractAddress: args.callContext.contractAddress,
94
+ log: args.log ?? createLogger('simulator:client_execution_context'),
95
+ });
96
+ this.argsHash = args.argsHash;
97
+ this.txContext = args.txContext;
98
+ this.callContext = args.callContext;
99
+ this.executionCache = args.executionCache;
100
+ this.noteCache = args.noteCache;
101
+ this.taggingIndexCache = args.taggingIndexCache;
102
+ this.senderTaggingStore = args.senderTaggingStore;
103
+ this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
104
+ this.initialSideEffectCounter = args.sideEffectCounter ?? 0;
105
+ this.defaultSenderForTags = args.senderForTags;
90
106
  }
91
107
 
92
108
  public getPrivateContextInputs(): PrivateContextInputs {
93
- return new PrivateContextInputs(this.callContext, this.anchorBlockHeader, this.txContext, this.sideEffectCounter);
109
+ return new PrivateContextInputs(
110
+ this.callContext,
111
+ this.anchorBlockHeader,
112
+ this.txContext,
113
+ this.initialSideEffectCounter,
114
+ );
94
115
  }
95
116
 
96
117
  // We still need this function until we can get user-defined ordering of structs for fn arguments
@@ -118,14 +139,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
118
139
  return toACVMWitness(0, fields);
119
140
  }
120
141
 
121
- /**
122
- * The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
123
- * regarding which note hash each settled read request corresponds to.
124
- */
125
- public getNoteHashLeafIndexMap() {
126
- return this.noteHashLeafIndexMap;
127
- }
128
-
129
142
  /**
130
143
  * Get the data for the newly created notes.
131
144
  */
@@ -145,17 +158,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
145
158
  }
146
159
 
147
160
  /**
148
- * Return the offchain effects emitted during this execution.
149
- */
150
- public getOffchainEffects() {
151
- return this.offchainEffects;
152
- }
153
-
154
- /**
155
- * Returns the pre tags that were used in this execution (and that need to be stored in the db).
161
+ * Returns the tagging index ranges that were used in this execution (and that need to be stored in the db).
156
162
  */
157
- public getUsedPreTags(): PreTag[] {
158
- return this.taggingIndexCache.getUsedPreTags();
163
+ public getUsedTaggingIndexRanges(): TaggingIndexRange[] {
164
+ return this.taggingIndexCache.getUsedTaggingIndexRanges();
159
165
  }
160
166
 
161
167
  /**
@@ -172,52 +178,71 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
172
178
  * for a tag in order to emit a log. Constrained tagging should not use this as there is no
173
179
  * guarantee that the recipient knows about the sender, and hence about the shared secret.
174
180
  *
175
- * The value persists through nested calls, meaning all calls down the stack will use the same
176
- * 'senderForTags' value (unless it is replaced).
181
+ * Returns the wallet-supplied default sender for tags, or `None` if no default was provided.
177
182
  */
178
- public privateGetSenderForTags(): Promise<AztecAddress | undefined> {
179
- return Promise.resolve(this.senderForTags);
183
+ public getSenderForTags(): Promise<Option<AztecAddress>> {
184
+ return Promise.resolve(
185
+ this.defaultSenderForTags ? Option.some(this.defaultSenderForTags) : Option.none(AztecAddress.ZERO),
186
+ );
180
187
  }
181
188
 
182
189
  /**
183
- * Set the sender for tags.
190
+ * Returns the sender-side app tagging secret for a `(sender, recipient)` pair.
184
191
  *
185
- * This unconstrained value is used as the sender when computing an unconstrained shared secret
186
- * for a tag in order to emit a log. Constrained tagging should not use this as there is no
187
- * guarantee that the recipient knows about the sender, and hence about the shared secret.
192
+ * The caller obtains an index via {@link getNextTaggingIndex} and computes the final tag itself.
193
+ * The only expected `None` case is an invalid recipient address; missing sender data fails while deriving.
188
194
  *
189
- * Account contracts typically set this value before calling other contracts. The value persists
190
- * through nested calls, meaning all calls down the stack will use the same 'senderForTags'
191
- * value (unless it is replaced by another call to this setter).
195
+ * @param sender - The address sending the log
196
+ * @param recipient - The address receiving the log
197
+ * @returns The app tagging secret, or `None` if the recipient is invalid.
192
198
  */
193
- public privateSetSenderForTags(senderForTags: AztecAddress): Promise<void> {
194
- this.senderForTags = senderForTags;
195
- return Promise.resolve();
199
+ public async getAppTaggingSecret(sender: AztecAddress, recipient: AztecAddress): Promise<Option<Fr>> {
200
+ const extendedSecret = await this.#calculateAppTaggingSecret(this.contractAddress, sender, recipient);
201
+
202
+ if (!extendedSecret) {
203
+ this.logger.warn(`Computing a tagging secret for invalid recipient ${recipient} - returning no secret`, {
204
+ contractAddress: this.contractAddress,
205
+ });
206
+ return Option.none(Fr.ZERO);
207
+ }
208
+
209
+ return Option.some(extendedSecret.secret);
196
210
  }
197
211
 
198
212
  /**
199
- * Returns the next app tag for a given sender and recipient pair.
200
- * @param sender - The address sending the log
201
- * @param recipient - The address receiving the log
202
- * @returns An app tag to be used in a log.
213
+ * Returns the next sender-side tagging index for a given secret and delivery mode.
214
+ *
215
+ * @param secret - The tagging secret to allocate an index for.
216
+ * @param kind - The sender-side index namespace.
217
+ * @returns The next index to use for this secret.
203
218
  */
204
- public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
205
- const secret = await this.executionDataProvider.calculateDirectionalAppTaggingSecret(
206
- this.contractAddress,
207
- sender,
208
- recipient,
209
- );
219
+ public async getNextTaggingIndex(secret: Fr, kind: AppTaggingSecretKind): Promise<number> {
220
+ const appTaggingSecret = new AppTaggingSecret(secret, this.contractAddress, kind);
221
+ const index = await this.#reserveNextIndexForSecret(appTaggingSecret);
222
+ this.logger.debug(`Incrementing ${kind} tagging index for secret in contract ${this.contractAddress} to ${index}`);
223
+ return index;
224
+ }
210
225
 
226
+ /** Resolves the next index for a given tagging secret, syncing from chain if it is missing from the in-tx cache. */
227
+ async #reserveNextIndexForSecret(secret: AppTaggingSecret): Promise<number> {
211
228
  const index = await this.#getIndexToUseForSecret(secret);
212
- this.log.debug(
213
- `Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
214
- );
215
229
  this.taggingIndexCache.setLastUsedIndex(secret, index);
230
+ return index;
231
+ }
216
232
 
217
- return Tag.compute({ secret, index });
233
+ async #calculateAppTaggingSecret(contractAddress: AztecAddress, sender: AztecAddress, recipient: AztecAddress) {
234
+ const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
235
+ const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
236
+ return AppTaggingSecret.computeUnconstrained(
237
+ senderCompleteAddress,
238
+ senderIvsk,
239
+ recipient,
240
+ contractAddress,
241
+ recipient,
242
+ );
218
243
  }
219
244
 
220
- async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
245
+ async #getIndexToUseForSecret(secret: AppTaggingSecret): Promise<number> {
221
246
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
222
247
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
223
248
 
@@ -227,8 +252,15 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
227
252
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
228
253
  // are up to date. We do this here because this store is not synced as part of the global sync because
229
254
  // that'd be wasteful as most tagging secrets are not used in each tx.
230
- await this.executionDataProvider.syncTaggedLogsAsSender(secret, this.contractAddress);
231
- const lastUsedIndex = await this.executionDataProvider.getLastUsedIndexAsSender(secret);
255
+ await syncSenderTaggingIndexes(
256
+ secret,
257
+ this.aztecNode,
258
+ this.senderTaggingStore,
259
+ await this.anchorBlockHeader.hash(),
260
+ this.jobId,
261
+ );
262
+
263
+ const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
232
264
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
233
265
  // Otherwise, the next index to use is one past the last used index
234
266
  return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
@@ -240,7 +272,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
240
272
  * @param values - Values to store.
241
273
  * @returns The hash of the values.
242
274
  */
243
- public privateStoreInExecutionCache(values: Fr[], hash: Fr) {
275
+ public setHashPreimage(values: Fr[], hash: Fr) {
244
276
  return this.executionCache.store(values, hash);
245
277
  }
246
278
 
@@ -249,7 +281,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
249
281
  * @param hash - Hash of the values.
250
282
  * @returns The values.
251
283
  */
252
- public privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]> {
284
+ public getHashPreimage(hash: Fr): Promise<Fr[]> {
253
285
  const preimage = this.executionCache.getPreimage(hash);
254
286
  if (!preimage) {
255
287
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
@@ -257,12 +289,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
257
289
  return Promise.resolve(preimage);
258
290
  }
259
291
 
260
- override async utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean> {
292
+ override async doesNullifierExist(innerNullifier: Fr): Promise<boolean> {
261
293
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
262
294
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
263
295
  // in the current transaction.
264
296
 
265
- this.log.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
297
+ this.logger.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
266
298
  contractAddress: this.contractAddress,
267
299
  });
268
300
 
@@ -270,7 +302,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
270
302
 
271
303
  return (
272
304
  this.noteCache.getNullifiers(this.contractAddress).has(nullifier) ||
273
- (await super.utilityCheckNullifierExists(innerNullifier))
305
+ (await super.doesNullifierExist(innerNullifier))
274
306
  );
275
307
  }
276
308
 
@@ -282,6 +314,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
282
314
  * Real notes coming from DB will have a leafIndex which
283
315
  * represents their index in the note hash tree.
284
316
  *
317
+ * @param owner - The owner of the notes. If undefined, returns notes for all owners.
285
318
  * @param storageSlot - The storage slot.
286
319
  * @param numSelects - The number of valid selects in selectBy and selectValues.
287
320
  * @param selectBy - An array of indices of the fields to selects.
@@ -294,7 +327,8 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
294
327
  * @param status - The status of notes to fetch.
295
328
  * @returns Array of note data.
296
329
  */
297
- public override async utilityGetNotes(
330
+ public override async getNotes(
331
+ owner: Option<AztecAddress>,
298
332
  storageSlot: Fr,
299
333
  numSelects: number,
300
334
  selectByIndexes: number[],
@@ -309,13 +343,18 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
309
343
  limit: number,
310
344
  offset: number,
311
345
  status: NoteStatus,
312
- ): Promise<NoteData[]> {
346
+ maxNotes: number,
347
+ packedHintedNoteLength: number,
348
+ ): Promise<BoundedVec<NoteData>> {
313
349
  // Nullified pending notes are already removed from the list.
314
- const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
350
+ const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner.value, storageSlot);
315
351
 
316
352
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
317
- const dbNotes = await this.executionDataProvider.getNotes(
353
+
354
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
355
+ const dbNotes = await noteService.getNotes(
318
356
  this.callContext.contractAddress,
357
+ owner.value,
319
358
  storageSlot,
320
359
  status,
321
360
  this.scopes,
@@ -336,52 +375,39 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
336
375
  offset,
337
376
  });
338
377
 
339
- this.log.debug(
378
+ this.logger.debug(
340
379
  `Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes
341
380
  .map(n => `${n.noteNonce.toString()}:[${n.note.items.map(i => i.toString()).join(',')}]`)
342
381
  .join(', ')}`,
343
382
  );
344
383
 
345
- const noteHashesAndIndexes = await Promise.all(
346
- notes.map(async n => {
347
- if (n.index !== undefined) {
348
- const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
349
- const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
350
-
351
- return { hash: uniqueNoteHash, index: n.index };
352
- }
353
- }),
354
- );
355
-
356
- noteHashesAndIndexes
357
- .filter(n => n !== undefined)
358
- .forEach(n => {
359
- this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
360
- });
361
-
362
- return notes;
384
+ return BoundedVec.from({ data: notes, maxLength: maxNotes, elementSize: packedHintedNoteLength });
363
385
  }
364
386
 
365
387
  /**
366
388
  * Keep track of the new note created during execution.
367
389
  * It can be used in subsequent calls (or transactions when chaining txs is possible).
368
- * @param contractAddress - The contract address.
390
+ * @param owner - The owner of the note.
369
391
  * @param storageSlot - The storage slot.
392
+ * @param randomness - The randomness injected into the note.
370
393
  * @param noteTypeId - The type ID of the note.
371
394
  * @param noteItems - The items to be included in a Note.
372
395
  * @param noteHash - A hash of the new note.
373
396
  * @returns
374
397
  */
375
- public privateNotifyCreatedNote(
398
+ public notifyCreatedNote(
399
+ owner: AztecAddress,
376
400
  storageSlot: Fr,
401
+ randomness: Fr,
377
402
  noteTypeId: NoteSelector,
378
403
  noteItems: Fr[],
379
404
  noteHash: Fr,
380
405
  counter: number,
381
406
  ) {
382
- this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
407
+ this.logger.debug(`Notified of new note with inner hash ${noteHash}`, {
383
408
  contractAddress: this.callContext.contractAddress,
384
409
  storageSlot,
410
+ randomness,
385
411
  noteTypeId,
386
412
  counter,
387
413
  });
@@ -390,15 +416,18 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
390
416
  this.noteCache.addNewNote(
391
417
  {
392
418
  contractAddress: this.callContext.contractAddress,
419
+ owner,
393
420
  storageSlot,
421
+ randomness,
394
422
  noteNonce: Fr.ZERO, // Nonce cannot be known during private execution.
395
423
  note,
396
424
  siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
397
425
  noteHash,
426
+ isPending: true, // This note has just been created and hence is not settled yet.
398
427
  },
399
428
  counter,
400
429
  );
401
- this.newNotes.push(new NoteAndSlot(note, storageSlot, noteTypeId));
430
+ this.newNotes.push(NoteAndSlot.from({ note, storageSlot, randomness, noteTypeId }));
402
431
  }
403
432
 
404
433
  /**
@@ -407,7 +436,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
407
436
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
408
437
  * @param noteHash - A hash of the new note.
409
438
  */
410
- public async privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
439
+ public async notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
411
440
  const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(
412
441
  this.callContext.contractAddress,
413
442
  innerNullifier,
@@ -424,11 +453,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
424
453
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
425
454
  * @param noteHash - A hash of the new note.
426
455
  */
427
- public privateNotifyCreatedNullifier(innerNullifier: Fr) {
428
- this.log.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
456
+ public notifyCreatedNullifier(innerNullifier: Fr) {
457
+ this.logger.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
429
458
  return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
430
459
  }
431
460
 
461
+ /**
462
+ * Check if a nullifier has been emitted in the same transaction, i.e. if notifyCreatedNullifier has been
463
+ * called for this inner nullifier from the contract with the specified address.
464
+ * @param innerNullifier - The inner nullifier to check.
465
+ * @param contractAddress - Address of the contract that emitted the nullifier.
466
+ * @returns A boolean indicating whether the nullifier is pending or not.
467
+ */
468
+ public async isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
469
+ const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
470
+ const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
471
+ return Promise.resolve(isNullifierPending);
472
+ }
473
+
432
474
  /**
433
475
  * Emit a contract class log.
434
476
  * This fn exists because we only carry a poseidon hash through the kernels, and need to
@@ -436,10 +478,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
436
478
  * @param log - The contract class log to be emitted.
437
479
  * @param counter - The contract class log's counter.
438
480
  */
439
- public privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
481
+ public notifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
440
482
  this.contractClassLogs.push(new CountedContractClassLog(log, counter));
441
483
  const text = log.toBuffer().toString('hex');
442
- this.log.verbose(
484
+ this.logger.verbose(
443
485
  `Emitted log from ContractClassRegistry: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`,
444
486
  );
445
487
  }
@@ -465,7 +507,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
465
507
  * @param isStaticCall - Whether the call is a static call.
466
508
  * @returns The execution result.
467
509
  */
468
- async privateCallPrivateFunction(
510
+ async callPrivateFunction(
469
511
  targetContractAddress: AztecAddress,
470
512
  functionSelector: FunctionSelector,
471
513
  argsHash: Fr,
@@ -479,15 +521,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
479
521
  }
480
522
 
481
523
  const simulatorSetupTimer = new Timer();
482
- this.log.debug(
524
+ this.logger.debug(
483
525
  `Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`,
484
526
  );
485
527
 
486
528
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
487
529
 
488
- await verifyCurrentClassId(targetContractAddress, this.executionDataProvider, this.anchorBlockHeader);
530
+ await this.contractSyncService.ensureContractSynced(
531
+ targetContractAddress,
532
+ functionSelector,
533
+ this.utilityExecutor,
534
+ this.anchorBlockHeader,
535
+ this.jobId,
536
+ this.scopes,
537
+ );
489
538
 
490
- const targetArtifact = await this.executionDataProvider.getFunctionArtifact(
539
+ const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
491
540
  targetContractAddress,
492
541
  functionSelector,
493
542
  );
@@ -496,24 +545,39 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
496
545
 
497
546
  const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
498
547
 
499
- const privateExecutionOracle = new PrivateExecutionOracle(
548
+ const privateExecutionOracle = new PrivateExecutionOracle({
500
549
  argsHash,
501
- derivedTxContext,
502
- derivedCallContext,
503
- this.anchorBlockHeader,
504
- this.authWitnesses,
505
- this.capsules,
506
- this.executionCache,
507
- this.noteCache,
508
- this.taggingIndexCache,
509
- this.executionDataProvider,
510
- this.totalPublicCalldataCount,
550
+ txContext: derivedTxContext,
551
+ callContext: derivedCallContext,
552
+ anchorBlockHeader: this.anchorBlockHeader,
553
+ utilityExecutor: this.utilityExecutor,
554
+ authWitnesses: this.authWitnesses,
555
+ capsules: this.capsules,
556
+ executionCache: this.executionCache,
557
+ noteCache: this.noteCache,
558
+ taggingIndexCache: this.taggingIndexCache,
559
+ contractStore: this.contractStore,
560
+ noteStore: this.noteStore,
561
+ keyStore: this.keyStore,
562
+ addressStore: this.addressStore,
563
+ aztecNode: this.aztecNode,
564
+ senderTaggingStore: this.senderTaggingStore,
565
+ recipientTaggingStore: this.recipientTaggingStore,
566
+ senderAddressBookStore: this.senderAddressBookStore,
567
+ capsuleService: this.capsuleService,
568
+ privateEventStore: this.privateEventStore,
569
+ messageContextService: this.messageContextService,
570
+ contractSyncService: this.contractSyncService,
571
+ jobId: this.jobId,
572
+ totalPublicCalldataCount: this.totalPublicCalldataCount,
511
573
  sideEffectCounter,
512
- this.log,
513
- this.scopes,
514
- this.senderForTags,
515
- this.simulator,
516
- );
574
+ log: this.logger,
575
+ scopes: this.scopes,
576
+ senderForTags: this.defaultSenderForTags,
577
+ simulator: this.simulator,
578
+ hooks: this.hooks,
579
+ l2TipsStore: this.l2TipsStore,
580
+ });
517
581
 
518
582
  const setupTime = simulatorSetupTimer.ms();
519
583
 
@@ -525,6 +589,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
525
589
  functionSelector,
526
590
  );
527
591
 
592
+ // Propagate the nested call's calldata count so the parent sees its increments on subsequent enqueues.
593
+ this.totalPublicCalldataCount = privateExecutionOracle.getTotalPublicCalldataCount();
594
+
528
595
  if (isStaticCall) {
529
596
  this.#checkValidStaticCall(childExecutionResult);
530
597
  }
@@ -544,7 +611,8 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
544
611
  };
545
612
  }
546
613
 
547
- #onNewPublicFunctionCall(calldataHash: Fr) {
614
+ /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
615
+ public assertValidPublicCalldata(calldataHash: Fr) {
548
616
  const calldata = this.executionCache.getPreimage(calldataHash);
549
617
  if (!calldata) {
550
618
  throw new Error('Calldata for public call not found in cache');
@@ -554,46 +622,21 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
554
622
  if (this.totalPublicCalldataCount > MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS) {
555
623
  throw new Error(`Too many total args to all enqueued public calls! (> ${MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS})`);
556
624
  }
557
- }
558
-
559
- /**
560
- * Verify relevant information when a public function is enqueued.
561
- * @param targetContractAddress - The address of the contract to call.
562
- * @param calldataHash - The hash of the function selector and arguments.
563
- * @param sideEffectCounter - The side effect counter at the start of the call.
564
- * @param isStaticCall - Whether the call is a static call.
565
- */
566
- public privateNotifyEnqueuedPublicFunctionCall(
567
- _targetContractAddress: AztecAddress,
568
- calldataHash: Fr,
569
- _sideEffectCounter: number,
570
- _isStaticCall: boolean,
571
- ) {
572
- this.#onNewPublicFunctionCall(calldataHash);
573
625
  return Promise.resolve();
574
626
  }
575
627
 
576
- /**
577
- * Verify relevant information when a public teardown function is set.
578
- * @param targetContractAddress - The address of the contract to call.
579
- * @param argsHash - The arguments hash to pass to the function.
580
- * @param sideEffectCounter - The side effect counter at the start of the call.
581
- * @param isStaticCall - Whether the call is a static call.
582
- */
583
- public privateNotifySetPublicTeardownFunctionCall(
584
- _targetContractAddress: AztecAddress,
585
- calldataHash: Fr,
586
- _sideEffectCounter: number,
587
- _isStaticCall: boolean,
588
- ) {
589
- this.#onNewPublicFunctionCall(calldataHash);
590
- return Promise.resolve();
628
+ public getTotalPublicCalldataCount(): number {
629
+ return this.totalPublicCalldataCount;
591
630
  }
592
631
 
593
- public privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
632
+ public notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void> {
594
633
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
595
634
  }
596
635
 
636
+ public isExecutionInRevertiblePhase(sideEffectCounter: number): Promise<boolean> {
637
+ return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
638
+ }
639
+
597
640
  /**
598
641
  * Derives the call context for a nested execution.
599
642
  * @param targetContractAddress - The address of the contract being called.
@@ -615,11 +658,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
615
658
  }
616
659
 
617
660
  public getDebugFunctionName() {
618
- return this.executionDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
661
+ return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
619
662
  }
620
663
 
621
- public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
622
- this.offchainEffects.push({ data });
623
- return Promise.resolve();
664
+ protected override get callerContext() {
665
+ return this.callContext.isStaticCall ? 'private view' : 'private';
624
666
  }
625
667
  }