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

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 (359) hide show
  1. package/dest/bin/check_oracle_version.js +105 -15
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +41 -0
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  4. package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +35 -30
  5. package/dest/block_synchronizer/index.d.ts +2 -0
  6. package/dest/block_synchronizer/index.d.ts.map +1 -0
  7. package/dest/block_synchronizer/index.js +1 -0
  8. package/dest/config/index.d.ts +4 -4
  9. package/dest/config/index.d.ts.map +1 -1
  10. package/dest/config/package_info.js +1 -1
  11. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  12. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  13. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  14. package/dest/contract_function_simulator/contract_function_simulator.d.ts +42 -14
  15. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/contract_function_simulator.js +73 -29
  17. package/dest/contract_function_simulator/execution_note_cache.d.ts +21 -12
  18. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/execution_note_cache.js +48 -31
  20. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +1 -1
  21. package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
  22. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  23. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/index.d.ts +2 -2
  25. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/index.js +1 -1
  27. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
  28. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -2
  30. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  32. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  33. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  36. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +2 -2
  37. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  39. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  41. package/dest/contract_function_simulator/oracle/interfaces.d.ts +14 -13
  42. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +4 -2
  44. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  46. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +11 -7
  47. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/oracle/note_packing_utils.js +14 -10
  49. package/dest/contract_function_simulator/oracle/oracle.d.ts +7 -7
  50. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/oracle/oracle.js +40 -28
  52. package/dest/contract_function_simulator/oracle/private_execution.d.ts +10 -16
  53. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/private_execution.js +19 -18
  55. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +25 -25
  56. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +29 -44
  58. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +63 -21
  59. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +162 -54
  61. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  62. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/pick_notes.js +1 -1
  64. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  65. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  67. package/dest/debug/pxe_debug_utils.d.ts +31 -0
  68. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  69. package/dest/debug/pxe_debug_utils.js +37 -0
  70. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  71. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  72. package/dest/entrypoints/client/bundle/index.js +0 -1
  73. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  74. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  75. package/dest/entrypoints/client/bundle/utils.js +12 -3
  76. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  77. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  78. package/dest/entrypoints/client/lazy/index.js +0 -1
  79. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  80. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  81. package/dest/entrypoints/client/lazy/utils.js +12 -3
  82. package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
  83. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  84. package/dest/entrypoints/server/index.d.ts +3 -2
  85. package/dest/entrypoints/server/index.d.ts.map +1 -1
  86. package/dest/entrypoints/server/index.js +2 -1
  87. package/dest/entrypoints/server/utils.d.ts +1 -1
  88. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  89. package/dest/entrypoints/server/utils.js +12 -8
  90. package/dest/error_enriching.d.ts +4 -4
  91. package/dest/error_enriching.d.ts.map +1 -1
  92. package/dest/error_enriching.js +6 -6
  93. package/dest/events/event_service.d.ts +16 -0
  94. package/dest/events/event_service.d.ts.map +1 -0
  95. package/dest/events/event_service.js +45 -0
  96. package/dest/events/index.d.ts +2 -0
  97. package/dest/events/index.d.ts.map +1 -0
  98. package/dest/events/index.js +1 -0
  99. package/dest/events/private_event_filter_validator.d.ts +9 -0
  100. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  101. package/dest/events/private_event_filter_validator.js +38 -0
  102. package/dest/job_coordinator/job_coordinator.d.ts +74 -0
  103. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  104. package/dest/job_coordinator/job_coordinator.js +93 -0
  105. package/dest/logs/log_service.d.ts +27 -0
  106. package/dest/logs/log_service.d.ts.map +1 -0
  107. package/dest/logs/log_service.js +122 -0
  108. package/dest/notes/index.d.ts +2 -0
  109. package/dest/notes/index.d.ts.map +1 -0
  110. package/dest/notes/index.js +1 -0
  111. package/dest/notes/note_service.d.ts +48 -0
  112. package/dest/notes/note_service.d.ts.map +1 -0
  113. package/dest/notes/note_service.js +147 -0
  114. package/dest/oracle_version.d.ts +2 -2
  115. package/dest/oracle_version.js +2 -2
  116. package/dest/private_kernel/hints/index.d.ts +2 -2
  117. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  118. package/dest/private_kernel/hints/index.js +1 -1
  119. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
  120. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  121. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
  122. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  123. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  124. package/dest/private_kernel/private_kernel_execution_prover.js +8 -9
  125. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -29
  126. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  127. package/dest/private_kernel/private_kernel_oracle.js +90 -2
  128. package/dest/pxe.d.ts +45 -81
  129. package/dest/pxe.d.ts.map +1 -1
  130. package/dest/pxe.js +182 -215
  131. package/dest/storage/address_store/address_store.d.ts +11 -0
  132. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  133. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
  134. package/dest/storage/address_store/index.d.ts +2 -0
  135. package/dest/storage/address_store/index.d.ts.map +1 -0
  136. package/dest/storage/address_store/index.js +1 -0
  137. package/dest/storage/{sync_data_provider/sync_data_provider.d.ts → anchor_block_store/anchor_block_store.d.ts} +2 -4
  138. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  139. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +2 -9
  140. package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
  141. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  142. package/dest/storage/anchor_block_store/index.js +1 -0
  143. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  144. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  145. package/dest/storage/capsule_store/capsule_store.js +255 -0
  146. package/dest/storage/capsule_store/index.d.ts +2 -0
  147. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  148. package/dest/storage/capsule_store/index.js +1 -0
  149. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +8 -5
  150. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  151. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +46 -3
  152. package/dest/storage/contract_store/index.d.ts +2 -0
  153. package/dest/storage/contract_store/index.d.ts.map +1 -0
  154. package/dest/storage/contract_store/index.js +1 -0
  155. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  156. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  157. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  158. package/dest/storage/index.d.ts +8 -8
  159. package/dest/storage/index.d.ts.map +1 -1
  160. package/dest/storage/index.js +7 -7
  161. package/dest/storage/note_store/index.d.ts +3 -0
  162. package/dest/storage/note_store/index.d.ts.map +1 -0
  163. package/dest/storage/note_store/index.js +2 -0
  164. package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +15 -13
  165. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  166. package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +105 -102
  167. package/dest/storage/private_event_store/private_event_store.d.ts +78 -0
  168. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  169. package/dest/storage/private_event_store/private_event_store.js +222 -0
  170. package/dest/storage/tagging_store/index.d.ts +4 -0
  171. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  172. package/dest/storage/tagging_store/index.js +3 -0
  173. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  174. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  175. package/dest/storage/tagging_store/recipient_tagging_store.js +99 -0
  176. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  177. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  178. package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
  179. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  180. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  181. package/dest/storage/tagging_store/sender_tagging_store.js +278 -0
  182. package/dest/tagging/constants.d.ts +2 -2
  183. package/dest/tagging/constants.d.ts.map +1 -1
  184. package/dest/tagging/constants.js +10 -2
  185. package/dest/tagging/index.d.ts +15 -6
  186. package/dest/tagging/index.d.ts.map +1 -1
  187. package/dest/tagging/index.js +14 -5
  188. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  189. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  190. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  191. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  192. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  193. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  194. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  195. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  196. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +29 -0
  197. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -0
  198. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  199. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  200. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  201. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  202. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +32 -0
  203. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +20 -0
  204. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  205. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +57 -0
  206. package/dest/tree_membership/tree_membership_service.d.ts +50 -0
  207. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
  208. package/dest/tree_membership/tree_membership_service.js +75 -0
  209. package/package.json +18 -18
  210. package/src/bin/check_oracle_version.ts +130 -20
  211. package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +44 -30
  212. package/src/block_synchronizer/index.ts +1 -0
  213. package/src/config/index.ts +3 -3
  214. package/src/config/package_info.ts +1 -1
  215. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  216. package/src/contract_function_simulator/contract_function_simulator.ts +118 -30
  217. package/src/contract_function_simulator/execution_note_cache.ts +51 -29
  218. package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
  219. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  220. package/src/contract_function_simulator/index.ts +1 -1
  221. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -1
  222. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  223. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  224. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
  225. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  226. package/src/contract_function_simulator/oracle/interfaces.ts +13 -12
  227. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  228. package/src/contract_function_simulator/oracle/note_packing_utils.ts +27 -13
  229. package/src/contract_function_simulator/oracle/oracle.ts +48 -32
  230. package/src/contract_function_simulator/oracle/private_execution.ts +22 -30
  231. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +97 -58
  232. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +233 -63
  233. package/src/contract_function_simulator/pick_notes.ts +1 -1
  234. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  235. package/src/debug/pxe_debug_utils.ts +48 -0
  236. package/src/entrypoints/client/bundle/index.ts +0 -1
  237. package/src/entrypoints/client/bundle/utils.ts +9 -3
  238. package/src/entrypoints/client/lazy/index.ts +0 -1
  239. package/src/entrypoints/client/lazy/utils.ts +9 -4
  240. package/src/entrypoints/pxe_creation_options.ts +4 -1
  241. package/src/entrypoints/server/index.ts +2 -1
  242. package/src/entrypoints/server/utils.ts +12 -16
  243. package/src/error_enriching.ts +7 -15
  244. package/src/events/event_service.ts +73 -0
  245. package/src/events/index.ts +1 -0
  246. package/src/events/private_event_filter_validator.ts +46 -0
  247. package/src/job_coordinator/job_coordinator.ts +149 -0
  248. package/src/logs/log_service.ts +204 -0
  249. package/src/notes/index.ts +1 -0
  250. package/src/notes/note_service.ts +194 -0
  251. package/src/oracle_version.ts +2 -2
  252. package/src/private_kernel/hints/index.ts +1 -1
  253. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +34 -23
  254. package/src/private_kernel/private_kernel_execution_prover.ts +7 -9
  255. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  256. package/src/pxe.ts +233 -279
  257. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
  258. package/src/storage/address_store/index.ts +1 -0
  259. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +2 -12
  260. package/src/storage/anchor_block_store/index.ts +1 -0
  261. package/src/storage/capsule_store/capsule_store.ts +315 -0
  262. package/src/storage/capsule_store/index.ts +1 -0
  263. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +65 -3
  264. package/src/storage/contract_store/index.ts +1 -0
  265. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  266. package/src/storage/index.ts +7 -7
  267. package/src/storage/note_store/index.ts +2 -0
  268. package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +117 -105
  269. package/src/storage/private_event_store/private_event_store.ts +324 -0
  270. package/src/storage/tagging_store/index.ts +3 -0
  271. package/src/storage/tagging_store/recipient_tagging_store.ts +129 -0
  272. package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
  273. package/src/storage/tagging_store/sender_tagging_store.ts +345 -0
  274. package/src/tagging/constants.ts +10 -2
  275. package/src/tagging/index.ts +17 -5
  276. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +133 -0
  277. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  278. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +43 -0
  279. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +97 -0
  280. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +48 -0
  281. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +75 -0
  282. package/src/tree_membership/tree_membership_service.ts +97 -0
  283. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -267
  284. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  285. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  286. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  287. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  288. package/dest/contract_function_simulator/proxied_node.js +0 -27
  289. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -123
  290. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  291. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -696
  292. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  293. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  294. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  295. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  296. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  297. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  298. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  299. package/dest/storage/address_data_provider/index.d.ts +0 -2
  300. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  301. package/dest/storage/address_data_provider/index.js +0 -1
  302. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  303. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  304. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  305. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  306. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  307. package/dest/storage/capsule_data_provider/index.js +0 -1
  308. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  309. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  310. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  311. package/dest/storage/contract_data_provider/index.js +0 -1
  312. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  313. package/dest/storage/note_data_provider/index.d.ts +0 -3
  314. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  315. package/dest/storage/note_data_provider/index.js +0 -2
  316. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  317. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
  318. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  319. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -105
  320. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  321. package/dest/storage/sync_data_provider/index.js +0 -1
  322. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  323. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  324. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  325. package/dest/storage/tagging_data_provider/index.js +0 -1
  326. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  327. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  328. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  329. package/dest/synchronizer/index.d.ts +0 -2
  330. package/dest/synchronizer/index.d.ts.map +0 -1
  331. package/dest/synchronizer/index.js +0 -1
  332. package/dest/synchronizer/synchronizer.d.ts +0 -36
  333. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  334. package/dest/tagging/siloed_tag.d.ts +0 -14
  335. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  336. package/dest/tagging/siloed_tag.js +0 -20
  337. package/dest/tagging/tag.d.ts +0 -12
  338. package/dest/tagging/tag.d.ts.map +0 -1
  339. package/dest/tagging/tag.js +0 -17
  340. package/dest/tagging/utils.d.ts +0 -18
  341. package/dest/tagging/utils.d.ts.map +0 -1
  342. package/dest/tagging/utils.js +0 -24
  343. package/src/contract_function_simulator/execution_data_provider.ts +0 -342
  344. package/src/contract_function_simulator/proxied_node.ts +0 -33
  345. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1023
  346. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  347. package/src/storage/address_data_provider/index.ts +0 -1
  348. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  349. package/src/storage/capsule_data_provider/index.ts +0 -1
  350. package/src/storage/contract_data_provider/index.ts +0 -1
  351. package/src/storage/note_data_provider/index.ts +0 -2
  352. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -143
  353. package/src/storage/sync_data_provider/index.ts +0 -1
  354. package/src/storage/tagging_data_provider/index.ts +0 -1
  355. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  356. package/src/synchronizer/index.ts +0 -1
  357. package/src/tagging/siloed_tag.ts +0 -22
  358. package/src/tagging/tag.ts +0 -16
  359. package/src/tagging/utils.ts +0 -31
@@ -1,5 +1,6 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr, Point } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
3
4
  import {
4
5
  type ACIRCallback,
5
6
  type ACVMField,
@@ -11,11 +12,12 @@ import {
11
12
  } from '@aztec/simulator/client';
12
13
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
13
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
+ import { L2BlockHash } from '@aztec/stdlib/block';
14
16
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
15
17
  import { MerkleTreeId } from '@aztec/stdlib/trees';
16
18
 
17
19
  import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
18
- import { packAsRetrievedNote } from './note_packing_utils.js';
20
+ import { packAsHintedNote } from './note_packing_utils.js';
19
21
 
20
22
  export class UnavailableOracleError extends Error {
21
23
  constructor(oracleName: string) {
@@ -111,9 +113,9 @@ export class Oracle {
111
113
  return [values.map(toACVMField)];
112
114
  }
113
115
 
114
- async utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
115
- const context = await this.handlerAsUtility().utilityGetUtilityContext();
116
- return context.toNoirRepresentation();
116
+ utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
117
+ const context = this.handlerAsUtility().utilityGetUtilityContext();
118
+ return Promise.resolve(context.toNoirRepresentation());
117
119
  }
118
120
 
119
121
  async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
@@ -137,76 +139,77 @@ export class Oracle {
137
139
  }
138
140
 
139
141
  async utilityGetMembershipWitness(
140
- [blockNumber]: ACVMField[],
142
+ [blockHash]: ACVMField[],
141
143
  [treeId]: ACVMField[],
142
144
  [leafValue]: ACVMField[],
143
145
  ): Promise<(ACVMField | ACVMField[])[]> {
144
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
146
+ const parsedBlockHash = L2BlockHash.fromString(blockHash);
145
147
  const parsedTreeId = Fr.fromString(treeId).toNumber();
146
148
  const parsedLeafValue = Fr.fromString(leafValue);
147
149
 
148
150
  const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
149
- BlockNumber(parsedBlockNumber),
151
+ parsedBlockHash,
150
152
  parsedTreeId,
151
153
  parsedLeafValue,
152
154
  );
153
155
  if (!witness) {
154
156
  throw new Error(
155
- `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`,
157
+ `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block hash ${parsedBlockHash.toString()}.`,
156
158
  );
157
159
  }
158
160
  return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
159
161
  }
160
162
 
161
163
  async utilityGetNullifierMembershipWitness(
162
- [blockNumber]: ACVMField[],
164
+ [blockHash]: ACVMField[],
163
165
  [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
164
166
  ): Promise<(ACVMField | ACVMField[])[]> {
165
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
167
+ const parsedBlockHash = L2BlockHash.fromString(blockHash);
166
168
  const parsedNullifier = Fr.fromString(nullifier);
167
169
 
168
170
  const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
169
- BlockNumber(parsedBlockNumber),
171
+ parsedBlockHash,
170
172
  parsedNullifier,
171
173
  );
172
174
  if (!witness) {
173
- throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
175
+ throw new Error(
176
+ `Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
177
+ );
174
178
  }
175
179
  return witness.toNoirRepresentation();
176
180
  }
177
181
 
178
182
  async utilityGetLowNullifierMembershipWitness(
179
- [blockNumber]: ACVMField[],
183
+ [blockHash]: ACVMField[],
180
184
  [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
181
185
  ): Promise<(ACVMField | ACVMField[])[]> {
182
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
186
+ const parsedBlockHash = L2BlockHash.fromString(blockHash);
183
187
  const parsedNullifier = Fr.fromString(nullifier);
184
188
 
185
189
  const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
186
- BlockNumber(parsedBlockNumber),
190
+ parsedBlockHash,
187
191
  parsedNullifier,
188
192
  );
189
193
  if (!witness) {
190
194
  throw new Error(
191
- `Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`,
195
+ `Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
192
196
  );
193
197
  }
194
198
  return witness.toNoirRepresentation();
195
199
  }
196
200
 
197
201
  async utilityGetPublicDataWitness(
198
- [blockNumber]: ACVMField[],
202
+ [blockHash]: ACVMField[],
199
203
  [leafSlot]: ACVMField[],
200
204
  ): Promise<(ACVMField | ACVMField[])[]> {
201
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
205
+ const parsedBlockHash = L2BlockHash.fromString(blockHash);
202
206
  const parsedLeafSlot = Fr.fromString(leafSlot);
203
207
 
204
- const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
205
- BlockNumber(parsedBlockNumber),
206
- parsedLeafSlot,
207
- );
208
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
208
209
  if (!witness) {
209
- throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
210
+ throw new Error(
211
+ `Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
212
+ );
210
213
  }
211
214
  return witness.toNoirRepresentation();
212
215
  }
@@ -239,7 +242,8 @@ export class Oracle {
239
242
  }
240
243
 
241
244
  async utilityGetNotes(
242
- [owner]: ACVMField[],
245
+ [ownerSome]: ACVMField[],
246
+ [ownerValue]: ACVMField[],
243
247
  [storageSlot]: ACVMField[],
244
248
  [numSelects]: ACVMField[],
245
249
  selectByIndexes: ACVMField[],
@@ -255,10 +259,12 @@ export class Oracle {
255
259
  [offset]: ACVMField[],
256
260
  [status]: ACVMField[],
257
261
  [maxNotes]: ACVMField[],
258
- [packedRetrievedNoteLength]: ACVMField[],
262
+ [packedHintedNoteLength]: ACVMField[],
259
263
  ): Promise<(ACVMField | ACVMField[])[]> {
264
+ // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
265
+ const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
260
266
  const noteDatas = await this.handlerAsUtility().utilityGetNotes(
261
- AztecAddress.fromString(owner),
267
+ owner,
262
268
  Fr.fromString(storageSlot),
263
269
  +numSelects,
264
270
  selectByIndexes.map(s => +s),
@@ -275,15 +281,25 @@ export class Oracle {
275
281
  +status,
276
282
  );
277
283
 
278
- const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(packAsRetrievedNote);
284
+ const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
285
+ packAsHintedNote({
286
+ contractAddress: noteData.contractAddress,
287
+ owner: noteData.owner,
288
+ randomness: noteData.randomness,
289
+ storageSlot: noteData.storageSlot,
290
+ noteNonce: noteData.noteNonce,
291
+ isPending: noteData.isPending,
292
+ note: noteData.note,
293
+ }),
294
+ );
279
295
 
280
296
  // Now we convert each sub-array to an array of ACVMField
281
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
297
+ const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
282
298
  subArray.map(toACVMField),
283
299
  );
284
300
 
285
301
  // At last we convert the array of arrays to a bounded vec of arrays
286
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
302
+ return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
287
303
  }
288
304
 
289
305
  privateNotifyCreatedNote(
@@ -344,15 +360,15 @@ export class Oracle {
344
360
  }
345
361
 
346
362
  async utilityStorageRead(
363
+ [blockHash]: ACVMField[],
347
364
  [contractAddress]: ACVMField[],
348
365
  [startStorageSlot]: ACVMField[],
349
- [blockNumber]: ACVMField[],
350
366
  [numberOfElements]: ACVMField[],
351
367
  ): Promise<ACVMField[][]> {
352
368
  const values = await this.handlerAsUtility().utilityStorageRead(
369
+ L2BlockHash.fromString(blockHash),
353
370
  new AztecAddress(Fr.fromString(contractAddress)),
354
371
  Fr.fromString(startStorageSlot),
355
- BlockNumber(+blockNumber),
356
372
  +numberOfElements,
357
373
  );
358
374
  return [values.map(toACVMField)];
@@ -1,6 +1,5 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { BlockNumber } from '@aztec/foundation/branded-types';
3
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
3
  import { createLogger } from '@aztec/foundation/log';
5
4
  import { Timer } from '@aztec/foundation/timer';
6
5
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
@@ -19,15 +18,15 @@ import {
19
18
  countArgumentsSize,
20
19
  } from '@aztec/stdlib/abi';
21
20
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
21
+ import { L2BlockHash } from '@aztec/stdlib/block';
22
22
  import type { ContractInstance } from '@aztec/stdlib/contract';
23
23
  import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
24
24
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
25
25
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
26
26
  import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
27
27
  import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
28
- import type { UInt64 } from '@aztec/stdlib/types';
29
28
 
30
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
29
+ import { ContractStore } from '../../storage/contract_store/index.js';
31
30
  import { Oracle } from './oracle.js';
32
31
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
33
32
 
@@ -85,7 +84,6 @@ export async function executePrivateFunction(
85
84
 
86
85
  const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
87
86
 
88
- const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
89
87
  const newNotes = privateExecutionOracle.getNewNotes();
90
88
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
91
89
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
@@ -108,7 +106,6 @@ export async function executePrivateFunction(
108
106
  Buffer.from(artifact.verificationKey!, 'base64'),
109
107
  partialWitness,
110
108
  publicInputs,
111
- noteHashLeafIndexMap,
112
109
  newNotes,
113
110
  noteHashNullifierCounterMap,
114
111
  rawReturnValues,
@@ -154,21 +151,22 @@ export function extractPrivateCircuitPublicInputs(
154
151
  * from the instance is used.
155
152
  * @param contractAddress - The address of the contract to read the class id for.
156
153
  * @param instance - The instance of the contract.
157
- * @param executionDataProvider - The execution data provider.
158
- * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
159
- * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
154
+ * @param aztecNode - The Aztec node to query for storage.
155
+ * @param header - The header of the block at which to load the DelayedPublicMutable storing the class id.
160
156
  * @returns The current class id.
161
157
  */
162
158
  export async function readCurrentClassId(
163
159
  contractAddress: AztecAddress,
164
160
  instance: ContractInstance,
165
- executionDataProvider: ExecutionDataProvider | AztecNode,
166
- blockNumber: BlockNumber,
167
- timestamp: UInt64,
161
+ aztecNode: AztecNode,
162
+ header: BlockHeader,
168
163
  ) {
164
+ const blockHashFr = await header.hash();
165
+ const blockHash = L2BlockHash.fromField(blockHashFr);
166
+ const timestamp = header.globalVariables.timestamp;
169
167
  const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
170
168
  const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
171
- executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
169
+ aztecNode.getPublicStorageAt(blockHash, ProtocolContractAddress.ContractInstanceRegistry, slot),
172
170
  );
173
171
  let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
174
172
  if (currentClassId.isZero()) {
@@ -178,28 +176,22 @@ export async function readCurrentClassId(
178
176
  }
179
177
 
180
178
  /**
181
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
182
- * provider (i.e. PXE).
183
- * @param contractAddress - The address of the contract to verify class id for.
184
- * @param executionDataProvider - The execution data provider.
185
- * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
186
- * header of the execution data provider is used.
179
+ * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
180
+ * provider (i.e. PXE's own storage).
181
+ * @param header - The header of the block at which to verify the current class id.
187
182
  */
188
183
  export async function verifyCurrentClassId(
189
184
  contractAddress: AztecAddress,
190
- executionDataProvider: ExecutionDataProvider,
191
- header?: BlockHeader,
185
+ aztecNode: AztecNode,
186
+ contractStore: ContractStore,
187
+ header: BlockHeader,
192
188
  ) {
193
- header = header ?? (await executionDataProvider.getAnchorBlockHeader());
189
+ const instance = await contractStore.getContractInstance(contractAddress);
190
+ if (!instance) {
191
+ throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
192
+ }
194
193
 
195
- const instance = await executionDataProvider.getContractInstance(contractAddress);
196
- const currentClassId = await readCurrentClassId(
197
- contractAddress,
198
- instance,
199
- executionDataProvider,
200
- header.globalVariables.blockNumber,
201
- header.globalVariables.timestamp,
202
- );
194
+ const currentClassId = await readCurrentClassId(contractAddress, instance, aztecNode, header);
203
195
  if (!instance.currentContractClassId.equals(currentClassId)) {
204
196
  throw new Error(
205
197
  `Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
@@ -1,20 +1,24 @@
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 { KeyStore } from '@aztec/key-store';
5
6
  import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
6
7
  import {
7
8
  type FunctionAbi,
8
9
  type FunctionArtifact,
10
+ type FunctionCall,
9
11
  FunctionSelector,
10
12
  type NoteSelector,
11
13
  countArgumentsSize,
12
14
  } from '@aztec/stdlib/abi';
13
15
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
14
16
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
17
+ import { siloNullifier } from '@aztec/stdlib/hash';
18
+ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
16
19
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
17
- import type { ContractClassLog, DirectionalAppTaggingSecret, PreTag } from '@aztec/stdlib/logs';
20
+ import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
21
+ import { Tag } from '@aztec/stdlib/logs';
18
22
  import { Note, type NoteStatus } from '@aztec/stdlib/note';
19
23
  import {
20
24
  type BlockHeader,
@@ -26,8 +30,17 @@ import {
26
30
  type TxContext,
27
31
  } from '@aztec/stdlib/tx';
28
32
 
29
- import { Tag } from '../../tagging/tag.js';
30
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
33
+ import { NoteService } from '../../notes/note_service.js';
34
+ import type { AddressStore } from '../../storage/address_store/address_store.js';
35
+ import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
36
+ import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
37
+ import type { ContractStore } from '../../storage/contract_store/contract_store.js';
38
+ import type { NoteStore } from '../../storage/note_store/note_store.js';
39
+ import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
40
+ import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
41
+ import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
42
+ import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
43
+ import { syncSenderTaggingIndexes } from '../../tagging/index.js';
31
44
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
32
45
  import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
33
46
  import type { HashedValuesCache } from '../hashed_values_cache.js';
@@ -51,16 +64,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
51
64
  * Users can also use this to get a clearer idea of what's happened during a simulation.
52
65
  */
53
66
  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
67
  private noteHashNullifierCounterMap: Map<number, number> = new Map();
65
68
  private contractClassLogs: CountedContractClassLog[] = [];
66
69
  private offchainEffects: { data: Fr[] }[] = [];
@@ -71,14 +74,27 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
71
74
  private readonly txContext: TxContext,
72
75
  private readonly callContext: CallContext,
73
76
  /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
74
- protected readonly anchorBlockHeader: BlockHeader,
77
+ protected override readonly anchorBlockHeader: BlockHeader,
78
+ /** Needed to trigger contract synchronization before nested calls */
79
+ private readonly utilityExecutor: (call: FunctionCall) => Promise<void>,
75
80
  /** List of transient auth witnesses to be used during this simulation */
76
81
  authWitnesses: AuthWitness[],
77
82
  capsules: Capsule[],
78
83
  private readonly executionCache: HashedValuesCache,
79
84
  private readonly noteCache: ExecutionNoteCache,
80
85
  private readonly taggingIndexCache: ExecutionTaggingIndexCache,
81
- executionDataProvider: ExecutionDataProvider,
86
+ contractStore: ContractStore,
87
+ noteStore: NoteStore,
88
+ keyStore: KeyStore,
89
+ addressStore: AddressStore,
90
+ aztecNode: AztecNode,
91
+ anchorBlockStore: AnchorBlockStore,
92
+ private readonly senderTaggingStore: SenderTaggingStore,
93
+ recipientTaggingStore: RecipientTaggingStore,
94
+ senderAddressBookStore: SenderAddressBookStore,
95
+ capsuleStore: CapsuleStore,
96
+ privateEventStore: PrivateEventStore,
97
+ jobId: string,
82
98
  private totalPublicCalldataCount: number = 0,
83
99
  protected sideEffectCounter: number = 0,
84
100
  log = createLogger('simulator:client_execution_context'),
@@ -86,7 +102,25 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
86
102
  private senderForTags?: AztecAddress,
87
103
  private simulator?: CircuitSimulator,
88
104
  ) {
89
- super(callContext.contractAddress, authWitnesses, capsules, executionDataProvider, log, scopes);
105
+ super(
106
+ callContext.contractAddress,
107
+ authWitnesses,
108
+ capsules,
109
+ anchorBlockHeader,
110
+ contractStore,
111
+ noteStore,
112
+ keyStore,
113
+ addressStore,
114
+ aztecNode,
115
+ anchorBlockStore,
116
+ recipientTaggingStore,
117
+ senderAddressBookStore,
118
+ capsuleStore,
119
+ privateEventStore,
120
+ jobId,
121
+ log,
122
+ scopes,
123
+ );
90
124
  }
91
125
 
92
126
  public getPrivateContextInputs(): PrivateContextInputs {
@@ -118,14 +152,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
118
152
  return toACVMWitness(0, fields);
119
153
  }
120
154
 
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
155
  /**
130
156
  * Get the data for the newly created notes.
131
157
  */
@@ -152,7 +178,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
152
178
  }
153
179
 
154
180
  /**
155
- * Returns the pre tags that were used in this execution (and that need to be stored in the db).
181
+ * Returns the pre-tags that were used in this execution (and that need to be stored in the db).
156
182
  */
157
183
  public getUsedPreTags(): PreTag[] {
158
184
  return this.taggingIndexCache.getUsedPreTags();
@@ -202,11 +228,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
202
228
  * @returns An app tag to be used in a log.
203
229
  */
204
230
  public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
205
- const secret = await this.executionDataProvider.calculateDirectionalAppTaggingSecret(
206
- this.contractAddress,
207
- sender,
208
- recipient,
209
- );
231
+ const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
210
232
 
211
233
  const index = await this.#getIndexToUseForSecret(secret);
212
234
  this.log.debug(
@@ -217,6 +239,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
217
239
  return Tag.compute({ secret, index });
218
240
  }
219
241
 
242
+ async #calculateDirectionalAppTaggingSecret(
243
+ contractAddress: AztecAddress,
244
+ sender: AztecAddress,
245
+ recipient: AztecAddress,
246
+ ) {
247
+ const senderCompleteAddress = await this.getCompleteAddress(sender);
248
+ const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
249
+ return DirectionalAppTaggingSecret.compute(
250
+ senderCompleteAddress,
251
+ senderIvsk,
252
+ recipient,
253
+ contractAddress,
254
+ recipient,
255
+ );
256
+ }
257
+
220
258
  async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
221
259
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
222
260
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
@@ -227,8 +265,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
227
265
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
228
266
  // are up to date. We do this here because this store is not synced as part of the global sync because
229
267
  // 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);
268
+ await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingStore, this.jobId);
269
+
270
+ const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
232
271
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
233
272
  // Otherwise, the next index to use is one past the last used index
234
273
  return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
@@ -282,7 +321,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
282
321
  * Real notes coming from DB will have a leafIndex which
283
322
  * represents their index in the note hash tree.
284
323
  *
285
- * @param owner - The owner of the notes.
324
+ * @param owner - The owner of the notes. If undefined, returns notes for all owners.
286
325
  * @param storageSlot - The storage slot.
287
326
  * @param numSelects - The number of valid selects in selectBy and selectValues.
288
327
  * @param selectBy - An array of indices of the fields to selects.
@@ -296,7 +335,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
296
335
  * @returns Array of note data.
297
336
  */
298
337
  public override async utilityGetNotes(
299
- owner: AztecAddress,
338
+ owner: AztecAddress | undefined,
300
339
  storageSlot: Fr,
301
340
  numSelects: number,
302
341
  selectByIndexes: number[],
@@ -316,7 +355,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
316
355
  const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
317
356
 
318
357
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
319
- const dbNotes = await this.executionDataProvider.getNotes(
358
+
359
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
360
+ const dbNotes = await noteService.getNotes(
320
361
  this.callContext.contractAddress,
321
362
  owner,
322
363
  storageSlot,
@@ -345,23 +386,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
345
386
  .join(', ')}`,
346
387
  );
347
388
 
348
- const noteHashesAndIndexes = await Promise.all(
349
- notes.map(async n => {
350
- if (n.index !== undefined) {
351
- const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
352
- const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
353
-
354
- return { hash: uniqueNoteHash, index: n.index };
355
- }
356
- }),
357
- );
358
-
359
- noteHashesAndIndexes
360
- .filter(n => n !== undefined)
361
- .forEach(n => {
362
- this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
363
- });
364
-
365
389
  return notes;
366
390
  }
367
391
 
@@ -404,6 +428,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
404
428
  note,
405
429
  siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
406
430
  noteHash,
431
+ isPending: true, // This note has just been created and hence is not settled yet.
407
432
  },
408
433
  counter,
409
434
  );
@@ -494,9 +519,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
494
519
 
495
520
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
496
521
 
497
- await verifyCurrentClassId(targetContractAddress, this.executionDataProvider, this.anchorBlockHeader);
522
+ await verifyCurrentClassId(targetContractAddress, this.aztecNode, this.contractStore, this.anchorBlockHeader);
523
+
524
+ await this.contractStore.syncPrivateState(targetContractAddress, functionSelector, this.utilityExecutor);
498
525
 
499
- const targetArtifact = await this.executionDataProvider.getFunctionArtifact(
526
+ const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
500
527
  targetContractAddress,
501
528
  functionSelector,
502
529
  );
@@ -510,12 +537,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
510
537
  derivedTxContext,
511
538
  derivedCallContext,
512
539
  this.anchorBlockHeader,
540
+ this.utilityExecutor,
513
541
  this.authWitnesses,
514
542
  this.capsules,
515
543
  this.executionCache,
516
544
  this.noteCache,
517
545
  this.taggingIndexCache,
518
- this.executionDataProvider,
546
+ this.contractStore,
547
+ this.noteStore,
548
+ this.keyStore,
549
+ this.addressStore,
550
+ this.aztecNode,
551
+ this.anchorBlockStore,
552
+ this.senderTaggingStore,
553
+ this.recipientTaggingStore,
554
+ this.senderAddressBookStore,
555
+ this.capsuleStore,
556
+ this.privateEventStore,
557
+ this.jobId,
519
558
  this.totalPublicCalldataCount,
520
559
  sideEffectCounter,
521
560
  this.log,
@@ -628,7 +667,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
628
667
  }
629
668
 
630
669
  public getDebugFunctionName() {
631
- return this.executionDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
670
+ return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
632
671
  }
633
672
 
634
673
  public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {