@aztec/pxe 0.0.1-commit.5476d83 → 0.0.1-commit.6230efd

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 (329) hide show
  1. package/dest/bin/check_oracle_version.js +105 -15
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +37 -0
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  4. package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +20 -22
  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/contract_function_simulator/contract_function_simulator.d.ts +41 -12
  11. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  12. package/dest/contract_function_simulator/contract_function_simulator.js +49 -19
  13. package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -3
  14. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  15. package/dest/contract_function_simulator/execution_note_cache.js +4 -3
  16. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +1 -1
  17. package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
  18. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  19. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -2
  21. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  23. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  25. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  26. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  28. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +5 -4
  29. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  30. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +6 -3
  31. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +2 -2
  32. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -1
  34. package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -13
  35. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  37. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  39. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +7 -3
  40. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/oracle/note_packing_utils.js +7 -3
  42. package/dest/contract_function_simulator/oracle/oracle.d.ts +3 -3
  43. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/oracle/oracle.js +27 -15
  45. package/dest/contract_function_simulator/oracle/private_execution.d.ts +9 -10
  46. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/oracle/private_execution.js +12 -12
  48. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +27 -12
  49. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  50. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +31 -17
  51. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +58 -16
  52. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  53. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +147 -40
  54. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  55. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  56. package/dest/contract_function_simulator/pick_notes.js +1 -1
  57. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  58. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  59. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  60. package/dest/debug/pxe_debug_utils.d.ts +31 -0
  61. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  62. package/dest/debug/pxe_debug_utils.js +37 -0
  63. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  64. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  65. package/dest/entrypoints/client/bundle/index.js +0 -1
  66. package/dest/entrypoints/client/bundle/utils.js +2 -2
  67. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  68. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  69. package/dest/entrypoints/client/lazy/index.js +0 -1
  70. package/dest/entrypoints/client/lazy/utils.js +2 -2
  71. package/dest/entrypoints/pxe_creation_options.d.ts +3 -1
  72. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  73. package/dest/entrypoints/server/index.d.ts +2 -2
  74. package/dest/entrypoints/server/index.d.ts.map +1 -1
  75. package/dest/entrypoints/server/index.js +1 -1
  76. package/dest/entrypoints/server/utils.js +1 -1
  77. package/dest/error_enriching.d.ts +4 -4
  78. package/dest/error_enriching.d.ts.map +1 -1
  79. package/dest/error_enriching.js +6 -6
  80. package/dest/events/event_service.d.ts +15 -0
  81. package/dest/events/event_service.d.ts.map +1 -0
  82. package/dest/events/event_service.js +47 -0
  83. package/dest/events/index.d.ts +2 -0
  84. package/dest/events/index.d.ts.map +1 -0
  85. package/dest/events/index.js +1 -0
  86. package/dest/events/private_event_filter_validator.d.ts +9 -0
  87. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  88. package/dest/events/private_event_filter_validator.js +39 -0
  89. package/dest/logs/log_service.d.ts +26 -0
  90. package/dest/logs/log_service.d.ts.map +1 -0
  91. package/dest/logs/log_service.js +120 -0
  92. package/dest/notes/index.d.ts +2 -0
  93. package/dest/notes/index.d.ts.map +1 -0
  94. package/dest/notes/index.js +1 -0
  95. package/dest/notes/note_service.d.ts +48 -0
  96. package/dest/notes/note_service.d.ts.map +1 -0
  97. package/dest/notes/note_service.js +152 -0
  98. package/dest/oracle_version.d.ts +2 -2
  99. package/dest/oracle_version.js +2 -2
  100. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  101. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  102. package/dest/private_kernel/private_kernel_execution_prover.js +5 -8
  103. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
  104. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  105. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +7 -6
  106. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  107. package/dest/private_kernel/private_kernel_oracle_impl.js +7 -7
  108. package/dest/public_storage/public_storage_service.d.ts +24 -0
  109. package/dest/public_storage/public_storage_service.d.ts.map +1 -0
  110. package/dest/public_storage/public_storage_service.js +26 -0
  111. package/dest/pxe.d.ts +38 -46
  112. package/dest/pxe.d.ts.map +1 -1
  113. package/dest/pxe.js +135 -143
  114. package/dest/storage/address_store/address_store.d.ts +11 -0
  115. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  116. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
  117. package/dest/storage/address_store/index.d.ts +2 -0
  118. package/dest/storage/address_store/index.d.ts.map +1 -0
  119. package/dest/storage/address_store/index.js +1 -0
  120. package/dest/storage/{sync_data_provider/sync_data_provider.d.ts → anchor_block_store/anchor_block_store.d.ts} +2 -3
  121. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  122. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +2 -9
  123. package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
  124. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  125. package/dest/storage/anchor_block_store/index.js +1 -0
  126. package/dest/storage/capsule_store/capsule_store.d.ts +57 -0
  127. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  128. package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +34 -6
  129. package/dest/storage/capsule_store/index.d.ts +2 -0
  130. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  131. package/dest/storage/capsule_store/index.js +1 -0
  132. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +8 -5
  133. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  134. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +46 -3
  135. package/dest/storage/contract_store/index.d.ts +2 -0
  136. package/dest/storage/contract_store/index.d.ts.map +1 -0
  137. package/dest/storage/contract_store/index.js +1 -0
  138. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  139. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  140. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  141. package/dest/storage/index.d.ts +8 -8
  142. package/dest/storage/index.d.ts.map +1 -1
  143. package/dest/storage/index.js +7 -7
  144. package/dest/storage/note_store/index.d.ts +3 -0
  145. package/dest/storage/note_store/index.d.ts.map +1 -0
  146. package/dest/storage/note_store/index.js +2 -0
  147. package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +13 -12
  148. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  149. package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +20 -9
  150. package/dest/storage/private_event_store/private_event_store.d.ts +51 -0
  151. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  152. package/dest/storage/{private_event_data_provider/private_event_data_provider.js → private_event_store/private_event_store.js} +37 -27
  153. package/dest/storage/tagging_store/index.d.ts +4 -0
  154. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  155. package/dest/storage/tagging_store/index.js +3 -0
  156. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +21 -0
  157. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  158. package/dest/storage/tagging_store/recipient_tagging_store.js +42 -0
  159. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  160. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  161. package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
  162. package/dest/storage/tagging_store/sender_tagging_store.d.ts +67 -0
  163. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  164. package/dest/storage/tagging_store/sender_tagging_store.js +196 -0
  165. package/dest/tagging/index.d.ts +15 -6
  166. package/dest/tagging/index.d.ts.map +1 -1
  167. package/dest/tagging/index.js +23 -5
  168. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  169. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  170. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  171. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  172. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  173. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  174. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  175. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  176. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +29 -0
  177. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -0
  178. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  179. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  180. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  181. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  182. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +32 -0
  183. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -0
  184. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  185. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +55 -0
  186. package/dest/tree_membership/tree_membership_service.d.ts +52 -0
  187. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
  188. package/dest/tree_membership/tree_membership_service.js +84 -0
  189. package/package.json +17 -17
  190. package/src/bin/check_oracle_version.ts +130 -20
  191. package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +19 -22
  192. package/src/block_synchronizer/index.ts +1 -0
  193. package/src/config/index.ts +3 -3
  194. package/src/contract_function_simulator/contract_function_simulator.ts +86 -17
  195. package/src/contract_function_simulator/execution_note_cache.ts +7 -3
  196. package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
  197. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  198. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  199. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  200. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  201. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +5 -2
  202. package/src/contract_function_simulator/noir-structs/utility_context.ts +1 -1
  203. package/src/contract_function_simulator/oracle/interfaces.ts +15 -10
  204. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  205. package/src/contract_function_simulator/oracle/note_packing_utils.ts +17 -3
  206. package/src/contract_function_simulator/oracle/oracle.ts +33 -11
  207. package/src/contract_function_simulator/oracle/private_execution.ts +17 -15
  208. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +97 -22
  209. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +223 -47
  210. package/src/contract_function_simulator/pick_notes.ts +1 -1
  211. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  212. package/src/debug/pxe_debug_utils.ts +48 -0
  213. package/src/entrypoints/client/bundle/index.ts +0 -1
  214. package/src/entrypoints/client/bundle/utils.ts +2 -2
  215. package/src/entrypoints/client/lazy/index.ts +0 -1
  216. package/src/entrypoints/client/lazy/utils.ts +2 -2
  217. package/src/entrypoints/pxe_creation_options.ts +2 -0
  218. package/src/entrypoints/server/index.ts +1 -1
  219. package/src/entrypoints/server/utils.ts +1 -1
  220. package/src/error_enriching.ts +7 -15
  221. package/src/events/event_service.ts +77 -0
  222. package/src/events/index.ts +1 -0
  223. package/src/events/private_event_filter_validator.ts +48 -0
  224. package/src/logs/log_service.ts +202 -0
  225. package/src/notes/index.ts +1 -0
  226. package/src/notes/note_service.ts +200 -0
  227. package/src/oracle_version.ts +2 -2
  228. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +1 -1
  229. package/src/private_kernel/private_kernel_execution_prover.ts +4 -8
  230. package/src/private_kernel/private_kernel_oracle.ts +2 -1
  231. package/src/private_kernel/private_kernel_oracle_impl.ts +10 -9
  232. package/src/public_storage/public_storage_service.ts +33 -0
  233. package/src/pxe.ts +162 -181
  234. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
  235. package/src/storage/address_store/index.ts +1 -0
  236. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +2 -11
  237. package/src/storage/anchor_block_store/index.ts +1 -0
  238. package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +34 -2
  239. package/src/storage/capsule_store/index.ts +1 -0
  240. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +65 -3
  241. package/src/storage/contract_store/index.ts +1 -0
  242. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  243. package/src/storage/index.ts +7 -7
  244. package/src/storage/note_store/index.ts +2 -0
  245. package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +26 -13
  246. package/src/storage/{private_event_data_provider/private_event_data_provider.ts → private_event_store/private_event_store.ts} +60 -41
  247. package/src/storage/tagging_store/index.ts +3 -0
  248. package/src/storage/tagging_store/recipient_tagging_store.ts +53 -0
  249. package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
  250. package/src/storage/tagging_store/sender_tagging_store.ts +244 -0
  251. package/src/tagging/index.ts +27 -5
  252. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +129 -0
  253. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  254. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +43 -0
  255. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +96 -0
  256. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +44 -0
  257. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +72 -0
  258. package/src/tree_membership/tree_membership_service.ts +112 -0
  259. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -265
  260. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  261. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  262. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  263. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  264. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -694
  265. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts +0 -3
  266. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts.map +0 -1
  267. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.js +0 -48
  268. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  269. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  270. package/dest/storage/address_data_provider/index.d.ts +0 -2
  271. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  272. package/dest/storage/address_data_provider/index.js +0 -1
  273. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  274. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  275. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  276. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  277. package/dest/storage/capsule_data_provider/index.js +0 -1
  278. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  279. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  280. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  281. package/dest/storage/contract_data_provider/index.js +0 -1
  282. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  283. package/dest/storage/note_data_provider/index.d.ts +0 -3
  284. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  285. package/dest/storage/note_data_provider/index.js +0 -2
  286. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  287. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
  288. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  289. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  290. package/dest/storage/sync_data_provider/index.js +0 -1
  291. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  292. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  293. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  294. package/dest/storage/tagging_data_provider/index.js +0 -1
  295. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  296. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  297. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  298. package/dest/synchronizer/index.d.ts +0 -2
  299. package/dest/synchronizer/index.d.ts.map +0 -1
  300. package/dest/synchronizer/index.js +0 -1
  301. package/dest/synchronizer/synchronizer.d.ts +0 -35
  302. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  303. package/dest/tagging/constants.d.ts +0 -2
  304. package/dest/tagging/constants.d.ts.map +0 -1
  305. package/dest/tagging/constants.js +0 -2
  306. package/dest/tagging/siloed_tag.d.ts +0 -14
  307. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  308. package/dest/tagging/siloed_tag.js +0 -20
  309. package/dest/tagging/tag.d.ts +0 -12
  310. package/dest/tagging/tag.d.ts.map +0 -1
  311. package/dest/tagging/tag.js +0 -17
  312. package/dest/tagging/utils.d.ts +0 -18
  313. package/dest/tagging/utils.d.ts.map +0 -1
  314. package/dest/tagging/utils.js +0 -24
  315. package/src/contract_function_simulator/execution_data_provider.ts +0 -333
  316. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1008
  317. package/src/private_kernel/hints/compute_side_effect_uniqueness_hints.ts +0 -173
  318. package/src/storage/address_data_provider/index.ts +0 -1
  319. package/src/storage/capsule_data_provider/index.ts +0 -1
  320. package/src/storage/contract_data_provider/index.ts +0 -1
  321. package/src/storage/note_data_provider/index.ts +0 -2
  322. package/src/storage/sync_data_provider/index.ts +0 -1
  323. package/src/storage/tagging_data_provider/index.ts +0 -1
  324. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  325. package/src/synchronizer/index.ts +0 -1
  326. package/src/tagging/constants.ts +0 -2
  327. package/src/tagging/siloed_tag.ts +0 -22
  328. package/src/tagging/tag.ts +0 -16
  329. package/src/tagging/utils.ts +0 -31
@@ -1,15 +1,16 @@
1
1
  import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
2
- import { Fr, Point } from '@aztec/foundation/fields';
2
+ import type { BlockNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { Point } from '@aztec/foundation/curves/grumpkin';
3
5
  import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
4
6
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
7
  import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
6
8
  import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
7
- import type { ContractClassLog } from '@aztec/stdlib/logs';
9
+ import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
8
10
  import type { Note, NoteStatus } from '@aztec/stdlib/note';
9
11
  import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
10
12
  import type { BlockHeader } from '@aztec/stdlib/tx';
11
13
 
12
- import type { Tag } from '../../tagging/tag.js';
13
14
  import type { UtilityContext } from '../noir-structs/utility_context.js';
14
15
  import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
15
16
 
@@ -21,6 +22,8 @@ export interface NoteData {
21
22
  note: Note;
22
23
  /** The address of the contract that owns the note. */
23
24
  contractAddress: AztecAddress;
25
+ /** The owner of the note. */
26
+ owner: AztecAddress;
24
27
  /** The storage slot of the note. */
25
28
  storageSlot: Fr;
26
29
  /** The randomness injected to the note */
@@ -59,23 +62,24 @@ export interface IMiscOracle {
59
62
  export interface IUtilityExecutionOracle {
60
63
  isUtility: true;
61
64
 
62
- utilityGetUtilityContext(): Promise<UtilityContext>;
65
+ utilityGetUtilityContext(): UtilityContext;
63
66
  utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
64
67
  utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
65
- utilityGetMembershipWitness(blockNumber: number, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[] | undefined>;
68
+ utilityGetMembershipWitness(blockNumber: BlockNumber, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[] | undefined>;
66
69
  utilityGetNullifierMembershipWitness(
67
- blockNumber: number,
70
+ blockNumber: BlockNumber,
68
71
  nullifier: Fr,
69
72
  ): Promise<NullifierMembershipWitness | undefined>;
70
- utilityGetPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
73
+ utilityGetPublicDataWitness(blockNumber: BlockNumber, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
71
74
  utilityGetLowNullifierMembershipWitness(
72
- blockNumber: number,
75
+ blockNumber: BlockNumber,
73
76
  nullifier: Fr,
74
77
  ): Promise<NullifierMembershipWitness | undefined>;
75
- utilityGetBlockHeader(blockNumber: number): Promise<BlockHeader | undefined>;
78
+ utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
76
79
  utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
77
80
  utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
78
81
  utilityGetNotes(
82
+ owner: AztecAddress | undefined,
79
83
  storageSlot: Fr,
80
84
  numSelects: number,
81
85
  selectByIndexes: number[],
@@ -100,7 +104,7 @@ export interface IUtilityExecutionOracle {
100
104
  utilityStorageRead(
101
105
  contractAddress: AztecAddress,
102
106
  startStorageSlot: Fr,
103
- blockNumber: number,
107
+ blockNumber: BlockNumber,
104
108
  numberOfElements: number,
105
109
  ): Promise<Fr[]>;
106
110
  utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
@@ -132,6 +136,7 @@ export interface IPrivateExecutionOracle {
132
136
  privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
133
137
  privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
134
138
  privateNotifyCreatedNote(
139
+ owner: AztecAddress,
135
140
  storageSlot: Fr,
136
141
  randomness: Fr,
137
142
  noteTypeId: NoteSelector,
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { SiblingPath } from '@aztec/foundation/trees';
3
3
 
4
4
  export class MessageLoadOracleInputs<N extends number> {
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
3
  import type { Note } from '@aztec/stdlib/note';
4
4
 
@@ -24,7 +24,9 @@ function fromRawData(nonzeroNoteHashCounter: boolean, maybeNoteNonce: Fr): { sta
24
24
  * and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
25
25
  *
26
26
  * @param contractAddress - The address of the contract that owns the note
27
+ * @param owner - The owner of the note
27
28
  * @param randomness - The randomness injected into the note to get the hiding property of commitments
29
+ * @param storageSlot - The storage slot of the note
28
30
  * @param noteNonce - The nonce injected into the note hash preimage by kernels.
29
31
  * @param index - Optional index in the note hash tree. If undefined, indicates a transient note
30
32
  * @param note - The note content containing the actual note data
@@ -32,13 +34,17 @@ function fromRawData(nonzeroNoteHashCounter: boolean, maybeNoteNonce: Fr): { sta
32
34
  */
33
35
  export function packAsRetrievedNote({
34
36
  contractAddress,
37
+ owner,
35
38
  randomness,
39
+ storageSlot,
36
40
  noteNonce,
37
41
  index,
38
42
  note,
39
43
  }: {
40
44
  contractAddress: AztecAddress;
45
+ owner: AztecAddress;
41
46
  randomness: Fr;
47
+ storageSlot: Fr;
42
48
  noteNonce: Fr;
43
49
  index?: bigint;
44
50
  note: Note;
@@ -49,6 +55,14 @@ export function packAsRetrievedNote({
49
55
  // To pack the note as retrieved note we first need to reconstruct the note metadata.
50
56
  const noteMetadata = fromRawData(nonzeroNoteHashCounter, noteNonce);
51
57
 
52
- // Pack metadata first (stage and maybe_note_nonce), followed by the rest
53
- return [...note.items, contractAddress, randomness, new Fr(noteMetadata.stage), noteMetadata.maybeNoteNonce];
58
+ // Pack in order: note, contract_address, owner, randomness, storage_slot, metadata (stage, maybe_note_nonce)
59
+ return [
60
+ ...note.items,
61
+ contractAddress,
62
+ owner,
63
+ randomness,
64
+ storageSlot,
65
+ new Fr(noteMetadata.stage),
66
+ noteMetadata.maybeNoteNonce,
67
+ ];
54
68
  }
@@ -1,4 +1,6 @@
1
- import { Fr, Point } from '@aztec/foundation/fields';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
2
4
  import {
3
5
  type ACIRCallback,
4
6
  type ACVMField,
@@ -110,9 +112,9 @@ export class Oracle {
110
112
  return [values.map(toACVMField)];
111
113
  }
112
114
 
113
- async utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
114
- const context = await this.handlerAsUtility().utilityGetUtilityContext();
115
- return context.toNoirRepresentation();
115
+ utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
116
+ const context = this.handlerAsUtility().utilityGetUtilityContext();
117
+ return Promise.resolve(context.toNoirRepresentation());
116
118
  }
117
119
 
118
120
  async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
@@ -145,7 +147,7 @@ export class Oracle {
145
147
  const parsedLeafValue = Fr.fromString(leafValue);
146
148
 
147
149
  const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
148
- parsedBlockNumber,
150
+ BlockNumber(parsedBlockNumber),
149
151
  parsedTreeId,
150
152
  parsedLeafValue,
151
153
  );
@@ -165,7 +167,7 @@ export class Oracle {
165
167
  const parsedNullifier = Fr.fromString(nullifier);
166
168
 
167
169
  const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
168
- parsedBlockNumber,
170
+ BlockNumber(parsedBlockNumber),
169
171
  parsedNullifier,
170
172
  );
171
173
  if (!witness) {
@@ -182,7 +184,7 @@ export class Oracle {
182
184
  const parsedNullifier = Fr.fromString(nullifier);
183
185
 
184
186
  const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
185
- parsedBlockNumber,
187
+ BlockNumber(parsedBlockNumber),
186
188
  parsedNullifier,
187
189
  );
188
190
  if (!witness) {
@@ -200,7 +202,10 @@ export class Oracle {
200
202
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
201
203
  const parsedLeafSlot = Fr.fromString(leafSlot);
202
204
 
203
- const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockNumber, parsedLeafSlot);
205
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
206
+ BlockNumber(parsedBlockNumber),
207
+ parsedLeafSlot,
208
+ );
204
209
  if (!witness) {
205
210
  throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
206
211
  }
@@ -210,7 +215,7 @@ export class Oracle {
210
215
  async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
211
216
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
212
217
 
213
- const header = await this.handlerAsUtility().utilityGetBlockHeader(parsedBlockNumber);
218
+ const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
214
219
  if (!header) {
215
220
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
216
221
  }
@@ -235,6 +240,8 @@ export class Oracle {
235
240
  }
236
241
 
237
242
  async utilityGetNotes(
243
+ [ownerSome]: ACVMField[],
244
+ [ownerValue]: ACVMField[],
238
245
  [storageSlot]: ACVMField[],
239
246
  [numSelects]: ACVMField[],
240
247
  selectByIndexes: ACVMField[],
@@ -252,7 +259,10 @@ export class Oracle {
252
259
  [maxNotes]: ACVMField[],
253
260
  [packedRetrievedNoteLength]: ACVMField[],
254
261
  ): Promise<(ACVMField | ACVMField[])[]> {
262
+ // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
263
+ const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
255
264
  const noteDatas = await this.handlerAsUtility().utilityGetNotes(
265
+ owner,
256
266
  Fr.fromString(storageSlot),
257
267
  +numSelects,
258
268
  selectByIndexes.map(s => +s),
@@ -269,7 +279,17 @@ export class Oracle {
269
279
  +status,
270
280
  );
271
281
 
272
- const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(packAsRetrievedNote);
282
+ const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(noteData =>
283
+ packAsRetrievedNote({
284
+ contractAddress: noteData.contractAddress,
285
+ owner: noteData.owner,
286
+ randomness: noteData.randomness,
287
+ storageSlot: noteData.storageSlot,
288
+ noteNonce: noteData.noteNonce,
289
+ index: noteData.index,
290
+ note: noteData.note,
291
+ }),
292
+ );
273
293
 
274
294
  // Now we convert each sub-array to an array of ACVMField
275
295
  const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
@@ -281,6 +301,7 @@ export class Oracle {
281
301
  }
282
302
 
283
303
  privateNotifyCreatedNote(
304
+ [owner]: ACVMField[],
284
305
  [storageSlot]: ACVMField[],
285
306
  [randomness]: ACVMField[],
286
307
  [noteTypeId]: ACVMField[],
@@ -289,6 +310,7 @@ export class Oracle {
289
310
  [counter]: ACVMField[],
290
311
  ): Promise<ACVMField[]> {
291
312
  this.handlerAsPrivate().privateNotifyCreatedNote(
313
+ AztecAddress.fromString(owner),
292
314
  Fr.fromString(storageSlot),
293
315
  Fr.fromString(randomness),
294
316
  NoteSelector.fromField(Fr.fromString(noteTypeId)),
@@ -344,7 +366,7 @@ export class Oracle {
344
366
  const values = await this.handlerAsUtility().utilityStorageRead(
345
367
  new AztecAddress(Fr.fromString(contractAddress)),
346
368
  Fr.fromString(startStorageSlot),
347
- +blockNumber,
369
+ BlockNumber(+blockNumber),
348
370
  +numberOfElements,
349
371
  );
350
372
  return [values.map(toACVMField)];
@@ -1,5 +1,6 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { BlockNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import { Timer } from '@aztec/foundation/timer';
5
6
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
@@ -26,7 +27,7 @@ import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
26
27
  import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
27
28
  import type { UInt64 } from '@aztec/stdlib/types';
28
29
 
29
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
30
+ import { ContractStore } from '../../storage/contract_store/index.js';
30
31
  import { Oracle } from './oracle.js';
31
32
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
32
33
 
@@ -153,7 +154,7 @@ export function extractPrivateCircuitPublicInputs(
153
154
  * from the instance is used.
154
155
  * @param contractAddress - The address of the contract to read the class id for.
155
156
  * @param instance - The instance of the contract.
156
- * @param executionDataProvider - The execution data provider.
157
+ * @param executionStore - The execution data provider.
157
158
  * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
158
159
  * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
159
160
  * @returns The current class id.
@@ -161,13 +162,13 @@ export function extractPrivateCircuitPublicInputs(
161
162
  export async function readCurrentClassId(
162
163
  contractAddress: AztecAddress,
163
164
  instance: ContractInstance,
164
- executionDataProvider: ExecutionDataProvider | AztecNode,
165
- blockNumber: number,
165
+ aztecNode: AztecNode,
166
+ blockNumber: BlockNumber,
166
167
  timestamp: UInt64,
167
168
  ) {
168
169
  const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
169
170
  const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
170
- executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
171
+ aztecNode.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
171
172
  );
172
173
  let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
173
174
  if (currentClassId.isZero()) {
@@ -177,25 +178,26 @@ export async function readCurrentClassId(
177
178
  }
178
179
 
179
180
  /**
180
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
181
- * provider (i.e. PXE).
182
- * @param contractAddress - The address of the contract to verify class id for.
183
- * @param executionDataProvider - The execution data provider.
181
+ * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
182
+ * provider (i.e. PXE's own storage).
184
183
  * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
185
184
  * header of the execution data provider is used.
186
185
  */
187
186
  export async function verifyCurrentClassId(
188
187
  contractAddress: AztecAddress,
189
- executionDataProvider: ExecutionDataProvider,
190
- header?: BlockHeader,
188
+ aztecNode: AztecNode,
189
+ contractStore: ContractStore,
190
+ header: BlockHeader,
191
191
  ) {
192
- header = header ?? (await executionDataProvider.getAnchorBlockHeader());
192
+ const instance = await contractStore.getContractInstance(contractAddress);
193
+ if (!instance) {
194
+ throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
195
+ }
193
196
 
194
- const instance = await executionDataProvider.getContractInstance(contractAddress);
195
197
  const currentClassId = await readCurrentClassId(
196
198
  contractAddress,
197
199
  instance,
198
- executionDataProvider,
200
+ aztecNode,
199
201
  header.globalVariables.blockNumber,
200
202
  header.globalVariables.timestamp,
201
203
  );
@@ -1,11 +1,13 @@
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,
@@ -13,8 +15,10 @@ import {
13
15
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
14
16
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
17
  import { computeUniqueNoteHash, siloNoteHash, 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';
@@ -71,14 +84,26 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
71
84
  private readonly txContext: TxContext,
72
85
  private readonly callContext: CallContext,
73
86
  /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
74
- protected readonly anchorBlockHeader: BlockHeader,
87
+ protected override readonly anchorBlockHeader: BlockHeader,
88
+ /** Needed to trigger contract synchronization before nested calls */
89
+ private readonly utilityExecutor: (call: FunctionCall) => Promise<void>,
75
90
  /** List of transient auth witnesses to be used during this simulation */
76
91
  authWitnesses: AuthWitness[],
77
92
  capsules: Capsule[],
78
93
  private readonly executionCache: HashedValuesCache,
79
94
  private readonly noteCache: ExecutionNoteCache,
80
95
  private readonly taggingIndexCache: ExecutionTaggingIndexCache,
81
- executionDataProvider: ExecutionDataProvider,
96
+ contractStore: ContractStore,
97
+ noteStore: NoteStore,
98
+ keyStore: KeyStore,
99
+ addressStore: AddressStore,
100
+ aztecNode: AztecNode,
101
+ anchorBlockStore: AnchorBlockStore,
102
+ private readonly senderTaggingStore: SenderTaggingStore,
103
+ recipientTaggingStore: RecipientTaggingStore,
104
+ senderAddressBookStore: SenderAddressBookStore,
105
+ capsuleStore: CapsuleStore,
106
+ privateEventStore: PrivateEventStore,
82
107
  private totalPublicCalldataCount: number = 0,
83
108
  protected sideEffectCounter: number = 0,
84
109
  log = createLogger('simulator:client_execution_context'),
@@ -86,7 +111,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
86
111
  private senderForTags?: AztecAddress,
87
112
  private simulator?: CircuitSimulator,
88
113
  ) {
89
- super(callContext.contractAddress, authWitnesses, capsules, executionDataProvider, log, scopes);
114
+ super(
115
+ callContext.contractAddress,
116
+ authWitnesses,
117
+ capsules,
118
+ anchorBlockHeader,
119
+ contractStore,
120
+ noteStore,
121
+ keyStore,
122
+ addressStore,
123
+ aztecNode,
124
+ anchorBlockStore,
125
+ recipientTaggingStore,
126
+ senderAddressBookStore,
127
+ capsuleStore,
128
+ privateEventStore,
129
+ log,
130
+ scopes,
131
+ );
90
132
  }
91
133
 
92
134
  public getPrivateContextInputs(): PrivateContextInputs {
@@ -152,7 +194,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
152
194
  }
153
195
 
154
196
  /**
155
- * Returns the pre tags that were used in this execution (and that need to be stored in the db).
197
+ * Returns the pre-tags that were used in this execution (and that need to be stored in the db).
156
198
  */
157
199
  public getUsedPreTags(): PreTag[] {
158
200
  return this.taggingIndexCache.getUsedPreTags();
@@ -202,11 +244,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
202
244
  * @returns An app tag to be used in a log.
203
245
  */
204
246
  public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
205
- const secret = await this.executionDataProvider.calculateDirectionalAppTaggingSecret(
206
- this.contractAddress,
207
- sender,
208
- recipient,
209
- );
247
+ const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
210
248
 
211
249
  const index = await this.#getIndexToUseForSecret(secret);
212
250
  this.log.debug(
@@ -217,6 +255,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
217
255
  return Tag.compute({ secret, index });
218
256
  }
219
257
 
258
+ async #calculateDirectionalAppTaggingSecret(
259
+ contractAddress: AztecAddress,
260
+ sender: AztecAddress,
261
+ recipient: AztecAddress,
262
+ ) {
263
+ const senderCompleteAddress = await this.getCompleteAddress(sender);
264
+ const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
265
+ return DirectionalAppTaggingSecret.compute(
266
+ senderCompleteAddress,
267
+ senderIvsk,
268
+ recipient,
269
+ contractAddress,
270
+ recipient,
271
+ );
272
+ }
273
+
220
274
  async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
221
275
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
222
276
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
@@ -227,8 +281,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
227
281
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
228
282
  // are up to date. We do this here because this store is not synced as part of the global sync because
229
283
  // 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);
284
+ await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingStore);
285
+
286
+ const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret);
232
287
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
233
288
  // Otherwise, the next index to use is one past the last used index
234
289
  return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
@@ -282,6 +337,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
282
337
  * Real notes coming from DB will have a leafIndex which
283
338
  * represents their index in the note hash tree.
284
339
  *
340
+ * @param owner - The owner of the notes. If undefined, returns notes for all owners.
285
341
  * @param storageSlot - The storage slot.
286
342
  * @param numSelects - The number of valid selects in selectBy and selectValues.
287
343
  * @param selectBy - An array of indices of the fields to selects.
@@ -295,6 +351,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
295
351
  * @returns Array of note data.
296
352
  */
297
353
  public override async utilityGetNotes(
354
+ owner: AztecAddress | undefined,
298
355
  storageSlot: Fr,
299
356
  numSelects: number,
300
357
  selectByIndexes: number[],
@@ -311,11 +368,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
311
368
  status: NoteStatus,
312
369
  ): Promise<NoteData[]> {
313
370
  // Nullified pending notes are already removed from the list.
314
- const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
371
+ const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
315
372
 
316
373
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
317
- const dbNotes = await this.executionDataProvider.getNotes(
374
+
375
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
376
+ const dbNotes = await noteService.getNotes(
318
377
  this.callContext.contractAddress,
378
+ owner,
319
379
  storageSlot,
320
380
  status,
321
381
  this.scopes,
@@ -365,7 +425,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
365
425
  /**
366
426
  * Keep track of the new note created during execution.
367
427
  * It can be used in subsequent calls (or transactions when chaining txs is possible).
368
- * @param contractAddress - The contract address.
428
+ * @param owner - The owner of the note.
369
429
  * @param storageSlot - The storage slot.
370
430
  * @param randomness - The randomness injected into the note.
371
431
  * @param noteTypeId - The type ID of the note.
@@ -374,6 +434,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
374
434
  * @returns
375
435
  */
376
436
  public privateNotifyCreatedNote(
437
+ owner: AztecAddress,
377
438
  storageSlot: Fr,
378
439
  randomness: Fr,
379
440
  noteTypeId: NoteSelector,
@@ -393,6 +454,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
393
454
  this.noteCache.addNewNote(
394
455
  {
395
456
  contractAddress: this.callContext.contractAddress,
457
+ owner,
396
458
  storageSlot,
397
459
  randomness,
398
460
  noteNonce: Fr.ZERO, // Nonce cannot be known during private execution.
@@ -489,9 +551,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
489
551
 
490
552
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
491
553
 
492
- await verifyCurrentClassId(targetContractAddress, this.executionDataProvider, this.anchorBlockHeader);
554
+ await verifyCurrentClassId(targetContractAddress, this.aztecNode, this.contractStore, this.anchorBlockHeader);
555
+
556
+ await this.contractStore.syncPrivateState(targetContractAddress, functionSelector, this.utilityExecutor);
493
557
 
494
- const targetArtifact = await this.executionDataProvider.getFunctionArtifact(
558
+ const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
495
559
  targetContractAddress,
496
560
  functionSelector,
497
561
  );
@@ -505,12 +569,23 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
505
569
  derivedTxContext,
506
570
  derivedCallContext,
507
571
  this.anchorBlockHeader,
572
+ this.utilityExecutor,
508
573
  this.authWitnesses,
509
574
  this.capsules,
510
575
  this.executionCache,
511
576
  this.noteCache,
512
577
  this.taggingIndexCache,
513
- this.executionDataProvider,
578
+ this.contractStore,
579
+ this.noteStore,
580
+ this.keyStore,
581
+ this.addressStore,
582
+ this.aztecNode,
583
+ this.anchorBlockStore,
584
+ this.senderTaggingStore,
585
+ this.recipientTaggingStore,
586
+ this.senderAddressBookStore,
587
+ this.capsuleStore,
588
+ this.privateEventStore,
514
589
  this.totalPublicCalldataCount,
515
590
  sideEffectCounter,
516
591
  this.log,
@@ -623,7 +698,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
623
698
  }
624
699
 
625
700
  public getDebugFunctionName() {
626
- return this.executionDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
701
+ return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
627
702
  }
628
703
 
629
704
  public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {