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

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 +45 -0
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  4. package/dest/block_synchronizer/block_synchronizer.js +153 -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 +42 -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 +74 -33
  18. package/dest/contract_function_simulator/execution_note_cache.d.ts +21 -12
  19. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/execution_note_cache.js +48 -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 +3 -3
  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 +1 -1
  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 +22 -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 +82 -48
  54. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -28
  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 -25
  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 +41 -45
  60. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +88 -32
  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 +201 -74
  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/contract_sync_service.d.ts +41 -0
  70. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  71. package/dest/contract_sync/contract_sync_service.js +82 -0
  72. package/dest/contract_sync/helpers.d.ts +28 -0
  73. package/dest/contract_sync/helpers.d.ts.map +1 -0
  74. package/dest/contract_sync/helpers.js +55 -0
  75. package/dest/debug/pxe_debug_utils.d.ts +44 -0
  76. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  77. package/dest/debug/pxe_debug_utils.js +48 -0
  78. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  79. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  80. package/dest/entrypoints/client/bundle/index.js +0 -1
  81. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  82. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/client/bundle/utils.js +23 -8
  84. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  85. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  86. package/dest/entrypoints/client/lazy/index.js +0 -1
  87. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  88. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  89. package/dest/entrypoints/client/lazy/utils.js +24 -9
  90. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  91. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  92. package/dest/entrypoints/server/index.d.ts +4 -2
  93. package/dest/entrypoints/server/index.d.ts.map +1 -1
  94. package/dest/entrypoints/server/index.js +3 -1
  95. package/dest/entrypoints/server/utils.d.ts +1 -1
  96. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  97. package/dest/entrypoints/server/utils.js +30 -15
  98. package/dest/error_enriching.d.ts +4 -4
  99. package/dest/error_enriching.d.ts.map +1 -1
  100. package/dest/error_enriching.js +6 -6
  101. package/dest/events/event_service.d.ts +15 -0
  102. package/dest/events/event_service.d.ts.map +1 -0
  103. package/dest/events/event_service.js +44 -0
  104. package/dest/events/index.d.ts +2 -0
  105. package/dest/events/index.d.ts.map +1 -0
  106. package/dest/events/index.js +1 -0
  107. package/dest/events/private_event_filter_validator.d.ts +9 -0
  108. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  109. package/dest/events/private_event_filter_validator.js +38 -0
  110. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  111. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  112. package/dest/job_coordinator/job_coordinator.js +94 -0
  113. package/dest/logs/log_service.d.ts +28 -0
  114. package/dest/logs/log_service.d.ts.map +1 -0
  115. package/dest/logs/log_service.js +123 -0
  116. package/dest/notes/index.d.ts +2 -0
  117. package/dest/notes/index.d.ts.map +1 -0
  118. package/dest/notes/index.js +1 -0
  119. package/dest/notes/note_service.d.ts +48 -0
  120. package/dest/notes/note_service.d.ts.map +1 -0
  121. package/dest/notes/note_service.js +147 -0
  122. package/dest/oracle_version.d.ts +3 -3
  123. package/dest/oracle_version.d.ts.map +1 -1
  124. package/dest/oracle_version.js +4 -3
  125. package/dest/private_kernel/hints/index.d.ts +2 -2
  126. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  127. package/dest/private_kernel/hints/index.js +1 -1
  128. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
  129. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  130. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
  131. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  132. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  133. package/dest/private_kernel/private_kernel_execution_prover.js +10 -11
  134. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -29
  135. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  136. package/dest/private_kernel/private_kernel_oracle.js +90 -2
  137. package/dest/pxe.d.ts +56 -81
  138. package/dest/pxe.d.ts.map +1 -1
  139. package/dest/pxe.js +209 -217
  140. package/dest/storage/address_store/address_store.d.ts +11 -0
  141. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  142. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  143. package/dest/storage/address_store/index.d.ts +2 -0
  144. package/dest/storage/address_store/index.d.ts.map +1 -0
  145. package/dest/storage/address_store/index.js +1 -0
  146. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  147. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  148. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
  149. package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
  150. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  151. package/dest/storage/anchor_block_store/index.js +1 -0
  152. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  153. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  154. package/dest/storage/capsule_store/capsule_store.js +253 -0
  155. package/dest/storage/capsule_store/index.d.ts +2 -0
  156. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  157. package/dest/storage/capsule_store/index.js +1 -0
  158. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +7 -5
  159. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  160. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +56 -16
  161. package/dest/storage/contract_store/index.d.ts +2 -0
  162. package/dest/storage/contract_store/index.d.ts.map +1 -0
  163. package/dest/storage/contract_store/index.js +1 -0
  164. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  165. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  166. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  167. package/dest/storage/index.d.ts +8 -8
  168. package/dest/storage/index.d.ts.map +1 -1
  169. package/dest/storage/index.js +7 -7
  170. package/dest/storage/metadata.d.ts +1 -1
  171. package/dest/storage/metadata.js +1 -1
  172. package/dest/storage/note_store/index.d.ts +3 -0
  173. package/dest/storage/note_store/index.d.ts.map +1 -0
  174. package/dest/storage/note_store/index.js +2 -0
  175. package/dest/storage/note_store/note_store.d.ts +83 -0
  176. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  177. package/dest/storage/note_store/note_store.js +344 -0
  178. package/dest/storage/note_store/stored_note.d.ts +16 -0
  179. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  180. package/dest/storage/note_store/stored_note.js +43 -0
  181. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  182. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  183. package/dest/storage/private_event_store/private_event_store.js +273 -0
  184. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  185. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  186. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  187. package/dest/storage/tagging_store/index.d.ts +4 -0
  188. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  189. package/dest/storage/tagging_store/index.js +3 -0
  190. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  191. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  192. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  193. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  194. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  195. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  196. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  197. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  198. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  199. package/dest/tagging/constants.d.ts +2 -2
  200. package/dest/tagging/constants.d.ts.map +1 -1
  201. package/dest/tagging/constants.js +10 -2
  202. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  203. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  204. package/dest/tagging/get_all_logs_by_tags.js +46 -0
  205. package/dest/tagging/index.d.ts +16 -6
  206. package/dest/tagging/index.d.ts.map +1 -1
  207. package/dest/tagging/index.js +15 -5
  208. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +15 -0
  209. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  210. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  211. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  212. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  213. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  214. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +15 -0
  215. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  216. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
  217. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +21 -0
  218. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  219. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  220. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  221. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  222. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
  223. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +21 -0
  224. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  225. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +60 -0
  226. package/package.json +27 -18
  227. package/src/bin/check_oracle_version.ts +131 -20
  228. package/src/block_synchronizer/block_synchronizer.ts +178 -0
  229. package/src/block_synchronizer/index.ts +1 -0
  230. package/src/config/index.ts +17 -3
  231. package/src/config/package_info.ts +1 -1
  232. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  233. package/src/contract_function_simulator/contract_function_simulator.ts +117 -34
  234. package/src/contract_function_simulator/execution_note_cache.ts +51 -29
  235. package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
  236. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  237. package/src/contract_function_simulator/index.ts +1 -1
  238. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +6 -2
  239. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  240. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  241. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
  242. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  243. package/src/contract_function_simulator/oracle/interfaces.ts +27 -17
  244. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  245. package/src/contract_function_simulator/oracle/note_packing_utils.ts +27 -13
  246. package/src/contract_function_simulator/oracle/oracle.ts +97 -51
  247. package/src/contract_function_simulator/oracle/private_execution.ts +2 -69
  248. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +121 -59
  249. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +294 -91
  250. package/src/contract_function_simulator/pick_notes.ts +1 -1
  251. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  252. package/src/contract_sync/contract_sync_service.ts +129 -0
  253. package/src/contract_sync/helpers.ts +93 -0
  254. package/src/debug/pxe_debug_utils.ts +91 -0
  255. package/src/entrypoints/client/bundle/index.ts +0 -1
  256. package/src/entrypoints/client/bundle/utils.ts +15 -16
  257. package/src/entrypoints/client/lazy/index.ts +0 -1
  258. package/src/entrypoints/client/lazy/utils.ts +16 -17
  259. package/src/entrypoints/pxe_creation_options.ts +6 -2
  260. package/src/entrypoints/server/index.ts +3 -1
  261. package/src/entrypoints/server/utils.ts +26 -34
  262. package/src/error_enriching.ts +7 -15
  263. package/src/events/event_service.ts +71 -0
  264. package/src/events/index.ts +1 -0
  265. package/src/events/private_event_filter_validator.ts +46 -0
  266. package/src/job_coordinator/job_coordinator.ts +150 -0
  267. package/src/logs/log_service.ts +220 -0
  268. package/src/notes/index.ts +1 -0
  269. package/src/notes/note_service.ts +195 -0
  270. package/src/oracle_version.ts +4 -3
  271. package/src/private_kernel/hints/index.ts +1 -1
  272. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +34 -23
  273. package/src/private_kernel/private_kernel_execution_prover.ts +13 -12
  274. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  275. package/src/pxe.ts +299 -280
  276. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  277. package/src/storage/address_store/index.ts +1 -0
  278. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -12
  279. package/src/storage/anchor_block_store/index.ts +1 -0
  280. package/src/storage/capsule_store/capsule_store.ts +315 -0
  281. package/src/storage/capsule_store/index.ts +1 -0
  282. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +67 -14
  283. package/src/storage/contract_store/index.ts +1 -0
  284. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  285. package/src/storage/index.ts +7 -7
  286. package/src/storage/metadata.ts +1 -1
  287. package/src/storage/note_store/index.ts +2 -0
  288. package/src/storage/note_store/note_store.ts +415 -0
  289. package/src/storage/note_store/stored_note.ts +48 -0
  290. package/src/storage/private_event_store/private_event_store.ts +384 -0
  291. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  292. package/src/storage/tagging_store/index.ts +3 -0
  293. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  294. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  295. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  296. package/src/tagging/constants.ts +10 -2
  297. package/src/tagging/get_all_logs_by_tags.ts +68 -0
  298. package/src/tagging/index.ts +18 -5
  299. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +143 -0
  300. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  301. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +49 -0
  302. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +99 -0
  303. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
  304. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
  305. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -267
  306. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  307. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  308. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  309. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  310. package/dest/contract_function_simulator/proxied_node.js +0 -27
  311. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -123
  312. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  313. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -696
  314. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  315. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  316. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  317. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  318. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  319. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  320. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  321. package/dest/storage/address_data_provider/index.d.ts +0 -2
  322. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  323. package/dest/storage/address_data_provider/index.js +0 -1
  324. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  325. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  326. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  327. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  328. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  329. package/dest/storage/capsule_data_provider/index.js +0 -1
  330. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  331. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  332. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  333. package/dest/storage/contract_data_provider/index.js +0 -1
  334. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  335. package/dest/storage/note_data_provider/index.d.ts +0 -3
  336. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  337. package/dest/storage/note_data_provider/index.js +0 -2
  338. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  339. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  340. package/dest/storage/note_data_provider/note_data_provider.js +0 -314
  341. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
  342. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  343. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -105
  344. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  345. package/dest/storage/sync_data_provider/index.js +0 -1
  346. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -11
  347. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  348. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  349. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  350. package/dest/storage/tagging_data_provider/index.js +0 -1
  351. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  352. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  353. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  354. package/dest/synchronizer/index.d.ts +0 -2
  355. package/dest/synchronizer/index.d.ts.map +0 -1
  356. package/dest/synchronizer/index.js +0 -1
  357. package/dest/synchronizer/synchronizer.d.ts +0 -36
  358. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  359. package/dest/synchronizer/synchronizer.js +0 -102
  360. package/dest/tagging/siloed_tag.d.ts +0 -14
  361. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  362. package/dest/tagging/siloed_tag.js +0 -20
  363. package/dest/tagging/tag.d.ts +0 -12
  364. package/dest/tagging/tag.d.ts.map +0 -1
  365. package/dest/tagging/tag.js +0 -17
  366. package/dest/tagging/utils.d.ts +0 -18
  367. package/dest/tagging/utils.d.ts.map +0 -1
  368. package/dest/tagging/utils.js +0 -24
  369. package/src/contract_function_simulator/execution_data_provider.ts +0 -342
  370. package/src/contract_function_simulator/proxied_node.ts +0 -33
  371. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1023
  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 -403
  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 -121
  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,16 +1,18 @@
1
- import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
1
+ import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
2
2
  import type { BlockNumber } from '@aztec/foundation/branded-types';
3
- import { Fr, Point } from '@aztec/foundation/fields';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { Point } from '@aztec/foundation/curves/grumpkin';
5
+ import { MembershipWitness } from '@aztec/foundation/trees';
4
6
  import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
5
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
8
+ import { BlockHash } from '@aztec/stdlib/block';
6
9
  import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
7
10
  import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
8
- import type { ContractClassLog } from '@aztec/stdlib/logs';
11
+ import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
9
12
  import type { Note, NoteStatus } from '@aztec/stdlib/note';
10
- import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
13
+ import { type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
11
14
  import type { BlockHeader } from '@aztec/stdlib/tx';
12
15
 
13
- import type { Tag } from '../../tagging/tag.js';
14
16
  import type { UtilityContext } from '../noir-structs/utility_context.js';
15
17
  import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
16
18
 
@@ -32,10 +34,10 @@ export interface NoteData {
32
34
  noteNonce: Fr;
33
35
  /** A hash of the note as it gets stored in the note hash tree. */
34
36
  noteHash: Fr;
37
+ /** True if the note is pending, false if settled. */
38
+ isPending: boolean;
35
39
  /** The corresponding nullifier of the note. Undefined for pending notes. */
36
40
  siloedNullifier?: Fr;
37
- /** The note's leaf index in the note hash tree. Undefined for pending notes. */
38
- index?: bigint;
39
41
  }
40
42
 
41
43
  // These interfaces contain the list of oracles required by aztec-nr in order to simulate and execute transactions, i.e.
@@ -52,7 +54,7 @@ export interface IMiscOracle {
52
54
 
53
55
  utilityGetRandomField(): Fr;
54
56
  utilityAssertCompatibleOracleVersion(version: number): void;
55
- utilityDebugLog(level: number, message: string, fields: Fr[]): void;
57
+ utilityDebugLog(level: number, message: string, fields: Fr[]): Promise<void>;
56
58
  }
57
59
 
58
60
  /**
@@ -62,24 +64,31 @@ export interface IMiscOracle {
62
64
  export interface IUtilityExecutionOracle {
63
65
  isUtility: true;
64
66
 
65
- utilityGetUtilityContext(): Promise<UtilityContext>;
67
+ utilityGetUtilityContext(): UtilityContext;
66
68
  utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
67
69
  utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
68
- utilityGetMembershipWitness(blockNumber: BlockNumber, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[] | undefined>;
70
+ utilityGetNoteHashMembershipWitness(
71
+ anchorBlockHash: BlockHash,
72
+ noteHash: Fr,
73
+ ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
74
+ utilityGetBlockHashMembershipWitness(
75
+ anchorBlockHash: BlockHash,
76
+ blockHash: BlockHash,
77
+ ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
69
78
  utilityGetNullifierMembershipWitness(
70
- blockNumber: BlockNumber,
79
+ anchorBlockHash: BlockHash,
71
80
  nullifier: Fr,
72
81
  ): Promise<NullifierMembershipWitness | undefined>;
73
- utilityGetPublicDataWitness(blockNumber: BlockNumber, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
82
+ utilityGetPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
74
83
  utilityGetLowNullifierMembershipWitness(
75
- blockNumber: BlockNumber,
84
+ anchorBlockHash: BlockHash,
76
85
  nullifier: Fr,
77
86
  ): Promise<NullifierMembershipWitness | undefined>;
78
87
  utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
79
- utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
88
+ utilityTryGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
80
89
  utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
81
90
  utilityGetNotes(
82
- owner: AztecAddress,
91
+ owner: AztecAddress | undefined,
83
92
  storageSlot: Fr,
84
93
  numSelects: number,
85
94
  selectByIndexes: number[],
@@ -102,13 +111,13 @@ export interface IUtilityExecutionOracle {
102
111
  secret: Fr,
103
112
  ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
104
113
  utilityStorageRead(
114
+ anchorBlockHash: BlockHash,
105
115
  contractAddress: AztecAddress,
106
116
  startStorageSlot: Fr,
107
- blockNumber: BlockNumber,
108
117
  numberOfElements: number,
109
118
  ): Promise<Fr[]>;
110
119
  utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
111
- utilityValidateEnqueuedNotesAndEvents(
120
+ utilityValidateAndStoreEnqueuedNotesAndEvents(
112
121
  contractAddress: AztecAddress,
113
122
  noteValidationRequestsArrayBaseSlot: Fr,
114
123
  eventValidationRequestsArrayBaseSlot: Fr,
@@ -146,6 +155,7 @@ export interface IPrivateExecutionOracle {
146
155
  ): void;
147
156
  privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
148
157
  privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
158
+ privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
149
159
  privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
150
160
  privateCallPrivateFunction(
151
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,5 +1,6 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr, Point } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
3
4
  import {
4
5
  type ACIRCallback,
5
6
  type ACVMField,
@@ -11,11 +12,11 @@ import {
11
12
  } from '@aztec/simulator/client';
12
13
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
13
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
+ import { BlockHash } from '@aztec/stdlib/block';
14
16
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
15
- import { MerkleTreeId } from '@aztec/stdlib/trees';
16
17
 
17
18
  import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
18
- import { packAsRetrievedNote } from './note_packing_utils.js';
19
+ import { packAsHintedNote } from './note_packing_utils.js';
19
20
 
20
21
  export class UnavailableOracleError extends Error {
21
22
  constructor(oracleName: string) {
@@ -111,9 +112,9 @@ export class Oracle {
111
112
  return [values.map(toACVMField)];
112
113
  }
113
114
 
114
- async utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
115
- const context = await this.handlerAsUtility().utilityGetUtilityContext();
116
- return context.toNoirRepresentation();
115
+ utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
116
+ const context = this.handlerAsUtility().utilityGetUtilityContext();
117
+ return Promise.resolve(context.toNoirRepresentation());
117
118
  }
118
119
 
119
120
  async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
@@ -136,77 +137,94 @@ export class Oracle {
136
137
  ].map(toACVMField);
137
138
  }
138
139
 
139
- async utilityGetMembershipWitness(
140
- [blockNumber]: ACVMField[],
141
- [treeId]: ACVMField[],
142
- [leafValue]: ACVMField[],
140
+ async utilityGetNoteHashMembershipWitness(
141
+ [anchorBlockHash]: ACVMField[],
142
+ [noteHash]: ACVMField[],
143
143
  ): Promise<(ACVMField | ACVMField[])[]> {
144
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
145
- const parsedTreeId = Fr.fromString(treeId).toNumber();
146
- const parsedLeafValue = Fr.fromString(leafValue);
144
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
145
+ const parsedNoteHash = Fr.fromString(noteHash);
147
146
 
148
- const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
149
- BlockNumber(parsedBlockNumber),
150
- parsedTreeId,
151
- parsedLeafValue,
147
+ const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
148
+ parsedAnchorBlockHash,
149
+ parsedNoteHash,
152
150
  );
153
151
  if (!witness) {
154
152
  throw new Error(
155
- `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`,
153
+ `Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
156
154
  );
157
155
  }
158
- return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
156
+ return witness.toNoirRepresentation();
157
+ }
158
+
159
+ async utilityGetBlockHashMembershipWitness(
160
+ [anchorBlockHash]: ACVMField[],
161
+ [blockHash]: ACVMField[],
162
+ ): Promise<(ACVMField | ACVMField[])[]> {
163
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
164
+ const parsedBlockHash = BlockHash.fromString(blockHash);
165
+
166
+ const witness = await this.handlerAsUtility().utilityGetBlockHashMembershipWitness(
167
+ parsedAnchorBlockHash,
168
+ parsedBlockHash,
169
+ );
170
+ if (!witness) {
171
+ throw new Error(
172
+ `Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
173
+ );
174
+ }
175
+ return witness.toNoirRepresentation();
159
176
  }
160
177
 
161
178
  async utilityGetNullifierMembershipWitness(
162
- [blockNumber]: ACVMField[],
179
+ [blockHash]: ACVMField[],
163
180
  [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
164
181
  ): Promise<(ACVMField | ACVMField[])[]> {
165
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
182
+ const parsedBlockHash = BlockHash.fromString(blockHash);
166
183
  const parsedNullifier = Fr.fromString(nullifier);
167
184
 
168
185
  const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
169
- BlockNumber(parsedBlockNumber),
186
+ parsedBlockHash,
170
187
  parsedNullifier,
171
188
  );
172
189
  if (!witness) {
173
- throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
190
+ throw new Error(
191
+ `Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
192
+ );
174
193
  }
175
194
  return witness.toNoirRepresentation();
176
195
  }
177
196
 
178
197
  async utilityGetLowNullifierMembershipWitness(
179
- [blockNumber]: ACVMField[],
198
+ [blockHash]: ACVMField[],
180
199
  [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
181
200
  ): Promise<(ACVMField | ACVMField[])[]> {
182
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
201
+ const parsedBlockHash = BlockHash.fromString(blockHash);
183
202
  const parsedNullifier = Fr.fromString(nullifier);
184
203
 
185
204
  const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
186
- BlockNumber(parsedBlockNumber),
205
+ parsedBlockHash,
187
206
  parsedNullifier,
188
207
  );
189
208
  if (!witness) {
190
209
  throw new Error(
191
- `Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`,
210
+ `Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
192
211
  );
193
212
  }
194
213
  return witness.toNoirRepresentation();
195
214
  }
196
215
 
197
216
  async utilityGetPublicDataWitness(
198
- [blockNumber]: ACVMField[],
217
+ [blockHash]: ACVMField[],
199
218
  [leafSlot]: ACVMField[],
200
219
  ): Promise<(ACVMField | ACVMField[])[]> {
201
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
220
+ const parsedBlockHash = BlockHash.fromString(blockHash);
202
221
  const parsedLeafSlot = Fr.fromString(leafSlot);
203
222
 
204
- const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
205
- BlockNumber(parsedBlockNumber),
206
- parsedLeafSlot,
207
- );
223
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
208
224
  if (!witness) {
209
- throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
225
+ throw new Error(
226
+ `Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
227
+ );
210
228
  }
211
229
  return witness.toNoirRepresentation();
212
230
  }
@@ -230,16 +248,24 @@ export class Oracle {
230
248
  return [witness.map(toACVMField)];
231
249
  }
232
250
 
233
- async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
251
+ async utilityTryGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
234
252
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
235
- const { publicKeys, partialAddress } =
236
- await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
253
+ const result = await this.handlerAsUtility().utilityTryGetPublicKeysAndPartialAddress(parsedAddress);
237
254
 
238
- return [[...publicKeys.toFields(), partialAddress].map(toACVMField)];
255
+ // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
256
+ // with two fields: `some` (a boolean) and `value` (a field array in this case).
257
+ if (result === undefined) {
258
+ // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
259
+ return [toACVMField(0), Array(13).fill(toACVMField(0))];
260
+ } else {
261
+ // Data was found so we set `some` to 1 and return it along with `value`.
262
+ return [toACVMField(1), [...result.publicKeys.toFields(), result.partialAddress].map(toACVMField)];
263
+ }
239
264
  }
240
265
 
241
266
  async utilityGetNotes(
242
- [owner]: ACVMField[],
267
+ [ownerSome]: ACVMField[],
268
+ [ownerValue]: ACVMField[],
243
269
  [storageSlot]: ACVMField[],
244
270
  [numSelects]: ACVMField[],
245
271
  selectByIndexes: ACVMField[],
@@ -255,10 +281,12 @@ export class Oracle {
255
281
  [offset]: ACVMField[],
256
282
  [status]: ACVMField[],
257
283
  [maxNotes]: ACVMField[],
258
- [packedRetrievedNoteLength]: ACVMField[],
284
+ [packedHintedNoteLength]: ACVMField[],
259
285
  ): Promise<(ACVMField | ACVMField[])[]> {
286
+ // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
287
+ const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
260
288
  const noteDatas = await this.handlerAsUtility().utilityGetNotes(
261
- AztecAddress.fromString(owner),
289
+ owner,
262
290
  Fr.fromString(storageSlot),
263
291
  +numSelects,
264
292
  selectByIndexes.map(s => +s),
@@ -275,15 +303,25 @@ export class Oracle {
275
303
  +status,
276
304
  );
277
305
 
278
- const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(packAsRetrievedNote);
306
+ const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
307
+ packAsHintedNote({
308
+ contractAddress: noteData.contractAddress,
309
+ owner: noteData.owner,
310
+ randomness: noteData.randomness,
311
+ storageSlot: noteData.storageSlot,
312
+ noteNonce: noteData.noteNonce,
313
+ isPending: noteData.isPending,
314
+ note: noteData.note,
315
+ }),
316
+ );
279
317
 
280
318
  // Now we convert each sub-array to an array of ACVMField
281
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
319
+ const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
282
320
  subArray.map(toACVMField),
283
321
  );
284
322
 
285
323
  // At last we convert the array of arrays to a bounded vec of arrays
286
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
324
+ return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
287
325
  }
288
326
 
289
327
  privateNotifyCreatedNote(
@@ -325,6 +363,14 @@ export class Oracle {
325
363
  return [];
326
364
  }
327
365
 
366
+ async privateIsNullifierPending([innerNullifier]: ACVMField[], [contractAddress]: ACVMField[]): Promise<ACVMField[]> {
367
+ const isPending = await this.handlerAsPrivate().privateIsNullifierPending(
368
+ Fr.fromString(innerNullifier),
369
+ AztecAddress.fromString(contractAddress),
370
+ );
371
+ return [toACVMField(isPending)];
372
+ }
373
+
328
374
  async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
329
375
  const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
330
376
  return [toACVMField(exists)];
@@ -344,15 +390,15 @@ export class Oracle {
344
390
  }
345
391
 
346
392
  async utilityStorageRead(
393
+ [blockHash]: ACVMField[],
347
394
  [contractAddress]: ACVMField[],
348
395
  [startStorageSlot]: ACVMField[],
349
- [blockNumber]: ACVMField[],
350
396
  [numberOfElements]: ACVMField[],
351
397
  ): Promise<ACVMField[][]> {
352
398
  const values = await this.handlerAsUtility().utilityStorageRead(
399
+ BlockHash.fromString(blockHash),
353
400
  new AztecAddress(Fr.fromString(contractAddress)),
354
401
  Fr.fromString(startStorageSlot),
355
- BlockNumber(+blockNumber),
356
402
  +numberOfElements,
357
403
  );
358
404
  return [values.map(toACVMField)];
@@ -371,7 +417,7 @@ export class Oracle {
371
417
  return Promise.resolve([]);
372
418
  }
373
419
 
374
- utilityDebugLog(
420
+ async utilityDebugLog(
375
421
  level: ACVMField[],
376
422
  message: ACVMField[],
377
423
  _ignoredFieldsSize: ACVMField[],
@@ -380,8 +426,8 @@ export class Oracle {
380
426
  const levelFr = Fr.fromString(level[0]);
381
427
  const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
382
428
  const fieldsFr = fields.map(Fr.fromString);
383
- this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
384
- return Promise.resolve([]);
429
+ await this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
430
+ return [];
385
431
  }
386
432
 
387
433
  // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
@@ -462,12 +508,12 @@ export class Oracle {
462
508
  return [];
463
509
  }
464
510
 
465
- async utilityValidateEnqueuedNotesAndEvents(
511
+ async utilityValidateAndStoreEnqueuedNotesAndEvents(
466
512
  [contractAddress]: ACVMField[],
467
513
  [noteValidationRequestsArrayBaseSlot]: ACVMField[],
468
514
  [eventValidationRequestsArrayBaseSlot]: ACVMField[],
469
515
  ): Promise<ACVMField[]> {
470
- await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(
516
+ await this.handlerAsUtility().utilityValidateAndStoreEnqueuedNotesAndEvents(
471
517
  AztecAddress.fromString(contractAddress),
472
518
  Fr.fromString(noteValidationRequestsArrayBaseSlot),
473
519
  Fr.fromString(eventValidationRequestsArrayBaseSlot),
@@ -1,9 +1,7 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { BlockNumber } from '@aztec/foundation/branded-types';
3
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
3
  import { createLogger } from '@aztec/foundation/log';
5
4
  import { Timer } from '@aztec/foundation/timer';
6
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
7
5
  import {
8
6
  type ACVMWitness,
9
7
  type CircuitSimulator,
@@ -19,15 +17,10 @@ import {
19
17
  countArgumentsSize,
20
18
  } from '@aztec/stdlib/abi';
21
19
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
22
- import type { ContractInstance } from '@aztec/stdlib/contract';
23
- import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
24
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
25
20
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
26
21
  import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
27
- import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
28
- import type { UInt64 } from '@aztec/stdlib/types';
22
+ import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
29
23
 
30
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
31
24
  import { Oracle } from './oracle.js';
32
25
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
33
26
 
@@ -85,7 +78,6 @@ export async function executePrivateFunction(
85
78
 
86
79
  const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
87
80
 
88
- const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
89
81
  const newNotes = privateExecutionOracle.getNewNotes();
90
82
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
91
83
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
@@ -108,7 +100,6 @@ export async function executePrivateFunction(
108
100
  Buffer.from(artifact.verificationKey!, 'base64'),
109
101
  partialWitness,
110
102
  publicInputs,
111
- noteHashLeafIndexMap,
112
103
  newNotes,
113
104
  noteHashNullifierCounterMap,
114
105
  rawReturnValues,
@@ -148,61 +139,3 @@ export function extractPrivateCircuitPublicInputs(
148
139
  }
149
140
  return PrivateCircuitPublicInputs.fromFields(returnData);
150
141
  }
151
-
152
- /**
153
- * Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
154
- * from the instance is used.
155
- * @param contractAddress - The address of the contract to read the class id for.
156
- * @param instance - The instance of the contract.
157
- * @param executionDataProvider - The execution data provider.
158
- * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
159
- * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
160
- * @returns The current class id.
161
- */
162
- export async function readCurrentClassId(
163
- contractAddress: AztecAddress,
164
- instance: ContractInstance,
165
- executionDataProvider: ExecutionDataProvider | AztecNode,
166
- blockNumber: BlockNumber,
167
- timestamp: UInt64,
168
- ) {
169
- const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
170
- const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
171
- executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
172
- );
173
- let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
174
- if (currentClassId.isZero()) {
175
- currentClassId = instance.originalContractClassId;
176
- }
177
- return currentClassId;
178
- }
179
-
180
- /**
181
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
182
- * provider (i.e. PXE).
183
- * @param contractAddress - The address of the contract to verify class id for.
184
- * @param executionDataProvider - The execution data provider.
185
- * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
186
- * header of the execution data provider is used.
187
- */
188
- export async function verifyCurrentClassId(
189
- contractAddress: AztecAddress,
190
- executionDataProvider: ExecutionDataProvider,
191
- header?: BlockHeader,
192
- ) {
193
- header = header ?? (await executionDataProvider.getAnchorBlockHeader());
194
-
195
- const instance = await executionDataProvider.getContractInstance(contractAddress);
196
- const currentClassId = await readCurrentClassId(
197
- contractAddress,
198
- instance,
199
- executionDataProvider,
200
- header.globalVariables.blockNumber,
201
- header.globalVariables.timestamp,
202
- );
203
- if (!instance.currentContractClassId.equals(currentClassId)) {
204
- throw new Error(
205
- `Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
206
- );
207
- }
208
- }