@aztec/pxe 0.0.1-commit.24de95ac → 0.0.1-commit.2e2504e2

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 (398) hide show
  1. package/dest/bin/check_oracle_version.d.ts +1 -1
  2. package/dest/bin/check_oracle_version.js +105 -15
  3. package/dest/block_synchronizer/block_synchronizer.d.ts +45 -0
  4. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  5. package/dest/block_synchronizer/block_synchronizer.js +153 -0
  6. package/dest/block_synchronizer/index.d.ts +2 -0
  7. package/dest/block_synchronizer/index.d.ts.map +1 -0
  8. package/dest/block_synchronizer/index.js +1 -0
  9. package/dest/config/index.d.ts +6 -12
  10. package/dest/config/index.d.ts.map +1 -1
  11. package/dest/config/index.js +24 -13
  12. package/dest/config/package_info.d.ts +1 -1
  13. package/dest/config/package_info.js +1 -1
  14. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  15. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  16. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  17. package/dest/contract_function_simulator/contract_function_simulator.d.ts +44 -16
  18. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/contract_function_simulator.js +81 -41
  20. package/dest/contract_function_simulator/execution_note_cache.d.ts +25 -14
  21. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/execution_note_cache.js +59 -34
  23. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +2 -2
  24. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
  26. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  27. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/index.d.ts +2 -2
  29. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  30. package/dest/contract_function_simulator/index.js +1 -1
  31. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -4
  32. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +6 -3
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  40. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -5
  41. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +13 -4
  43. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  44. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  46. package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
  47. package/dest/contract_function_simulator/oracle/interfaces.d.ts +29 -19
  48. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  49. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  50. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  52. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  53. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/note_packing_utils.js +16 -11
  55. package/dest/contract_function_simulator/oracle/oracle.d.ts +14 -11
  56. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/oracle/oracle.js +90 -50
  58. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  59. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
  61. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +38 -33
  62. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +58 -49
  64. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +84 -30
  65. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +170 -68
  67. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  68. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/pick_notes.js +1 -1
  70. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  71. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  73. package/dest/contract_sync/contract_sync_service.d.ts +41 -0
  74. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  75. package/dest/contract_sync/contract_sync_service.js +82 -0
  76. package/dest/contract_sync/helpers.d.ts +28 -0
  77. package/dest/contract_sync/helpers.d.ts.map +1 -0
  78. package/dest/contract_sync/helpers.js +55 -0
  79. package/dest/debug/pxe_debug_utils.d.ts +41 -0
  80. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  81. package/dest/debug/pxe_debug_utils.js +47 -0
  82. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  83. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  84. package/dest/entrypoints/client/bundle/index.js +0 -1
  85. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  86. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  87. package/dest/entrypoints/client/bundle/utils.js +24 -9
  88. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  89. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  90. package/dest/entrypoints/client/lazy/index.js +0 -1
  91. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  92. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  93. package/dest/entrypoints/client/lazy/utils.js +25 -10
  94. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  95. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  96. package/dest/entrypoints/server/index.d.ts +4 -2
  97. package/dest/entrypoints/server/index.d.ts.map +1 -1
  98. package/dest/entrypoints/server/index.js +3 -1
  99. package/dest/entrypoints/server/utils.d.ts +1 -1
  100. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  101. package/dest/entrypoints/server/utils.js +31 -27
  102. package/dest/error_enriching.d.ts +4 -4
  103. package/dest/error_enriching.d.ts.map +1 -1
  104. package/dest/error_enriching.js +6 -6
  105. package/dest/events/event_service.d.ts +15 -0
  106. package/dest/events/event_service.d.ts.map +1 -0
  107. package/dest/events/event_service.js +44 -0
  108. package/dest/events/index.d.ts +2 -0
  109. package/dest/events/index.d.ts.map +1 -0
  110. package/dest/events/index.js +1 -0
  111. package/dest/events/private_event_filter_validator.d.ts +9 -0
  112. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  113. package/dest/events/private_event_filter_validator.js +38 -0
  114. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  115. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  116. package/dest/job_coordinator/job_coordinator.js +94 -0
  117. package/dest/logs/log_service.d.ts +28 -0
  118. package/dest/logs/log_service.d.ts.map +1 -0
  119. package/dest/logs/log_service.js +123 -0
  120. package/dest/notes/index.d.ts +2 -0
  121. package/dest/notes/index.d.ts.map +1 -0
  122. package/dest/notes/index.js +1 -0
  123. package/dest/notes/note_service.d.ts +48 -0
  124. package/dest/notes/note_service.d.ts.map +1 -0
  125. package/dest/notes/note_service.js +147 -0
  126. package/dest/oracle_version.d.ts +3 -3
  127. package/dest/oracle_version.d.ts.map +1 -1
  128. package/dest/oracle_version.js +4 -3
  129. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
  130. package/dest/private_kernel/hints/index.d.ts +2 -2
  131. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  132. package/dest/private_kernel/hints/index.js +1 -1
  133. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
  134. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  135. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +19 -13
  136. package/dest/private_kernel/index.d.ts +1 -1
  137. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  138. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  139. package/dest/private_kernel/private_kernel_execution_prover.js +17 -17
  140. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -29
  141. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  142. package/dest/private_kernel/private_kernel_oracle.js +90 -2
  143. package/dest/pxe.d.ts +55 -83
  144. package/dest/pxe.d.ts.map +1 -1
  145. package/dest/pxe.js +207 -243
  146. package/dest/storage/address_store/address_store.d.ts +11 -0
  147. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  148. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  149. package/dest/storage/address_store/index.d.ts +2 -0
  150. package/dest/storage/address_store/index.d.ts.map +1 -0
  151. package/dest/storage/address_store/index.js +1 -0
  152. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  153. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  154. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
  155. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  156. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  157. package/dest/storage/anchor_block_store/index.js +1 -0
  158. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  159. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  160. package/dest/storage/capsule_store/capsule_store.js +253 -0
  161. package/dest/storage/capsule_store/index.d.ts +2 -0
  162. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  163. package/dest/storage/capsule_store/index.js +1 -0
  164. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +7 -15
  165. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  166. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +56 -28
  167. package/dest/storage/contract_store/index.d.ts +2 -0
  168. package/dest/storage/contract_store/index.d.ts.map +1 -0
  169. package/dest/storage/contract_store/index.js +1 -0
  170. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  171. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  172. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  173. package/dest/storage/index.d.ts +8 -8
  174. package/dest/storage/index.d.ts.map +1 -1
  175. package/dest/storage/index.js +7 -7
  176. package/dest/storage/metadata.d.ts +2 -2
  177. package/dest/storage/metadata.js +1 -1
  178. package/dest/storage/note_store/index.d.ts +3 -0
  179. package/dest/storage/note_store/index.d.ts.map +1 -0
  180. package/dest/storage/note_store/index.js +2 -0
  181. package/dest/storage/note_store/note_store.d.ts +83 -0
  182. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  183. package/dest/storage/note_store/note_store.js +341 -0
  184. package/dest/storage/note_store/stored_note.d.ts +16 -0
  185. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  186. package/dest/storage/note_store/stored_note.js +43 -0
  187. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  188. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  189. package/dest/storage/private_event_store/private_event_store.js +273 -0
  190. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  191. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  192. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  193. package/dest/storage/tagging_store/index.d.ts +4 -0
  194. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  195. package/dest/storage/tagging_store/index.js +3 -0
  196. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  197. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  198. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  199. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  200. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  201. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  202. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  203. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  204. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  205. package/dest/tagging/constants.d.ts +2 -2
  206. package/dest/tagging/constants.d.ts.map +1 -1
  207. package/dest/tagging/constants.js +10 -2
  208. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  209. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  210. package/dest/tagging/get_all_logs_by_tags.js +46 -0
  211. package/dest/tagging/index.d.ts +16 -6
  212. package/dest/tagging/index.d.ts.map +1 -1
  213. package/dest/tagging/index.js +15 -5
  214. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +15 -0
  215. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  216. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  217. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  218. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  219. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  220. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +15 -0
  221. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  222. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
  223. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +21 -0
  224. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  225. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  226. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  227. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  228. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
  229. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +21 -0
  230. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  231. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +60 -0
  232. package/package.json +29 -19
  233. package/src/bin/check_oracle_version.ts +131 -20
  234. package/src/block_synchronizer/block_synchronizer.ts +178 -0
  235. package/src/block_synchronizer/index.ts +1 -0
  236. package/src/config/index.ts +24 -25
  237. package/src/config/package_info.ts +1 -1
  238. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  239. package/src/contract_function_simulator/contract_function_simulator.ts +131 -43
  240. package/src/contract_function_simulator/execution_note_cache.ts +58 -28
  241. package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
  242. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  243. package/src/contract_function_simulator/index.ts +1 -1
  244. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +6 -2
  245. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  246. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -2
  247. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +15 -3
  248. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  249. package/src/contract_function_simulator/oracle/interfaces.ts +42 -17
  250. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  251. package/src/contract_function_simulator/oracle/note_packing_utils.ts +30 -14
  252. package/src/contract_function_simulator/oracle/oracle.ts +108 -46
  253. package/src/contract_function_simulator/oracle/private_execution.ts +2 -68
  254. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +135 -60
  255. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +261 -75
  256. package/src/contract_function_simulator/pick_notes.ts +1 -1
  257. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  258. package/src/contract_sync/contract_sync_service.ts +129 -0
  259. package/src/contract_sync/helpers.ts +93 -0
  260. package/src/debug/pxe_debug_utils.ts +63 -0
  261. package/src/entrypoints/client/bundle/index.ts +0 -1
  262. package/src/entrypoints/client/bundle/utils.ts +16 -17
  263. package/src/entrypoints/client/lazy/index.ts +0 -1
  264. package/src/entrypoints/client/lazy/utils.ts +17 -18
  265. package/src/entrypoints/pxe_creation_options.ts +6 -2
  266. package/src/entrypoints/server/index.ts +3 -1
  267. package/src/entrypoints/server/utils.ts +27 -49
  268. package/src/error_enriching.ts +7 -15
  269. package/src/events/event_service.ts +71 -0
  270. package/src/events/index.ts +1 -0
  271. package/src/events/private_event_filter_validator.ts +46 -0
  272. package/src/job_coordinator/job_coordinator.ts +150 -0
  273. package/src/logs/log_service.ts +220 -0
  274. package/src/notes/index.ts +1 -0
  275. package/src/notes/note_service.ts +195 -0
  276. package/src/oracle_version.ts +4 -3
  277. package/src/private_kernel/hints/index.ts +1 -1
  278. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +38 -31
  279. package/src/private_kernel/private_kernel_execution_prover.ts +21 -24
  280. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  281. package/src/pxe.ts +291 -318
  282. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  283. package/src/storage/address_store/index.ts +1 -0
  284. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
  285. package/src/storage/anchor_block_store/index.ts +1 -0
  286. package/src/storage/capsule_store/capsule_store.ts +315 -0
  287. package/src/storage/capsule_store/index.ts +1 -0
  288. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +67 -31
  289. package/src/storage/contract_store/index.ts +1 -0
  290. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  291. package/src/storage/index.ts +7 -7
  292. package/src/storage/metadata.ts +1 -1
  293. package/src/storage/note_store/index.ts +2 -0
  294. package/src/storage/note_store/note_store.ts +411 -0
  295. package/src/storage/note_store/stored_note.ts +48 -0
  296. package/src/storage/private_event_store/private_event_store.ts +384 -0
  297. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  298. package/src/storage/tagging_store/index.ts +3 -0
  299. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  300. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  301. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  302. package/src/tagging/constants.ts +10 -2
  303. package/src/tagging/get_all_logs_by_tags.ts +68 -0
  304. package/src/tagging/index.ts +18 -5
  305. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +143 -0
  306. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  307. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +49 -0
  308. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +99 -0
  309. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
  310. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
  311. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  312. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  313. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  314. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  315. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  316. package/dest/contract_function_simulator/proxied_node.js +0 -27
  317. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  318. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  319. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  320. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  321. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  322. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  323. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  324. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  325. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  326. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  327. package/dest/storage/address_data_provider/index.d.ts +0 -2
  328. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  329. package/dest/storage/address_data_provider/index.js +0 -1
  330. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  331. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  332. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  333. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  334. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  335. package/dest/storage/capsule_data_provider/index.js +0 -1
  336. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  337. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  338. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  339. package/dest/storage/contract_data_provider/index.js +0 -1
  340. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  341. package/dest/storage/note_data_provider/index.d.ts +0 -3
  342. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  343. package/dest/storage/note_data_provider/index.js +0 -2
  344. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  345. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  346. package/dest/storage/note_data_provider/note_dao.js +0 -102
  347. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  348. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  349. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  350. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
  351. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  352. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
  353. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  354. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  355. package/dest/storage/sync_data_provider/index.js +0 -1
  356. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  357. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  358. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  359. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  360. package/dest/storage/tagging_data_provider/index.js +0 -1
  361. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  362. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  363. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  364. package/dest/synchronizer/index.d.ts +0 -2
  365. package/dest/synchronizer/index.d.ts.map +0 -1
  366. package/dest/synchronizer/index.js +0 -1
  367. package/dest/synchronizer/synchronizer.d.ts +0 -35
  368. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  369. package/dest/synchronizer/synchronizer.js +0 -101
  370. package/dest/tagging/siloed_tag.d.ts +0 -14
  371. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  372. package/dest/tagging/siloed_tag.js +0 -20
  373. package/dest/tagging/tag.d.ts +0 -12
  374. package/dest/tagging/tag.d.ts.map +0 -1
  375. package/dest/tagging/tag.js +0 -17
  376. package/dest/tagging/utils.d.ts +0 -18
  377. package/dest/tagging/utils.d.ts.map +0 -1
  378. package/dest/tagging/utils.js +0 -24
  379. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  380. package/src/contract_function_simulator/proxied_node.ts +0 -33
  381. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
  382. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  383. package/src/storage/address_data_provider/index.ts +0 -1
  384. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  385. package/src/storage/capsule_data_provider/index.ts +0 -1
  386. package/src/storage/contract_data_provider/index.ts +0 -1
  387. package/src/storage/note_data_provider/index.ts +0 -2
  388. package/src/storage/note_data_provider/note_dao.ts +0 -154
  389. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  390. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
  391. package/src/storage/sync_data_provider/index.ts +0 -1
  392. package/src/storage/tagging_data_provider/index.ts +0 -1
  393. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  394. package/src/synchronizer/index.ts +0 -1
  395. package/src/synchronizer/synchronizer.ts +0 -120
  396. package/src/tagging/siloed_tag.ts +0 -22
  397. package/src/tagging/tag.ts +0 -16
  398. package/src/tagging/utils.ts +0 -31
@@ -1,19 +1,21 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { FieldReader } from '@aztec/foundation/serialize';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { TxHash } from '@aztec/stdlib/tx';
5
5
 
6
6
  // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
7
- export const MAX_NOTE_PACKED_LEN = 12;
7
+ export const MAX_NOTE_PACKED_LEN = 10;
8
8
 
9
9
  /**
10
- * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
10
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
11
11
  * expects for values of this type to be stored in a `CapsuleArray`.
12
12
  */
13
13
  export class NoteValidationRequest {
14
14
  constructor(
15
15
  public contractAddress: AztecAddress,
16
+ public owner: AztecAddress,
16
17
  public storageSlot: Fr,
18
+ public randomness: Fr,
17
19
  public noteNonce: Fr,
18
20
  public content: Fr[],
19
21
  public noteHash: Fr,
@@ -26,7 +28,9 @@ export class NoteValidationRequest {
26
28
  const reader = FieldReader.asReader(fields);
27
29
 
28
30
  const contractAddress = AztecAddress.fromField(reader.readField());
31
+ const owner = AztecAddress.fromField(reader.readField());
29
32
  const storageSlot = reader.readField();
33
+ const randomness = reader.readField();
30
34
  const noteNonce = reader.readField();
31
35
 
32
36
  const contentStorage = reader.readFieldArray(MAX_NOTE_PACKED_LEN);
@@ -38,9 +42,17 @@ export class NoteValidationRequest {
38
42
  const txHash = TxHash.fromField(reader.readField());
39
43
  const recipient = AztecAddress.fromField(reader.readField());
40
44
 
45
+ if (reader.remainingFields() !== 0) {
46
+ throw new Error(
47
+ `Error converting array of fields to NoteValidationRequest. Hint: check that MAX_NOTE_PACKED_LEN is consistent with private_notes::MAX_NOTE_PACKED_LEN in Aztec-nr.`,
48
+ );
49
+ }
50
+
41
51
  return new NoteValidationRequest(
42
52
  contractAddress,
53
+ owner,
43
54
  storageSlot,
55
+ randomness,
44
56
  noteNonce,
45
57
  content,
46
58
  noteHash,
@@ -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,16 +24,20 @@ 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;
31
+ /** The randomness injected to the note */
32
+ randomness: Fr;
26
33
  /** The nonce injected into the note hash preimage by kernels. */
27
34
  noteNonce: Fr;
28
35
  /** A hash of the note as it gets stored in the note hash tree. */
29
36
  noteHash: Fr;
37
+ /** True if the note is pending, false if settled. */
38
+ isPending: boolean;
30
39
  /** The corresponding nullifier of the note. Undefined for pending notes. */
31
40
  siloedNullifier?: Fr;
32
- /** The note's leaf index in the note hash tree. Undefined for pending notes. */
33
- index?: bigint;
34
41
  }
35
42
 
36
43
  // These interfaces contain the list of oracles required by aztec-nr in order to simulate and execute transactions, i.e.
@@ -57,23 +64,31 @@ export interface IMiscOracle {
57
64
  export interface IUtilityExecutionOracle {
58
65
  isUtility: true;
59
66
 
60
- utilityGetUtilityContext(): Promise<UtilityContext>;
67
+ utilityGetUtilityContext(): UtilityContext;
61
68
  utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
62
69
  utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
63
- utilityGetMembershipWitness(blockNumber: number, 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>;
64
78
  utilityGetNullifierMembershipWitness(
65
- blockNumber: number,
79
+ anchorBlockHash: BlockHash,
66
80
  nullifier: Fr,
67
81
  ): Promise<NullifierMembershipWitness | undefined>;
68
- utilityGetPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
82
+ utilityGetPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
69
83
  utilityGetLowNullifierMembershipWitness(
70
- blockNumber: number,
84
+ anchorBlockHash: BlockHash,
71
85
  nullifier: Fr,
72
86
  ): Promise<NullifierMembershipWitness | undefined>;
73
- utilityGetBlockHeader(blockNumber: number): Promise<BlockHeader | undefined>;
74
- utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
87
+ utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
88
+ utilityTryGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
75
89
  utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
76
90
  utilityGetNotes(
91
+ owner: AztecAddress | undefined,
77
92
  storageSlot: Fr,
78
93
  numSelects: number,
79
94
  selectByIndexes: number[],
@@ -96,13 +111,13 @@ export interface IUtilityExecutionOracle {
96
111
  secret: Fr,
97
112
  ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
98
113
  utilityStorageRead(
114
+ anchorBlockHash: BlockHash,
99
115
  contractAddress: AztecAddress,
100
116
  startStorageSlot: Fr,
101
- blockNumber: number,
102
117
  numberOfElements: number,
103
118
  ): Promise<Fr[]>;
104
119
  utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
105
- utilityValidateEnqueuedNotesAndEvents(
120
+ utilityValidateAndStoreEnqueuedNotesAndEvents(
106
121
  contractAddress: AztecAddress,
107
122
  noteValidationRequestsArrayBaseSlot: Fr,
108
123
  eventValidationRequestsArrayBaseSlot: Fr,
@@ -129,9 +144,18 @@ export interface IPrivateExecutionOracle {
129
144
 
130
145
  privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
131
146
  privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
132
- privateNotifyCreatedNote(storageSlot: Fr, noteTypeId: NoteSelector, note: Fr[], noteHash: Fr, counter: number): void;
147
+ privateNotifyCreatedNote(
148
+ owner: AztecAddress,
149
+ storageSlot: Fr,
150
+ randomness: Fr,
151
+ noteTypeId: NoteSelector,
152
+ note: Fr[],
153
+ noteHash: Fr,
154
+ counter: number,
155
+ ): void;
133
156
  privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
134
157
  privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
158
+ privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
135
159
  privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
136
160
  privateCallPrivateFunction(
137
161
  targetContractAddress: AztecAddress,
@@ -153,6 +177,7 @@ export interface IPrivateExecutionOracle {
153
177
  isStaticCall: boolean,
154
178
  ): Promise<void>;
155
179
  privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
180
+ privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean>;
156
181
  privateGetSenderForTags(): Promise<AztecAddress | undefined>;
157
182
  privateSetSenderForTags(senderForTags: AztecAddress): Promise<void>;
158
183
  privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
@@ -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,35 +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
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
27
30
  * @param noteNonce - The nonce injected into the note hash preimage by kernels.
28
- * @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
29
32
  * @param note - The note content containing the actual note data
30
33
  * @returns The packed note as an array of field elements
31
34
  */
32
- export function packAsRetrievedNote({
35
+ export function packAsHintedNote({
33
36
  contractAddress,
37
+ owner,
38
+ randomness,
39
+ storageSlot,
34
40
  noteNonce,
35
- index,
41
+ isPending,
36
42
  note,
37
43
  }: {
38
44
  contractAddress: AztecAddress;
45
+ owner: AztecAddress;
46
+ randomness: Fr;
47
+ storageSlot: Fr;
39
48
  noteNonce: Fr;
40
- index?: bigint;
49
+ isPending: boolean;
41
50
  note: Note;
42
51
  }) {
43
- // If index is undefined, the note is transient which implies that the nonzero_note_hash_counter has to be true
44
- const noteIsTransient = index === undefined;
45
- const nonzeroNoteHashCounter = noteIsTransient ? true : false;
52
+ // If the note is pending it means it has a non-zero note hash counter associated with it.
53
+ const nonZeroNoteHashCounter = isPending;
46
54
 
47
- // To pack the note as retrieved note we first need to reconstruct the note metadata.
48
- 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);
49
57
 
50
- // Pack metadata first (stage and maybe_note_nonce), followed by the rest
51
- return [...note.items, contractAddress, 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
+ ];
52
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) {
@@ -100,8 +102,7 @@ export class Oracle {
100
102
  return Promise.resolve([toACVMField(val)]);
101
103
  }
102
104
 
103
- // Since the argument is a slice, noir automatically adds a length field to oracle call.
104
- privateStoreInExecutionCache(_length: ACVMField[], values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
105
+ privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
105
106
  this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
106
107
  return Promise.resolve([]);
107
108
  }
@@ -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,74 +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);
146
+
147
+ const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
148
+ parsedAnchorBlockHash,
149
+ parsedNoteHash,
150
+ );
151
+ if (!witness) {
152
+ throw new Error(
153
+ `Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
154
+ );
155
+ }
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);
147
165
 
148
- const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
149
- parsedBlockNumber,
150
- parsedTreeId,
151
- parsedLeafValue,
166
+ const witness = await this.handlerAsUtility().utilityGetBlockHashMembershipWitness(
167
+ parsedAnchorBlockHash,
168
+ parsedBlockHash,
152
169
  );
153
170
  if (!witness) {
154
171
  throw new Error(
155
- `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`,
172
+ `Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
156
173
  );
157
174
  }
158
- return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
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
- 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
- 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(parsedBlockNumber, parsedLeafSlot);
223
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
205
224
  if (!witness) {
206
- 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
+ );
207
228
  }
208
229
  return witness.toNoirRepresentation();
209
230
  }
@@ -211,7 +232,7 @@ export class Oracle {
211
232
  async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
212
233
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
213
234
 
214
- const header = await this.handlerAsUtility().utilityGetBlockHeader(parsedBlockNumber);
235
+ const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
215
236
  if (!header) {
216
237
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
217
238
  }
@@ -227,15 +248,24 @@ export class Oracle {
227
248
  return [witness.map(toACVMField)];
228
249
  }
229
250
 
230
- async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
251
+ async utilityTryGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
231
252
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
232
- const { publicKeys, partialAddress } =
233
- await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
253
+ const result = await this.handlerAsUtility().utilityTryGetPublicKeysAndPartialAddress(parsedAddress);
234
254
 
235
- 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
+ }
236
264
  }
237
265
 
238
266
  async utilityGetNotes(
267
+ [ownerSome]: ACVMField[],
268
+ [ownerValue]: ACVMField[],
239
269
  [storageSlot]: ACVMField[],
240
270
  [numSelects]: ACVMField[],
241
271
  selectByIndexes: ACVMField[],
@@ -251,9 +281,12 @@ export class Oracle {
251
281
  [offset]: ACVMField[],
252
282
  [status]: ACVMField[],
253
283
  [maxNotes]: ACVMField[],
254
- [packedRetrievedNoteLength]: ACVMField[],
284
+ [packedHintedNoteLength]: ACVMField[],
255
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;
256
288
  const noteDatas = await this.handlerAsUtility().utilityGetNotes(
289
+ owner,
257
290
  Fr.fromString(storageSlot),
258
291
  +numSelects,
259
292
  selectByIndexes.map(s => +s),
@@ -270,26 +303,40 @@ export class Oracle {
270
303
  +status,
271
304
  );
272
305
 
273
- 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
+ );
274
317
 
275
318
  // Now we convert each sub-array to an array of ACVMField
276
- const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
319
+ const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
277
320
  subArray.map(toACVMField),
278
321
  );
279
322
 
280
323
  // At last we convert the array of arrays to a bounded vec of arrays
281
- return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
324
+ return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
282
325
  }
283
326
 
284
327
  privateNotifyCreatedNote(
328
+ [owner]: ACVMField[],
285
329
  [storageSlot]: ACVMField[],
330
+ [randomness]: ACVMField[],
286
331
  [noteTypeId]: ACVMField[],
287
332
  note: ACVMField[],
288
333
  [noteHash]: ACVMField[],
289
334
  [counter]: ACVMField[],
290
335
  ): Promise<ACVMField[]> {
291
336
  this.handlerAsPrivate().privateNotifyCreatedNote(
337
+ AztecAddress.fromString(owner),
292
338
  Fr.fromString(storageSlot),
339
+ Fr.fromString(randomness),
293
340
  NoteSelector.fromField(Fr.fromString(noteTypeId)),
294
341
  note.map(Fr.fromString),
295
342
  Fr.fromString(noteHash),
@@ -316,6 +363,14 @@ export class Oracle {
316
363
  return [];
317
364
  }
318
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
+
319
374
  async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
320
375
  const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
321
376
  return [toACVMField(exists)];
@@ -335,15 +390,15 @@ export class Oracle {
335
390
  }
336
391
 
337
392
  async utilityStorageRead(
393
+ [blockHash]: ACVMField[],
338
394
  [contractAddress]: ACVMField[],
339
395
  [startStorageSlot]: ACVMField[],
340
- [blockNumber]: ACVMField[],
341
396
  [numberOfElements]: ACVMField[],
342
397
  ): Promise<ACVMField[][]> {
343
398
  const values = await this.handlerAsUtility().utilityStorageRead(
399
+ BlockHash.fromString(blockHash),
344
400
  new AztecAddress(Fr.fromString(contractAddress)),
345
401
  Fr.fromString(startStorageSlot),
346
- +blockNumber,
347
402
  +numberOfElements,
348
403
  );
349
404
  return [values.map(toACVMField)];
@@ -433,6 +488,13 @@ export class Oracle {
433
488
  return Promise.resolve([]);
434
489
  }
435
490
 
491
+ async privateIsSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
492
+ const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(
493
+ Fr.fromString(sideEffectCounter).toNumber(),
494
+ );
495
+ return Promise.resolve([toACVMField(isRevertible)]);
496
+ }
497
+
436
498
  async privateGetNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
437
499
  const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(
438
500
  AztecAddress.fromString(sender),
@@ -446,12 +508,12 @@ export class Oracle {
446
508
  return [];
447
509
  }
448
510
 
449
- async utilityValidateEnqueuedNotesAndEvents(
511
+ async utilityValidateAndStoreEnqueuedNotesAndEvents(
450
512
  [contractAddress]: ACVMField[],
451
513
  [noteValidationRequestsArrayBaseSlot]: ACVMField[],
452
514
  [eventValidationRequestsArrayBaseSlot]: ACVMField[],
453
515
  ): Promise<ACVMField[]> {
454
- await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(
516
+ await this.handlerAsUtility().utilityValidateAndStoreEnqueuedNotesAndEvents(
455
517
  AztecAddress.fromString(contractAddress),
456
518
  Fr.fromString(noteValidationRequestsArrayBaseSlot),
457
519
  Fr.fromString(eventValidationRequestsArrayBaseSlot),