@aztec/pxe 0.0.1-commit.5daedc8 → 0.0.1-commit.6b90f3f5

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 (387) hide show
  1. package/dest/bin/check_oracle_version.js +105 -15
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +43 -0
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  4. package/dest/block_synchronizer/block_synchronizer.js +147 -0
  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 +6 -4
  9. package/dest/config/index.d.ts.map +1 -1
  10. package/dest/config/index.js +17 -0
  11. package/dest/config/package_info.js +1 -1
  12. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  13. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  14. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  15. package/dest/contract_function_simulator/contract_function_simulator.d.ts +40 -14
  16. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/contract_function_simulator.js +72 -33
  18. package/dest/contract_function_simulator/execution_note_cache.d.ts +21 -11
  19. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/execution_note_cache.js +49 -31
  21. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +1 -1
  22. package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
  23. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  24. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/index.d.ts +2 -2
  26. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/index.js +1 -1
  28. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -4
  29. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  30. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +6 -3
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  32. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  37. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -5
  38. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +7 -4
  40. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  41. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  43. package/dest/contract_function_simulator/oracle/interfaces.d.ts +25 -18
  44. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +4 -2
  46. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  48. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +11 -7
  49. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  50. package/dest/contract_function_simulator/oracle/note_packing_utils.js +14 -10
  51. package/dest/contract_function_simulator/oracle/oracle.d.ts +11 -9
  52. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  53. package/dest/contract_function_simulator/oracle/oracle.js +62 -39
  54. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  55. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  56. package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
  57. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +34 -26
  58. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  59. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +46 -48
  60. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +75 -25
  61. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +169 -64
  63. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  64. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  65. package/dest/contract_function_simulator/pick_notes.js +1 -1
  66. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  67. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  68. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  69. package/dest/contract_sync/index.d.ts +23 -0
  70. package/dest/contract_sync/index.d.ts.map +1 -0
  71. package/dest/contract_sync/index.js +54 -0
  72. package/dest/debug/pxe_debug_utils.d.ts +41 -0
  73. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  74. package/dest/debug/pxe_debug_utils.js +47 -0
  75. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  76. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  77. package/dest/entrypoints/client/bundle/index.js +0 -1
  78. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  79. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  80. package/dest/entrypoints/client/bundle/utils.js +23 -8
  81. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  82. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  83. package/dest/entrypoints/client/lazy/index.js +0 -1
  84. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  85. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  86. package/dest/entrypoints/client/lazy/utils.js +24 -9
  87. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  88. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  89. package/dest/entrypoints/server/index.d.ts +4 -2
  90. package/dest/entrypoints/server/index.d.ts.map +1 -1
  91. package/dest/entrypoints/server/index.js +3 -1
  92. package/dest/entrypoints/server/utils.d.ts +1 -1
  93. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  94. package/dest/entrypoints/server/utils.js +30 -15
  95. package/dest/error_enriching.d.ts +4 -4
  96. package/dest/error_enriching.d.ts.map +1 -1
  97. package/dest/error_enriching.js +6 -6
  98. package/dest/events/event_service.d.ts +15 -0
  99. package/dest/events/event_service.d.ts.map +1 -0
  100. package/dest/events/event_service.js +44 -0
  101. package/dest/events/index.d.ts +2 -0
  102. package/dest/events/index.d.ts.map +1 -0
  103. package/dest/events/index.js +1 -0
  104. package/dest/events/private_event_filter_validator.d.ts +9 -0
  105. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  106. package/dest/events/private_event_filter_validator.js +38 -0
  107. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  108. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  109. package/dest/job_coordinator/job_coordinator.js +94 -0
  110. package/dest/logs/log_service.d.ts +28 -0
  111. package/dest/logs/log_service.d.ts.map +1 -0
  112. package/dest/logs/log_service.js +125 -0
  113. package/dest/notes/index.d.ts +2 -0
  114. package/dest/notes/index.d.ts.map +1 -0
  115. package/dest/notes/index.js +1 -0
  116. package/dest/notes/note_service.d.ts +48 -0
  117. package/dest/notes/note_service.d.ts.map +1 -0
  118. package/dest/notes/note_service.js +147 -0
  119. package/dest/oracle_version.d.ts +3 -3
  120. package/dest/oracle_version.d.ts.map +1 -1
  121. package/dest/oracle_version.js +4 -3
  122. package/dest/private_kernel/hints/index.d.ts +2 -2
  123. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  124. package/dest/private_kernel/hints/index.js +1 -1
  125. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
  126. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  127. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
  128. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  129. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  130. package/dest/private_kernel/private_kernel_execution_prover.js +11 -15
  131. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -29
  132. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  133. package/dest/private_kernel/private_kernel_oracle.js +90 -2
  134. package/dest/pxe.d.ts +45 -81
  135. package/dest/pxe.d.ts.map +1 -1
  136. package/dest/pxe.js +188 -217
  137. package/dest/storage/address_store/address_store.d.ts +11 -0
  138. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  139. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  140. package/dest/storage/address_store/index.d.ts +2 -0
  141. package/dest/storage/address_store/index.d.ts.map +1 -0
  142. package/dest/storage/address_store/index.js +1 -0
  143. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  144. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  145. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
  146. package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
  147. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  148. package/dest/storage/anchor_block_store/index.js +1 -0
  149. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  150. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  151. package/dest/storage/capsule_store/capsule_store.js +253 -0
  152. package/dest/storage/capsule_store/index.d.ts +2 -0
  153. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  154. package/dest/storage/capsule_store/index.js +1 -0
  155. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +7 -5
  156. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  157. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +56 -16
  158. package/dest/storage/contract_store/index.d.ts +2 -0
  159. package/dest/storage/contract_store/index.d.ts.map +1 -0
  160. package/dest/storage/contract_store/index.js +1 -0
  161. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  162. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  163. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  164. package/dest/storage/index.d.ts +8 -8
  165. package/dest/storage/index.d.ts.map +1 -1
  166. package/dest/storage/index.js +7 -7
  167. package/dest/storage/metadata.d.ts +1 -1
  168. package/dest/storage/metadata.js +1 -1
  169. package/dest/storage/note_store/index.d.ts +3 -0
  170. package/dest/storage/note_store/index.d.ts.map +1 -0
  171. package/dest/storage/note_store/index.js +2 -0
  172. package/dest/storage/note_store/note_store.d.ts +83 -0
  173. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  174. package/dest/storage/note_store/note_store.js +341 -0
  175. package/dest/storage/note_store/stored_note.d.ts +16 -0
  176. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  177. package/dest/storage/note_store/stored_note.js +43 -0
  178. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  179. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  180. package/dest/storage/private_event_store/private_event_store.js +273 -0
  181. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  182. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  183. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  184. package/dest/storage/tagging_store/index.d.ts +4 -0
  185. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  186. package/dest/storage/tagging_store/index.js +3 -0
  187. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  188. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  189. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  190. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  191. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  192. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  193. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  194. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  195. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  196. package/dest/tagging/constants.d.ts +2 -2
  197. package/dest/tagging/constants.d.ts.map +1 -1
  198. package/dest/tagging/constants.js +10 -2
  199. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  200. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  201. package/dest/tagging/get_all_logs_by_tags.js +46 -0
  202. package/dest/tagging/index.d.ts +16 -6
  203. package/dest/tagging/index.d.ts.map +1 -1
  204. package/dest/tagging/index.js +15 -5
  205. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +15 -0
  206. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  207. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  208. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  209. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  210. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  211. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +15 -0
  212. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  213. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
  214. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +21 -0
  215. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  216. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  217. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  218. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  219. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
  220. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +21 -0
  221. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  222. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +60 -0
  223. package/package.json +19 -19
  224. package/src/bin/check_oracle_version.ts +131 -20
  225. package/src/block_synchronizer/block_synchronizer.ts +172 -0
  226. package/src/block_synchronizer/index.ts +1 -0
  227. package/src/config/index.ts +17 -3
  228. package/src/config/package_info.ts +1 -1
  229. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  230. package/src/contract_function_simulator/contract_function_simulator.ts +114 -34
  231. package/src/contract_function_simulator/execution_note_cache.ts +51 -28
  232. package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
  233. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  234. package/src/contract_function_simulator/index.ts +1 -1
  235. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +6 -2
  236. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  237. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  238. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -3
  239. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  240. package/src/contract_function_simulator/oracle/interfaces.ts +30 -15
  241. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  242. package/src/contract_function_simulator/oracle/note_packing_utils.ts +27 -13
  243. package/src/contract_function_simulator/oracle/oracle.ts +78 -41
  244. package/src/contract_function_simulator/oracle/private_execution.ts +2 -68
  245. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +125 -59
  246. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +261 -71
  247. package/src/contract_function_simulator/pick_notes.ts +1 -1
  248. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  249. package/src/contract_sync/index.ts +98 -0
  250. package/src/debug/pxe_debug_utils.ts +63 -0
  251. package/src/entrypoints/client/bundle/index.ts +0 -1
  252. package/src/entrypoints/client/bundle/utils.ts +15 -16
  253. package/src/entrypoints/client/lazy/index.ts +0 -1
  254. package/src/entrypoints/client/lazy/utils.ts +16 -17
  255. package/src/entrypoints/pxe_creation_options.ts +6 -2
  256. package/src/entrypoints/server/index.ts +3 -1
  257. package/src/entrypoints/server/utils.ts +26 -34
  258. package/src/error_enriching.ts +7 -15
  259. package/src/events/event_service.ts +71 -0
  260. package/src/events/index.ts +1 -0
  261. package/src/events/private_event_filter_validator.ts +46 -0
  262. package/src/job_coordinator/job_coordinator.ts +150 -0
  263. package/src/logs/log_service.ts +220 -0
  264. package/src/notes/index.ts +1 -0
  265. package/src/notes/note_service.ts +195 -0
  266. package/src/oracle_version.ts +4 -3
  267. package/src/private_kernel/hints/index.ts +1 -1
  268. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +34 -23
  269. package/src/private_kernel/private_kernel_execution_prover.ts +13 -16
  270. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  271. package/src/pxe.ts +267 -282
  272. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  273. package/src/storage/address_store/index.ts +1 -0
  274. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
  275. package/src/storage/anchor_block_store/index.ts +1 -0
  276. package/src/storage/capsule_store/capsule_store.ts +315 -0
  277. package/src/storage/capsule_store/index.ts +1 -0
  278. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +67 -14
  279. package/src/storage/contract_store/index.ts +1 -0
  280. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  281. package/src/storage/index.ts +7 -7
  282. package/src/storage/metadata.ts +1 -1
  283. package/src/storage/note_store/index.ts +2 -0
  284. package/src/storage/note_store/note_store.ts +411 -0
  285. package/src/storage/note_store/stored_note.ts +48 -0
  286. package/src/storage/private_event_store/private_event_store.ts +384 -0
  287. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  288. package/src/storage/tagging_store/index.ts +3 -0
  289. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  290. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  291. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  292. package/src/tagging/constants.ts +10 -2
  293. package/src/tagging/get_all_logs_by_tags.ts +68 -0
  294. package/src/tagging/index.ts +18 -5
  295. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +143 -0
  296. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  297. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +49 -0
  298. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +99 -0
  299. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
  300. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
  301. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -265
  302. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  303. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  304. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  305. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  306. package/dest/contract_function_simulator/proxied_node.js +0 -27
  307. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  308. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  309. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -694
  310. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  311. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  312. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts +0 -3
  313. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts.map +0 -1
  314. package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.js +0 -48
  315. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  316. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  317. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  318. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  319. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  320. package/dest/storage/address_data_provider/index.d.ts +0 -2
  321. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  322. package/dest/storage/address_data_provider/index.js +0 -1
  323. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  324. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  325. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  326. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  327. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  328. package/dest/storage/capsule_data_provider/index.js +0 -1
  329. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  330. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  331. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  332. package/dest/storage/contract_data_provider/index.js +0 -1
  333. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  334. package/dest/storage/note_data_provider/index.d.ts +0 -3
  335. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  336. package/dest/storage/note_data_provider/index.js +0 -2
  337. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  338. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  339. package/dest/storage/note_data_provider/note_data_provider.js +0 -311
  340. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
  341. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  342. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -105
  343. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  344. package/dest/storage/sync_data_provider/index.js +0 -1
  345. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  346. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  347. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  348. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  349. package/dest/storage/tagging_data_provider/index.js +0 -1
  350. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  351. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  352. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  353. package/dest/synchronizer/index.d.ts +0 -2
  354. package/dest/synchronizer/index.d.ts.map +0 -1
  355. package/dest/synchronizer/index.js +0 -1
  356. package/dest/synchronizer/synchronizer.d.ts +0 -35
  357. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  358. package/dest/synchronizer/synchronizer.js +0 -101
  359. package/dest/tagging/siloed_tag.d.ts +0 -14
  360. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  361. package/dest/tagging/siloed_tag.js +0 -20
  362. package/dest/tagging/tag.d.ts +0 -12
  363. package/dest/tagging/tag.d.ts.map +0 -1
  364. package/dest/tagging/tag.js +0 -17
  365. package/dest/tagging/utils.d.ts +0 -18
  366. package/dest/tagging/utils.d.ts.map +0 -1
  367. package/dest/tagging/utils.js +0 -24
  368. package/src/contract_function_simulator/execution_data_provider.ts +0 -333
  369. package/src/contract_function_simulator/proxied_node.ts +0 -33
  370. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1008
  371. package/src/private_kernel/hints/compute_side_effect_uniqueness_hints.ts +0 -173
  372. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  373. package/src/storage/address_data_provider/index.ts +0 -1
  374. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  375. package/src/storage/capsule_data_provider/index.ts +0 -1
  376. package/src/storage/contract_data_provider/index.ts +0 -1
  377. package/src/storage/note_data_provider/index.ts +0 -2
  378. package/src/storage/note_data_provider/note_data_provider.ts +0 -399
  379. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -143
  380. package/src/storage/sync_data_provider/index.ts +0 -1
  381. package/src/storage/tagging_data_provider/index.ts +0 -1
  382. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  383. package/src/synchronizer/index.ts +0 -1
  384. package/src/synchronizer/synchronizer.ts +0 -120
  385. package/src/tagging/siloed_tag.ts +0 -22
  386. package/src/tagging/tag.ts +0 -16
  387. package/src/tagging/utils.ts +0 -31
@@ -1,42 +1,23 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import type { FieldsOf } from '@aztec/foundation/types';
1
+ import { toACVMField } from '@aztec/simulator/client';
3
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import type { UInt64 } from '@aztec/stdlib/types';
3
+ import type { BlockHeader } from '@aztec/stdlib/tx';
5
4
 
6
5
  /**
7
6
  * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
8
7
  */
9
8
  export class UtilityContext {
10
- private constructor(
11
- public readonly blockNumber: number,
12
- public readonly timestamp: UInt64,
9
+ constructor(
10
+ public readonly blockHeader: BlockHeader,
13
11
  public readonly contractAddress: AztecAddress,
14
- public readonly version: Fr,
15
- public readonly chainId: Fr,
16
12
  ) {}
17
13
 
18
- static from(fields: FieldsOf<UtilityContext>) {
19
- return new UtilityContext(
20
- fields.blockNumber,
21
- fields.timestamp,
22
- fields.contractAddress,
23
- fields.version,
24
- fields.chainId,
25
- );
26
- }
27
-
28
14
  /**
29
15
  * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
30
16
  * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
31
17
  */
32
18
  public toNoirRepresentation(): (string | string[])[] {
33
19
  // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
34
- return [
35
- new Fr(this.blockNumber).toString() as string,
36
- new Fr(this.timestamp).toString() as string,
37
- this.contractAddress.toString() as string,
38
- this.version.toString() as string,
39
- this.chainId.toString() as string,
40
- ];
20
+ const blockHeaderFields = this.blockHeader.toFields().map(toACVMField);
21
+ return [...blockHeaderFields, this.contractAddress.toString() as string];
41
22
  }
42
23
  }
@@ -1,15 +1,18 @@
1
- import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
2
- import { Fr, Point } from '@aztec/foundation/fields';
1
+ import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
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';
5
+ import { MembershipWitness } from '@aztec/foundation/trees';
3
6
  import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
4
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
8
+ import { BlockHash } from '@aztec/stdlib/block';
5
9
  import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
6
10
  import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
7
- import type { ContractClassLog } from '@aztec/stdlib/logs';
11
+ import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
8
12
  import type { Note, NoteStatus } from '@aztec/stdlib/note';
9
- import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
13
+ import { type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
10
14
  import type { BlockHeader } from '@aztec/stdlib/tx';
11
15
 
12
- import type { Tag } from '../../tagging/tag.js';
13
16
  import type { UtilityContext } from '../noir-structs/utility_context.js';
14
17
  import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
15
18
 
@@ -21,6 +24,8 @@ export interface NoteData {
21
24
  note: Note;
22
25
  /** The address of the contract that owns the note. */
23
26
  contractAddress: AztecAddress;
27
+ /** The owner of the note. */
28
+ owner: AztecAddress;
24
29
  /** The storage slot of the note. */
25
30
  storageSlot: Fr;
26
31
  /** The randomness injected to the note */
@@ -29,10 +34,10 @@ export interface NoteData {
29
34
  noteNonce: Fr;
30
35
  /** A hash of the note as it gets stored in the note hash tree. */
31
36
  noteHash: Fr;
37
+ /** True if the note is pending, false if settled. */
38
+ isPending: boolean;
32
39
  /** The corresponding nullifier of the note. Undefined for pending notes. */
33
40
  siloedNullifier?: Fr;
34
- /** The note's leaf index in the note hash tree. Undefined for pending notes. */
35
- index?: bigint;
36
41
  }
37
42
 
38
43
  // These interfaces contain the list of oracles required by aztec-nr in order to simulate and execute transactions, i.e.
@@ -59,23 +64,31 @@ export interface IMiscOracle {
59
64
  export interface IUtilityExecutionOracle {
60
65
  isUtility: true;
61
66
 
62
- utilityGetUtilityContext(): Promise<UtilityContext>;
67
+ utilityGetUtilityContext(): UtilityContext;
63
68
  utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
64
69
  utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
65
- utilityGetMembershipWitness(blockNumber: number, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[] | undefined>;
70
+ utilityGetNoteHashMembershipWitness(
71
+ blockHash: BlockHash,
72
+ leafValue: Fr,
73
+ ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
74
+ utilityGetArchiveMembershipWitness(
75
+ blockHash: BlockHash,
76
+ leafValue: Fr,
77
+ ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
66
78
  utilityGetNullifierMembershipWitness(
67
- blockNumber: number,
79
+ blockHash: BlockHash,
68
80
  nullifier: Fr,
69
81
  ): Promise<NullifierMembershipWitness | undefined>;
70
- utilityGetPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
82
+ utilityGetPublicDataWitness(blockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
71
83
  utilityGetLowNullifierMembershipWitness(
72
- blockNumber: number,
84
+ blockHash: BlockHash,
73
85
  nullifier: Fr,
74
86
  ): Promise<NullifierMembershipWitness | undefined>;
75
- utilityGetBlockHeader(blockNumber: number): Promise<BlockHeader | undefined>;
87
+ utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
76
88
  utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
77
89
  utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
78
90
  utilityGetNotes(
91
+ owner: AztecAddress | undefined,
79
92
  storageSlot: Fr,
80
93
  numSelects: number,
81
94
  selectByIndexes: number[],
@@ -98,13 +111,13 @@ export interface IUtilityExecutionOracle {
98
111
  secret: Fr,
99
112
  ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
100
113
  utilityStorageRead(
114
+ blockHash: BlockHash,
101
115
  contractAddress: AztecAddress,
102
116
  startStorageSlot: Fr,
103
- blockNumber: number,
104
117
  numberOfElements: number,
105
118
  ): Promise<Fr[]>;
106
119
  utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
107
- utilityValidateEnqueuedNotesAndEvents(
120
+ utilityValidateAndStoreEnqueuedNotesAndEvents(
108
121
  contractAddress: AztecAddress,
109
122
  noteValidationRequestsArrayBaseSlot: Fr,
110
123
  eventValidationRequestsArrayBaseSlot: Fr,
@@ -132,6 +145,7 @@ export interface IPrivateExecutionOracle {
132
145
  privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
133
146
  privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
134
147
  privateNotifyCreatedNote(
148
+ owner: AztecAddress,
135
149
  storageSlot: Fr,
136
150
  randomness: Fr,
137
151
  noteTypeId: NoteSelector,
@@ -141,6 +155,7 @@ export interface IPrivateExecutionOracle {
141
155
  ): void;
142
156
  privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
143
157
  privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
158
+ privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
144
159
  privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
145
160
  privateCallPrivateFunction(
146
161
  targetContractAddress: AztecAddress,
@@ -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
 
@@ -18,37 +18,51 @@ function fromRawData(nonzeroNoteHashCounter: boolean, maybeNoteNonce: Fr): { sta
18
18
  }
19
19
 
20
20
  /**
21
- * Packs a note in a format that is compatible with the default Packable implementation of the retrieved note.
21
+ * Packs a note in a format that is compatible with the default Packable implementation of the hinted note.
22
22
  *
23
23
  * @dev Unlike the default Packable implementation, this function first constructs the note metadata from the inputs
24
- * and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
24
+ * and only after that it packs the hinted note. Hence it doesn't map one to one with `HintedNote::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
- * @param index - Optional index in the note hash tree. If undefined, indicates a transient note
31
+ * @param isPending - True if the note is pending, false if settled
30
32
  * @param note - The note content containing the actual note data
31
33
  * @returns The packed note as an array of field elements
32
34
  */
33
- export function packAsRetrievedNote({
35
+ export function packAsHintedNote({
34
36
  contractAddress,
37
+ owner,
35
38
  randomness,
39
+ storageSlot,
36
40
  noteNonce,
37
- index,
41
+ isPending,
38
42
  note,
39
43
  }: {
40
44
  contractAddress: AztecAddress;
45
+ owner: AztecAddress;
41
46
  randomness: Fr;
47
+ storageSlot: Fr;
42
48
  noteNonce: Fr;
43
- index?: bigint;
49
+ isPending: boolean;
44
50
  note: Note;
45
51
  }) {
46
- // If index is undefined, the note is transient which implies that the nonzero_note_hash_counter has to be true
47
- const nonzeroNoteHashCounter = index === undefined;
52
+ // If the note is pending it means it has a non-zero note hash counter associated with it.
53
+ const nonZeroNoteHashCounter = isPending;
48
54
 
49
- // To pack the note as retrieved note we first need to reconstruct the note metadata.
50
- const noteMetadata = fromRawData(nonzeroNoteHashCounter, noteNonce);
55
+ // To pack the note as hinted note we first need to reconstruct the note metadata.
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,
@@ -10,11 +12,11 @@ import {
10
12
  } from '@aztec/simulator/client';
11
13
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
12
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
+ import { BlockHash } from '@aztec/stdlib/block';
13
16
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
14
- import { MerkleTreeId } from '@aztec/stdlib/trees';
15
17
 
16
18
  import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
17
- import { packAsRetrievedNote } from './note_packing_utils.js';
19
+ import { packAsHintedNote } from './note_packing_utils.js';
18
20
 
19
21
  export class UnavailableOracleError extends Error {
20
22
  constructor(oracleName: string) {
@@ -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[]> {
@@ -135,74 +137,84 @@ export class Oracle {
135
137
  ].map(toACVMField);
136
138
  }
137
139
 
138
- async utilityGetMembershipWitness(
139
- [blockNumber]: ACVMField[],
140
- [treeId]: ACVMField[],
140
+ async utilityGetNoteHashMembershipWitness(
141
+ [blockHash]: ACVMField[],
141
142
  [leafValue]: ACVMField[],
142
143
  ): Promise<(ACVMField | ACVMField[])[]> {
143
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
144
- const parsedTreeId = Fr.fromString(treeId).toNumber();
144
+ const parsedBlockHash = BlockHash.fromString(blockHash);
145
145
  const parsedLeafValue = Fr.fromString(leafValue);
146
146
 
147
- const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
148
- parsedBlockNumber,
149
- parsedTreeId,
150
- parsedLeafValue,
151
- );
147
+ const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(parsedBlockHash, parsedLeafValue);
152
148
  if (!witness) {
153
- throw new Error(
154
- `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`,
155
- );
149
+ throw new Error(`Leaf ${leafValue} not found in the note hash tree at block hash ${parsedBlockHash.toString()}.`);
150
+ }
151
+ return witness.toNoirRepresentation();
152
+ }
153
+
154
+ async utilityGetArchiveMembershipWitness(
155
+ [blockHash]: ACVMField[],
156
+ [leafValue]: ACVMField[],
157
+ ): Promise<(ACVMField | ACVMField[])[]> {
158
+ const parsedBlockHash = BlockHash.fromString(blockHash);
159
+ const parsedLeafValue = Fr.fromString(leafValue);
160
+
161
+ const witness = await this.handlerAsUtility().utilityGetArchiveMembershipWitness(parsedBlockHash, parsedLeafValue);
162
+ if (!witness) {
163
+ throw new Error(`Leaf ${leafValue} not found in the archive tree at block hash ${parsedBlockHash.toString()}.`);
156
164
  }
157
- return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
165
+ return witness.toNoirRepresentation();
158
166
  }
159
167
 
160
168
  async utilityGetNullifierMembershipWitness(
161
- [blockNumber]: ACVMField[],
169
+ [blockHash]: ACVMField[],
162
170
  [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
163
171
  ): Promise<(ACVMField | ACVMField[])[]> {
164
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
172
+ const parsedBlockHash = BlockHash.fromString(blockHash);
165
173
  const parsedNullifier = Fr.fromString(nullifier);
166
174
 
167
175
  const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
168
- parsedBlockNumber,
176
+ parsedBlockHash,
169
177
  parsedNullifier,
170
178
  );
171
179
  if (!witness) {
172
- throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
180
+ throw new Error(
181
+ `Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
182
+ );
173
183
  }
174
184
  return witness.toNoirRepresentation();
175
185
  }
176
186
 
177
187
  async utilityGetLowNullifierMembershipWitness(
178
- [blockNumber]: ACVMField[],
188
+ [blockHash]: ACVMField[],
179
189
  [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
180
190
  ): Promise<(ACVMField | ACVMField[])[]> {
181
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
191
+ const parsedBlockHash = BlockHash.fromString(blockHash);
182
192
  const parsedNullifier = Fr.fromString(nullifier);
183
193
 
184
194
  const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
185
- parsedBlockNumber,
195
+ parsedBlockHash,
186
196
  parsedNullifier,
187
197
  );
188
198
  if (!witness) {
189
199
  throw new Error(
190
- `Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`,
200
+ `Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
191
201
  );
192
202
  }
193
203
  return witness.toNoirRepresentation();
194
204
  }
195
205
 
196
206
  async utilityGetPublicDataWitness(
197
- [blockNumber]: ACVMField[],
207
+ [blockHash]: ACVMField[],
198
208
  [leafSlot]: ACVMField[],
199
209
  ): Promise<(ACVMField | ACVMField[])[]> {
200
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
210
+ const parsedBlockHash = BlockHash.fromString(blockHash);
201
211
  const parsedLeafSlot = Fr.fromString(leafSlot);
202
212
 
203
- const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockNumber, parsedLeafSlot);
213
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
204
214
  if (!witness) {
205
- throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
215
+ throw new Error(
216
+ `Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
217
+ );
206
218
  }
207
219
  return witness.toNoirRepresentation();
208
220
  }
@@ -210,7 +222,7 @@ export class Oracle {
210
222
  async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
211
223
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
212
224
 
213
- const header = await this.handlerAsUtility().utilityGetBlockHeader(parsedBlockNumber);
225
+ const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
214
226
  if (!header) {
215
227
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
216
228
  }
@@ -235,6 +247,8 @@ export class Oracle {
235
247
  }
236
248
 
237
249
  async utilityGetNotes(
250
+ [ownerSome]: ACVMField[],
251
+ [ownerValue]: ACVMField[],
238
252
  [storageSlot]: ACVMField[],
239
253
  [numSelects]: ACVMField[],
240
254
  selectByIndexes: ACVMField[],
@@ -250,9 +264,12 @@ export class Oracle {
250
264
  [offset]: ACVMField[],
251
265
  [status]: ACVMField[],
252
266
  [maxNotes]: ACVMField[],
253
- [packedRetrievedNoteLength]: ACVMField[],
267
+ [packedHintedNoteLength]: ACVMField[],
254
268
  ): Promise<(ACVMField | ACVMField[])[]> {
269
+ // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
270
+ const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
255
271
  const noteDatas = await this.handlerAsUtility().utilityGetNotes(
272
+ owner,
256
273
  Fr.fromString(storageSlot),
257
274
  +numSelects,
258
275
  selectByIndexes.map(s => +s),
@@ -269,18 +286,29 @@ export class Oracle {
269
286
  +status,
270
287
  );
271
288
 
272
- const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(packAsRetrievedNote);
289
+ const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
290
+ packAsHintedNote({
291
+ contractAddress: noteData.contractAddress,
292
+ owner: noteData.owner,
293
+ randomness: noteData.randomness,
294
+ storageSlot: noteData.storageSlot,
295
+ noteNonce: noteData.noteNonce,
296
+ isPending: noteData.isPending,
297
+ note: noteData.note,
298
+ }),
299
+ );
273
300
 
274
301
  // Now we convert each sub-array to an array of ACVMField
275
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
302
+ const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
276
303
  subArray.map(toACVMField),
277
304
  );
278
305
 
279
306
  // At last we convert the array of arrays to a bounded vec of arrays
280
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
307
+ return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
281
308
  }
282
309
 
283
310
  privateNotifyCreatedNote(
311
+ [owner]: ACVMField[],
284
312
  [storageSlot]: ACVMField[],
285
313
  [randomness]: ACVMField[],
286
314
  [noteTypeId]: ACVMField[],
@@ -289,6 +317,7 @@ export class Oracle {
289
317
  [counter]: ACVMField[],
290
318
  ): Promise<ACVMField[]> {
291
319
  this.handlerAsPrivate().privateNotifyCreatedNote(
320
+ AztecAddress.fromString(owner),
292
321
  Fr.fromString(storageSlot),
293
322
  Fr.fromString(randomness),
294
323
  NoteSelector.fromField(Fr.fromString(noteTypeId)),
@@ -317,6 +346,14 @@ export class Oracle {
317
346
  return [];
318
347
  }
319
348
 
349
+ async privateIsNullifierPending([innerNullifier]: ACVMField[], [contractAddress]: ACVMField[]): Promise<ACVMField[]> {
350
+ const isPending = await this.handlerAsPrivate().privateIsNullifierPending(
351
+ Fr.fromString(innerNullifier),
352
+ AztecAddress.fromString(contractAddress),
353
+ );
354
+ return [toACVMField(isPending)];
355
+ }
356
+
320
357
  async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
321
358
  const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
322
359
  return [toACVMField(exists)];
@@ -336,15 +373,15 @@ export class Oracle {
336
373
  }
337
374
 
338
375
  async utilityStorageRead(
376
+ [blockHash]: ACVMField[],
339
377
  [contractAddress]: ACVMField[],
340
378
  [startStorageSlot]: ACVMField[],
341
- [blockNumber]: ACVMField[],
342
379
  [numberOfElements]: ACVMField[],
343
380
  ): Promise<ACVMField[][]> {
344
381
  const values = await this.handlerAsUtility().utilityStorageRead(
382
+ BlockHash.fromString(blockHash),
345
383
  new AztecAddress(Fr.fromString(contractAddress)),
346
384
  Fr.fromString(startStorageSlot),
347
- +blockNumber,
348
385
  +numberOfElements,
349
386
  );
350
387
  return [values.map(toACVMField)];
@@ -454,12 +491,12 @@ export class Oracle {
454
491
  return [];
455
492
  }
456
493
 
457
- async utilityValidateEnqueuedNotesAndEvents(
494
+ async utilityValidateAndStoreEnqueuedNotesAndEvents(
458
495
  [contractAddress]: ACVMField[],
459
496
  [noteValidationRequestsArrayBaseSlot]: ACVMField[],
460
497
  [eventValidationRequestsArrayBaseSlot]: ACVMField[],
461
498
  ): Promise<ACVMField[]> {
462
- await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(
499
+ await this.handlerAsUtility().utilityValidateAndStoreEnqueuedNotesAndEvents(
463
500
  AztecAddress.fromString(contractAddress),
464
501
  Fr.fromString(noteValidationRequestsArrayBaseSlot),
465
502
  Fr.fromString(eventValidationRequestsArrayBaseSlot),
@@ -1,8 +1,7 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, 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 { ProtocolContractAddress } from '@aztec/protocol-contracts';
6
5
  import {
7
6
  type ACVMWitness,
8
7
  type CircuitSimulator,
@@ -18,15 +17,10 @@ import {
18
17
  countArgumentsSize,
19
18
  } from '@aztec/stdlib/abi';
20
19
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
21
- import type { ContractInstance } from '@aztec/stdlib/contract';
22
- import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
23
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
24
20
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
25
21
  import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
26
- import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
27
- import type { UInt64 } from '@aztec/stdlib/types';
22
+ import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
28
23
 
29
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
30
24
  import { Oracle } from './oracle.js';
31
25
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
32
26
 
@@ -84,7 +78,6 @@ export async function executePrivateFunction(
84
78
 
85
79
  const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
86
80
 
87
- const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
88
81
  const newNotes = privateExecutionOracle.getNewNotes();
89
82
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
90
83
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
@@ -107,7 +100,6 @@ export async function executePrivateFunction(
107
100
  Buffer.from(artifact.verificationKey!, 'base64'),
108
101
  partialWitness,
109
102
  publicInputs,
110
- noteHashLeafIndexMap,
111
103
  newNotes,
112
104
  noteHashNullifierCounterMap,
113
105
  rawReturnValues,
@@ -147,61 +139,3 @@ export function extractPrivateCircuitPublicInputs(
147
139
  }
148
140
  return PrivateCircuitPublicInputs.fromFields(returnData);
149
141
  }
150
-
151
- /**
152
- * Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
153
- * from the instance is used.
154
- * @param contractAddress - The address of the contract to read the class id for.
155
- * @param instance - The instance of the contract.
156
- * @param executionDataProvider - The execution data provider.
157
- * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
158
- * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
159
- * @returns The current class id.
160
- */
161
- export async function readCurrentClassId(
162
- contractAddress: AztecAddress,
163
- instance: ContractInstance,
164
- executionDataProvider: ExecutionDataProvider | AztecNode,
165
- blockNumber: number,
166
- timestamp: UInt64,
167
- ) {
168
- const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
169
- const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
170
- executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
171
- );
172
- let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
173
- if (currentClassId.isZero()) {
174
- currentClassId = instance.originalContractClassId;
175
- }
176
- return currentClassId;
177
- }
178
-
179
- /**
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.
184
- * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
185
- * header of the execution data provider is used.
186
- */
187
- export async function verifyCurrentClassId(
188
- contractAddress: AztecAddress,
189
- executionDataProvider: ExecutionDataProvider,
190
- header?: BlockHeader,
191
- ) {
192
- header = header ?? (await executionDataProvider.getAnchorBlockHeader());
193
-
194
- const instance = await executionDataProvider.getContractInstance(contractAddress);
195
- const currentClassId = await readCurrentClassId(
196
- contractAddress,
197
- instance,
198
- executionDataProvider,
199
- header.globalVariables.blockNumber,
200
- header.globalVariables.timestamp,
201
- );
202
- if (!instance.currentContractClassId.equals(currentClassId)) {
203
- throw new Error(
204
- `Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
205
- );
206
- }
207
- }