@aztec/pxe 0.0.0-test.1 → 0.0.1-commit.1142ef1

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 (445) hide show
  1. package/README.md +5 -5
  2. package/dest/bin/check_oracle_version.d.ts +2 -0
  3. package/dest/bin/check_oracle_version.d.ts.map +1 -0
  4. package/dest/bin/check_oracle_version.js +129 -0
  5. package/dest/block_synchronizer/block_synchronizer.d.ts +39 -0
  6. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  7. package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +34 -35
  8. package/dest/block_synchronizer/index.d.ts +2 -0
  9. package/dest/block_synchronizer/index.d.ts.map +1 -0
  10. package/dest/block_synchronizer/index.js +1 -0
  11. package/dest/config/index.d.ts +11 -24
  12. package/dest/config/index.d.ts.map +1 -1
  13. package/dest/config/index.js +18 -33
  14. package/dest/config/package_info.d.ts +1 -1
  15. package/dest/config/package_info.js +1 -1
  16. package/dest/contract_function_simulator/contract_function_simulator.d.ts +86 -0
  17. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -0
  18. package/dest/contract_function_simulator/contract_function_simulator.js +331 -0
  19. package/dest/contract_function_simulator/execution_note_cache.d.ts +95 -0
  20. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -0
  21. package/dest/contract_function_simulator/execution_note_cache.js +191 -0
  22. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
  23. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  24. package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
  25. package/dest/contract_function_simulator/hashed_values_cache.d.ts +28 -0
  26. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -0
  27. package/dest/contract_function_simulator/hashed_values_cache.js +36 -0
  28. package/dest/contract_function_simulator/index.d.ts +14 -0
  29. package/dest/contract_function_simulator/index.d.ts.map +1 -0
  30. package/dest/contract_function_simulator/index.js +12 -0
  31. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +21 -0
  32. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -0
  33. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +40 -0
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +16 -0
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -0
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +26 -0
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +17 -0
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -0
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +65 -0
  40. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +24 -0
  41. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -0
  42. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +51 -0
  43. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
  44. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  45. package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
  46. package/dest/contract_function_simulator/oracle/index.d.ts +14 -0
  47. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -0
  48. package/dest/contract_function_simulator/oracle/index.js +2 -0
  49. package/dest/contract_function_simulator/oracle/interfaces.d.ts +103 -0
  50. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  51. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  52. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +17 -0
  53. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -0
  54. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +24 -0
  55. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +28 -0
  56. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -0
  57. package/dest/contract_function_simulator/oracle/note_packing_utils.js +54 -0
  58. package/dest/contract_function_simulator/oracle/oracle.d.ts +58 -0
  59. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -0
  60. package/dest/contract_function_simulator/oracle/oracle.js +345 -0
  61. package/dest/contract_function_simulator/oracle/private_execution.d.ts +47 -0
  62. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -0
  63. package/dest/contract_function_simulator/oracle/private_execution.js +122 -0
  64. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +231 -0
  65. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -0
  66. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +414 -0
  67. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +196 -0
  68. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -0
  69. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +374 -0
  70. package/dest/contract_function_simulator/pick_notes.d.ts +85 -0
  71. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -0
  72. package/dest/contract_function_simulator/pick_notes.js +51 -0
  73. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +6 -0
  74. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -0
  75. package/dest/contract_function_simulator/proxied_contract_data_source.js +80 -0
  76. package/dest/contract_function_simulator/proxied_node.d.ts +9 -0
  77. package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -0
  78. package/dest/contract_function_simulator/proxied_node.js +27 -0
  79. package/dest/debug/pxe_debug_utils.d.ts +31 -0
  80. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  81. package/dest/debug/pxe_debug_utils.js +37 -0
  82. package/dest/entrypoints/client/bundle/index.d.ts +4 -3
  83. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  84. package/dest/entrypoints/client/bundle/index.js +2 -2
  85. package/dest/entrypoints/client/bundle/utils.d.ts +10 -10
  86. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  87. package/dest/entrypoints/client/bundle/utils.js +27 -12
  88. package/dest/entrypoints/client/lazy/index.d.ts +4 -3
  89. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  90. package/dest/entrypoints/client/lazy/index.js +2 -2
  91. package/dest/entrypoints/client/lazy/utils.d.ts +9 -9
  92. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  93. package/dest/entrypoints/client/lazy/utils.js +26 -11
  94. package/dest/entrypoints/pxe_creation_options.d.ts +17 -0
  95. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -0
  96. package/dest/entrypoints/server/index.d.ts +6 -4
  97. package/dest/entrypoints/server/index.d.ts.map +1 -1
  98. package/dest/entrypoints/server/index.js +4 -3
  99. package/dest/entrypoints/server/utils.d.ts +8 -16
  100. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  101. package/dest/entrypoints/server/utils.js +35 -36
  102. package/dest/error_enriching.d.ts +11 -0
  103. package/dest/error_enriching.d.ts.map +1 -0
  104. package/dest/{pxe_service/error_enriching.js → error_enriching.js} +30 -22
  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 +47 -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 +39 -0
  114. package/dest/job_coordinator/job_coordinator.d.ts +74 -0
  115. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  116. package/dest/job_coordinator/job_coordinator.js +93 -0
  117. package/dest/logs/log_service.d.ts +26 -0
  118. package/dest/logs/log_service.d.ts.map +1 -0
  119. package/dest/logs/log_service.js +120 -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 +152 -0
  126. package/dest/oracle_version.d.ts +3 -0
  127. package/dest/oracle_version.d.ts.map +1 -0
  128. package/dest/oracle_version.js +10 -0
  129. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +28 -0
  130. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -0
  131. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +271 -0
  132. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +4 -0
  133. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +1 -0
  134. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +41 -0
  135. package/dest/private_kernel/hints/index.d.ts +3 -0
  136. package/dest/private_kernel/hints/index.d.ts.map +1 -0
  137. package/dest/{kernel_prover → private_kernel}/hints/index.js +1 -0
  138. package/dest/private_kernel/index.d.ts +3 -0
  139. package/dest/private_kernel/index.d.ts.map +1 -0
  140. package/dest/private_kernel/index.js +2 -0
  141. package/dest/private_kernel/private_kernel_execution_prover.d.ts +44 -0
  142. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -0
  143. package/dest/private_kernel/private_kernel_execution_prover.js +285 -0
  144. package/dest/private_kernel/private_kernel_oracle.d.ts +64 -0
  145. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -0
  146. package/dest/private_kernel/private_kernel_oracle.js +4 -0
  147. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +46 -0
  148. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -0
  149. package/dest/{kernel_oracle/index.js → private_kernel/private_kernel_oracle_impl.js} +27 -18
  150. package/dest/public_storage/public_storage_service.d.ts +24 -0
  151. package/dest/public_storage/public_storage_service.d.ts.map +1 -0
  152. package/dest/public_storage/public_storage_service.js +26 -0
  153. package/dest/pxe.d.ts +233 -0
  154. package/dest/pxe.d.ts.map +1 -0
  155. package/dest/pxe.js +782 -0
  156. package/dest/storage/address_store/address_store.d.ts +11 -0
  157. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  158. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -4
  159. package/dest/storage/address_store/index.d.ts +2 -0
  160. package/dest/storage/address_store/index.d.ts.map +1 -0
  161. package/dest/storage/address_store/index.js +1 -0
  162. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
  163. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  164. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +2 -12
  165. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  166. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  167. package/dest/storage/anchor_block_store/index.js +1 -0
  168. package/dest/storage/capsule_store/capsule_store.d.ts +57 -0
  169. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  170. package/dest/storage/capsule_store/capsule_store.js +146 -0
  171. package/dest/storage/capsule_store/index.d.ts +2 -0
  172. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  173. package/dest/storage/capsule_store/index.js +1 -0
  174. package/dest/storage/contract_store/contract_store.d.ts +67 -0
  175. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  176. package/dest/storage/contract_store/contract_store.js +236 -0
  177. package/dest/storage/contract_store/index.d.ts +2 -0
  178. package/dest/storage/contract_store/index.d.ts.map +1 -0
  179. package/dest/storage/contract_store/index.js +1 -0
  180. package/dest/storage/contract_store/private_functions_tree.d.ts +27 -0
  181. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  182. package/dest/storage/contract_store/private_functions_tree.js +47 -0
  183. package/dest/storage/index.d.ts +9 -10
  184. package/dest/storage/index.d.ts.map +1 -1
  185. package/dest/storage/index.js +8 -9
  186. package/dest/storage/metadata.d.ts +2 -0
  187. package/dest/storage/metadata.d.ts.map +1 -0
  188. package/dest/storage/metadata.js +1 -0
  189. package/dest/storage/note_store/index.d.ts +3 -0
  190. package/dest/storage/note_store/index.d.ts.map +1 -0
  191. package/dest/storage/note_store/index.js +2 -0
  192. package/dest/storage/note_store/note_store.d.ts +84 -0
  193. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  194. package/dest/storage/note_store/note_store.js +322 -0
  195. package/dest/storage/private_event_store/private_event_store.d.ts +56 -0
  196. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  197. package/dest/storage/private_event_store/private_event_store.js +158 -0
  198. package/dest/storage/tagging_store/index.d.ts +4 -0
  199. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  200. package/dest/storage/tagging_store/index.js +3 -0
  201. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +21 -0
  202. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  203. package/dest/storage/tagging_store/recipient_tagging_store.js +42 -0
  204. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  205. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  206. package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
  207. package/dest/storage/tagging_store/sender_tagging_store.d.ts +67 -0
  208. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  209. package/dest/storage/tagging_store/sender_tagging_store.js +196 -0
  210. package/dest/tagging/constants.d.ts +2 -0
  211. package/dest/tagging/constants.d.ts.map +1 -0
  212. package/dest/tagging/constants.js +10 -0
  213. package/dest/tagging/index.d.ts +16 -0
  214. package/dest/tagging/index.d.ts.map +1 -0
  215. package/dest/tagging/index.js +14 -0
  216. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  217. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  218. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  219. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  220. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  221. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  222. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  223. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  224. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +29 -0
  225. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -0
  226. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  227. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
  228. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  229. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  230. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +32 -0
  231. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -0
  232. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  233. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +55 -0
  234. package/dest/tree_membership/tree_membership_service.d.ts +52 -0
  235. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
  236. package/dest/tree_membership/tree_membership_service.js +84 -0
  237. package/package.json +37 -34
  238. package/src/bin/check_oracle_version.ts +160 -0
  239. package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +37 -38
  240. package/src/block_synchronizer/index.ts +1 -0
  241. package/src/config/index.ts +27 -55
  242. package/src/config/package_info.ts +1 -1
  243. package/src/contract_function_simulator/contract_function_simulator.ts +627 -0
  244. package/src/contract_function_simulator/execution_note_cache.ts +233 -0
  245. package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
  246. package/src/contract_function_simulator/hashed_values_cache.ts +47 -0
  247. package/src/contract_function_simulator/index.ts +13 -0
  248. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +51 -0
  249. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +28 -0
  250. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +69 -0
  251. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +64 -0
  252. package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
  253. package/src/contract_function_simulator/oracle/index.ts +16 -0
  254. package/src/contract_function_simulator/oracle/interfaces.ts +175 -0
  255. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +23 -0
  256. package/src/contract_function_simulator/oracle/note_packing_utils.ts +68 -0
  257. package/src/contract_function_simulator/oracle/oracle.ts +605 -0
  258. package/src/contract_function_simulator/oracle/private_execution.ts +207 -0
  259. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +676 -0
  260. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +536 -0
  261. package/src/contract_function_simulator/pick_notes.ts +141 -0
  262. package/src/contract_function_simulator/proxied_contract_data_source.ts +83 -0
  263. package/src/contract_function_simulator/proxied_node.ts +33 -0
  264. package/src/debug/pxe_debug_utils.ts +48 -0
  265. package/src/entrypoints/client/bundle/index.ts +3 -2
  266. package/src/entrypoints/client/bundle/utils.ts +42 -36
  267. package/src/entrypoints/client/lazy/index.ts +3 -2
  268. package/src/entrypoints/client/lazy/utils.ts +41 -31
  269. package/src/entrypoints/pxe_creation_options.ts +13 -0
  270. package/src/entrypoints/server/index.ts +5 -3
  271. package/src/entrypoints/server/utils.ts +55 -51
  272. package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +40 -39
  273. package/src/events/event_service.ts +79 -0
  274. package/src/events/index.ts +1 -0
  275. package/src/events/private_event_filter_validator.ts +48 -0
  276. package/src/job_coordinator/job_coordinator.ts +149 -0
  277. package/src/logs/log_service.ts +202 -0
  278. package/src/notes/index.ts +1 -0
  279. package/src/notes/note_service.ts +200 -0
  280. package/src/oracle_version.ts +11 -0
  281. package/src/{kernel_prover → private_kernel}/hints/build_private_kernel_reset_private_inputs.ts +159 -148
  282. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +58 -0
  283. package/src/{kernel_prover → private_kernel}/hints/index.ts +1 -0
  284. package/src/private_kernel/index.ts +2 -0
  285. package/src/private_kernel/private_kernel_execution_prover.ts +430 -0
  286. package/src/{kernel_prover/proving_data_oracle.ts → private_kernel/private_kernel_oracle.ts} +19 -29
  287. package/src/{kernel_oracle/index.ts → private_kernel/private_kernel_oracle_impl.ts} +40 -30
  288. package/src/public_storage/public_storage_service.ts +33 -0
  289. package/src/pxe.ts +1111 -0
  290. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -7
  291. package/src/storage/address_store/index.ts +1 -0
  292. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +2 -17
  293. package/src/storage/anchor_block_store/index.ts +1 -0
  294. package/src/storage/capsule_store/capsule_store.ts +179 -0
  295. package/src/storage/capsule_store/index.ts +1 -0
  296. package/src/storage/contract_store/contract_store.ts +339 -0
  297. package/src/storage/contract_store/index.ts +1 -0
  298. package/src/storage/contract_store/private_functions_tree.ts +67 -0
  299. package/src/storage/index.ts +8 -10
  300. package/src/storage/metadata.ts +1 -0
  301. package/src/storage/note_store/index.ts +2 -0
  302. package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +190 -123
  303. package/src/storage/private_event_store/private_event_store.ts +216 -0
  304. package/src/storage/tagging_store/index.ts +3 -0
  305. package/src/storage/tagging_store/recipient_tagging_store.ts +53 -0
  306. package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
  307. package/src/storage/tagging_store/sender_tagging_store.ts +244 -0
  308. package/src/tagging/constants.ts +10 -0
  309. package/src/tagging/index.ts +18 -0
  310. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +132 -0
  311. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  312. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +43 -0
  313. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +96 -0
  314. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +48 -0
  315. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +72 -0
  316. package/src/tree_membership/tree_membership_service.ts +112 -0
  317. package/dest/bin/index.d.ts +0 -3
  318. package/dest/bin/index.d.ts.map +0 -1
  319. package/dest/bin/index.js +0 -28
  320. package/dest/entrypoints/client/pxe_creation_options.d.ts +0 -11
  321. package/dest/entrypoints/client/pxe_creation_options.d.ts.map +0 -1
  322. package/dest/kernel_oracle/index.d.ts +0 -45
  323. package/dest/kernel_oracle/index.d.ts.map +0 -1
  324. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  325. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  326. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +0 -270
  327. package/dest/kernel_prover/hints/index.d.ts +0 -2
  328. package/dest/kernel_prover/hints/index.d.ts.map +0 -1
  329. package/dest/kernel_prover/index.d.ts +0 -3
  330. package/dest/kernel_prover/index.d.ts.map +0 -1
  331. package/dest/kernel_prover/index.js +0 -2
  332. package/dest/kernel_prover/kernel_prover.d.ts +0 -38
  333. package/dest/kernel_prover/kernel_prover.d.ts.map +0 -1
  334. package/dest/kernel_prover/kernel_prover.js +0 -217
  335. package/dest/kernel_prover/proving_data_oracle.d.ts +0 -73
  336. package/dest/kernel_prover/proving_data_oracle.d.ts.map +0 -1
  337. package/dest/kernel_prover/proving_data_oracle.js +0 -4
  338. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +0 -11
  339. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +0 -1
  340. package/dest/note_decryption_utils/add_public_values_to_payload.js +0 -47
  341. package/dest/pxe_http/index.d.ts +0 -2
  342. package/dest/pxe_http/index.d.ts.map +0 -1
  343. package/dest/pxe_http/index.js +0 -1
  344. package/dest/pxe_http/pxe_http_server.d.ts +0 -16
  345. package/dest/pxe_http/pxe_http_server.d.ts.map +0 -1
  346. package/dest/pxe_http/pxe_http_server.js +0 -27
  347. package/dest/pxe_oracle_interface/index.d.ts +0 -159
  348. package/dest/pxe_oracle_interface/index.d.ts.map +0 -1
  349. package/dest/pxe_oracle_interface/index.js +0 -692
  350. package/dest/pxe_oracle_interface/tagging_utils.d.ts +0 -17
  351. package/dest/pxe_oracle_interface/tagging_utils.d.ts.map +0 -1
  352. package/dest/pxe_oracle_interface/tagging_utils.js +0 -23
  353. package/dest/pxe_service/error_enriching.d.ts +0 -11
  354. package/dest/pxe_service/error_enriching.d.ts.map +0 -1
  355. package/dest/pxe_service/index.d.ts +0 -3
  356. package/dest/pxe_service/index.d.ts.map +0 -1
  357. package/dest/pxe_service/index.js +0 -2
  358. package/dest/pxe_service/pxe_service.d.ts +0 -111
  359. package/dest/pxe_service/pxe_service.d.ts.map +0 -1
  360. package/dest/pxe_service/pxe_service.js +0 -664
  361. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -13
  362. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  363. package/dest/storage/address_data_provider/index.d.ts +0 -2
  364. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  365. package/dest/storage/address_data_provider/index.js +0 -1
  366. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts +0 -11
  367. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts.map +0 -1
  368. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.js +0 -20
  369. package/dest/storage/auth_witness_data_provider/index.d.ts +0 -2
  370. package/dest/storage/auth_witness_data_provider/index.d.ts.map +0 -1
  371. package/dest/storage/auth_witness_data_provider/index.js +0 -1
  372. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -16
  373. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  374. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -57
  375. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  376. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  377. package/dest/storage/capsule_data_provider/index.js +0 -1
  378. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -109
  379. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  380. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -183
  381. package/dest/storage/contract_data_provider/index.d.ts +0 -3
  382. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  383. package/dest/storage/contract_data_provider/index.js +0 -2
  384. package/dest/storage/contract_data_provider/private_functions_tree.d.ts +0 -66
  385. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  386. package/dest/storage/contract_data_provider/private_functions_tree.js +0 -99
  387. package/dest/storage/data_provider.d.ts +0 -4
  388. package/dest/storage/data_provider.d.ts.map +0 -1
  389. package/dest/storage/data_provider.js +0 -1
  390. package/dest/storage/note_data_provider/index.d.ts +0 -3
  391. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  392. package/dest/storage/note_data_provider/index.js +0 -2
  393. package/dest/storage/note_data_provider/note_dao.d.ts +0 -106
  394. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  395. package/dest/storage/note_data_provider/note_dao.js +0 -106
  396. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -20
  397. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  398. package/dest/storage/note_data_provider/note_data_provider.js +0 -249
  399. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  400. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  401. package/dest/storage/sync_data_provider/index.js +0 -1
  402. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -12
  403. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  404. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  405. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  406. package/dest/storage/tagging_data_provider/index.js +0 -1
  407. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -18
  408. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  409. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -65
  410. package/dest/synchronizer/index.d.ts +0 -2
  411. package/dest/synchronizer/index.d.ts.map +0 -1
  412. package/dest/synchronizer/index.js +0 -1
  413. package/dest/synchronizer/synchronizer.d.ts +0 -37
  414. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  415. package/dest/test/pxe_test_suite.d.ts +0 -3
  416. package/dest/test/pxe_test_suite.d.ts.map +0 -1
  417. package/dest/test/pxe_test_suite.js +0 -97
  418. package/src/bin/index.ts +0 -38
  419. package/src/entrypoints/client/pxe_creation_options.ts +0 -7
  420. package/src/kernel_prover/index.ts +0 -2
  421. package/src/kernel_prover/kernel_prover.ts +0 -351
  422. package/src/note_decryption_utils/add_public_values_to_payload.ts +0 -64
  423. package/src/pxe_http/index.ts +0 -1
  424. package/src/pxe_http/pxe_http_server.ts +0 -29
  425. package/src/pxe_oracle_interface/index.ts +0 -925
  426. package/src/pxe_oracle_interface/tagging_utils.ts +0 -32
  427. package/src/pxe_service/index.ts +0 -2
  428. package/src/pxe_service/pxe_service.ts +0 -949
  429. package/src/storage/address_data_provider/index.ts +0 -1
  430. package/src/storage/auth_witness_data_provider/auth_witness_data_provider.ts +0 -34
  431. package/src/storage/auth_witness_data_provider/index.ts +0 -1
  432. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -80
  433. package/src/storage/capsule_data_provider/index.ts +0 -1
  434. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -261
  435. package/src/storage/contract_data_provider/index.ts +0 -2
  436. package/src/storage/contract_data_provider/private_functions_tree.ts +0 -131
  437. package/src/storage/data_provider.ts +0 -3
  438. package/src/storage/note_data_provider/index.ts +0 -2
  439. package/src/storage/note_data_provider/note_dao.ts +0 -162
  440. package/src/storage/sync_data_provider/index.ts +0 -1
  441. package/src/storage/tagging_data_provider/index.ts +0 -1
  442. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -92
  443. package/src/synchronizer/index.ts +0 -1
  444. package/src/test/pxe_test_suite.ts +0 -111
  445. /package/dest/entrypoints/{client/pxe_creation_options.js → pxe_creation_options.js} +0 -0
@@ -0,0 +1,605 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
4
+ import {
5
+ type ACIRCallback,
6
+ type ACVMField,
7
+ arrayOfArraysToBoundedVecOfArrays,
8
+ bufferToBoundedVec,
9
+ fromUintArray,
10
+ fromUintBoundedVec,
11
+ toACVMField,
12
+ } from '@aztec/simulator/client';
13
+ import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
14
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
+ import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
16
+ import { MerkleTreeId } from '@aztec/stdlib/trees';
17
+
18
+ import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
19
+ import { packAsRetrievedNote } from './note_packing_utils.js';
20
+
21
+ export class UnavailableOracleError extends Error {
22
+ constructor(oracleName: string) {
23
+ super(`${oracleName} oracles not available with the current handler`);
24
+ }
25
+ }
26
+
27
+ /**
28
+ * A data source that has all the apis required by Aztec.nr.
29
+ */
30
+ export class Oracle {
31
+ constructor(private handler: IMiscOracle | IUtilityExecutionOracle | IPrivateExecutionOracle) {}
32
+
33
+ private handlerAsMisc(): IMiscOracle {
34
+ if (!('isMisc' in this.handler)) {
35
+ throw new UnavailableOracleError('Misc');
36
+ }
37
+
38
+ return this.handler;
39
+ }
40
+
41
+ private handlerAsUtility(): IUtilityExecutionOracle {
42
+ if (!('isUtility' in this.handler)) {
43
+ throw new UnavailableOracleError('Utility');
44
+ }
45
+
46
+ return this.handler;
47
+ }
48
+
49
+ private handlerAsPrivate(): IPrivateExecutionOracle {
50
+ if (!('isPrivate' in this.handler)) {
51
+ throw new UnavailableOracleError('Private');
52
+ }
53
+
54
+ return this.handler;
55
+ }
56
+
57
+ toACIRCallback(): ACIRCallback {
58
+ const excludedProps = [
59
+ 'handler',
60
+ 'constructor',
61
+ 'toACIRCallback',
62
+ 'handlerAsMisc',
63
+ 'handlerAsUtility',
64
+ 'handlerAsPrivate',
65
+ ] as const;
66
+
67
+ // Get all the oracle function names
68
+ const oracleNames = Object.getOwnPropertyNames(Oracle.prototype).filter(
69
+ name => !excludedProps.includes(name as (typeof excludedProps)[number]),
70
+ );
71
+
72
+ // Validate oracle names - these must be prefixed with either "private" or "utility" to indicate their scope
73
+ // and must correspond to a function on the Oracle class.
74
+ oracleNames.forEach(name => {
75
+ if (!name.startsWith('private') && !name.startsWith('utility')) {
76
+ throw new Error(
77
+ `Oracle function "${name}" must be prefixed with either "private" or "utility" to indicate its scope`,
78
+ );
79
+ }
80
+
81
+ const method = this[name as keyof Omit<Oracle, (typeof excludedProps)[number]>];
82
+ if (typeof method !== 'function') {
83
+ throw new Error(`Oracle property "${name}" must be a function`);
84
+ }
85
+ });
86
+
87
+ // Build callback object and return it
88
+ return oracleNames.reduce((acc, name) => {
89
+ const method = this[name as keyof Omit<Oracle, (typeof excludedProps)[number]>];
90
+ acc[name] = method.bind(this);
91
+ return acc;
92
+ }, {} as ACIRCallback);
93
+ }
94
+
95
+ utilityAssertCompatibleOracleVersion([version]: ACVMField[]) {
96
+ this.handlerAsMisc().utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
97
+ return Promise.resolve([]);
98
+ }
99
+
100
+ utilityGetRandomField(): Promise<ACVMField[]> {
101
+ const val = this.handlerAsMisc().utilityGetRandomField();
102
+ return Promise.resolve([toACVMField(val)]);
103
+ }
104
+
105
+ privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
106
+ this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
107
+ return Promise.resolve([]);
108
+ }
109
+
110
+ async privateLoadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]> {
111
+ const values = await this.handlerAsPrivate().privateLoadFromExecutionCache(Fr.fromString(returnsHash));
112
+ return [values.map(toACVMField)];
113
+ }
114
+
115
+ utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
116
+ const context = this.handlerAsUtility().utilityGetUtilityContext();
117
+ return Promise.resolve(context.toNoirRepresentation());
118
+ }
119
+
120
+ async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
121
+ const keyValidationRequest = await this.handlerAsUtility().utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
122
+
123
+ return keyValidationRequest.toFields().map(toACVMField);
124
+ }
125
+
126
+ async utilityGetContractInstance([address]: ACVMField[]): Promise<ACVMField[]> {
127
+ const instance = await this.handlerAsUtility().utilityGetContractInstance(
128
+ AztecAddress.fromField(Fr.fromString(address)),
129
+ );
130
+
131
+ return [
132
+ instance.salt,
133
+ instance.deployer,
134
+ instance.currentContractClassId,
135
+ instance.initializationHash,
136
+ ...instance.publicKeys.toFields(),
137
+ ].map(toACVMField);
138
+ }
139
+
140
+ async utilityGetMembershipWitness(
141
+ [blockNumber]: ACVMField[],
142
+ [treeId]: ACVMField[],
143
+ [leafValue]: ACVMField[],
144
+ ): Promise<(ACVMField | ACVMField[])[]> {
145
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
146
+ const parsedTreeId = Fr.fromString(treeId).toNumber();
147
+ const parsedLeafValue = Fr.fromString(leafValue);
148
+
149
+ const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
150
+ BlockNumber(parsedBlockNumber),
151
+ parsedTreeId,
152
+ parsedLeafValue,
153
+ );
154
+ if (!witness) {
155
+ throw new Error(
156
+ `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`,
157
+ );
158
+ }
159
+ return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
160
+ }
161
+
162
+ async utilityGetNullifierMembershipWitness(
163
+ [blockNumber]: ACVMField[],
164
+ [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
165
+ ): Promise<(ACVMField | ACVMField[])[]> {
166
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
167
+ const parsedNullifier = Fr.fromString(nullifier);
168
+
169
+ const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
170
+ BlockNumber(parsedBlockNumber),
171
+ parsedNullifier,
172
+ );
173
+ if (!witness) {
174
+ throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
175
+ }
176
+ return witness.toNoirRepresentation();
177
+ }
178
+
179
+ async utilityGetLowNullifierMembershipWitness(
180
+ [blockNumber]: ACVMField[],
181
+ [nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
182
+ ): Promise<(ACVMField | ACVMField[])[]> {
183
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
184
+ const parsedNullifier = Fr.fromString(nullifier);
185
+
186
+ const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
187
+ BlockNumber(parsedBlockNumber),
188
+ parsedNullifier,
189
+ );
190
+ if (!witness) {
191
+ throw new Error(
192
+ `Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`,
193
+ );
194
+ }
195
+ return witness.toNoirRepresentation();
196
+ }
197
+
198
+ async utilityGetPublicDataWitness(
199
+ [blockNumber]: ACVMField[],
200
+ [leafSlot]: ACVMField[],
201
+ ): Promise<(ACVMField | ACVMField[])[]> {
202
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
203
+ const parsedLeafSlot = Fr.fromString(leafSlot);
204
+
205
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
206
+ BlockNumber(parsedBlockNumber),
207
+ parsedLeafSlot,
208
+ );
209
+ if (!witness) {
210
+ throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
211
+ }
212
+ return witness.toNoirRepresentation();
213
+ }
214
+
215
+ async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
216
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
217
+
218
+ const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
219
+ if (!header) {
220
+ throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
221
+ }
222
+ return header.toFields().map(toACVMField);
223
+ }
224
+
225
+ async utilityGetAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]> {
226
+ const messageHashField = Fr.fromString(messageHash);
227
+ const witness = await this.handlerAsUtility().utilityGetAuthWitness(messageHashField);
228
+ if (!witness) {
229
+ throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
230
+ }
231
+ return [witness.map(toACVMField)];
232
+ }
233
+
234
+ async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
235
+ const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
236
+ const { publicKeys, partialAddress } =
237
+ await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
238
+
239
+ return [[...publicKeys.toFields(), partialAddress].map(toACVMField)];
240
+ }
241
+
242
+ async utilityGetNotes(
243
+ [ownerSome]: ACVMField[],
244
+ [ownerValue]: ACVMField[],
245
+ [storageSlot]: ACVMField[],
246
+ [numSelects]: ACVMField[],
247
+ selectByIndexes: ACVMField[],
248
+ selectByOffsets: ACVMField[],
249
+ selectByLengths: ACVMField[],
250
+ selectValues: ACVMField[],
251
+ selectComparators: ACVMField[],
252
+ sortByIndexes: ACVMField[],
253
+ sortByOffsets: ACVMField[],
254
+ sortByLengths: ACVMField[],
255
+ sortOrder: ACVMField[],
256
+ [limit]: ACVMField[],
257
+ [offset]: ACVMField[],
258
+ [status]: ACVMField[],
259
+ [maxNotes]: ACVMField[],
260
+ [packedRetrievedNoteLength]: ACVMField[],
261
+ ): Promise<(ACVMField | ACVMField[])[]> {
262
+ // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
263
+ const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
264
+ const noteDatas = await this.handlerAsUtility().utilityGetNotes(
265
+ owner,
266
+ Fr.fromString(storageSlot),
267
+ +numSelects,
268
+ selectByIndexes.map(s => +s),
269
+ selectByOffsets.map(s => +s),
270
+ selectByLengths.map(s => +s),
271
+ selectValues.map(Fr.fromString),
272
+ selectComparators.map(s => +s),
273
+ sortByIndexes.map(s => +s),
274
+ sortByOffsets.map(s => +s),
275
+ sortByLengths.map(s => +s),
276
+ sortOrder.map(s => +s),
277
+ +limit,
278
+ +offset,
279
+ +status,
280
+ );
281
+
282
+ const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(noteData =>
283
+ packAsRetrievedNote({
284
+ contractAddress: noteData.contractAddress,
285
+ owner: noteData.owner,
286
+ randomness: noteData.randomness,
287
+ storageSlot: noteData.storageSlot,
288
+ noteNonce: noteData.noteNonce,
289
+ index: noteData.index,
290
+ note: noteData.note,
291
+ }),
292
+ );
293
+
294
+ // Now we convert each sub-array to an array of ACVMField
295
+ const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
296
+ subArray.map(toACVMField),
297
+ );
298
+
299
+ // At last we convert the array of arrays to a bounded vec of arrays
300
+ return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
301
+ }
302
+
303
+ privateNotifyCreatedNote(
304
+ [owner]: ACVMField[],
305
+ [storageSlot]: ACVMField[],
306
+ [randomness]: ACVMField[],
307
+ [noteTypeId]: ACVMField[],
308
+ note: ACVMField[],
309
+ [noteHash]: ACVMField[],
310
+ [counter]: ACVMField[],
311
+ ): Promise<ACVMField[]> {
312
+ this.handlerAsPrivate().privateNotifyCreatedNote(
313
+ AztecAddress.fromString(owner),
314
+ Fr.fromString(storageSlot),
315
+ Fr.fromString(randomness),
316
+ NoteSelector.fromField(Fr.fromString(noteTypeId)),
317
+ note.map(Fr.fromString),
318
+ Fr.fromString(noteHash),
319
+ +counter,
320
+ );
321
+ return Promise.resolve([]);
322
+ }
323
+
324
+ async privateNotifyNullifiedNote(
325
+ [innerNullifier]: ACVMField[],
326
+ [noteHash]: ACVMField[],
327
+ [counter]: ACVMField[],
328
+ ): Promise<ACVMField[]> {
329
+ await this.handlerAsPrivate().privateNotifyNullifiedNote(
330
+ Fr.fromString(innerNullifier),
331
+ Fr.fromString(noteHash),
332
+ +counter,
333
+ );
334
+ return [];
335
+ }
336
+
337
+ async privateNotifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
338
+ await this.handlerAsPrivate().privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
339
+ return [];
340
+ }
341
+
342
+ async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
343
+ const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
344
+ return [toACVMField(exists)];
345
+ }
346
+
347
+ async utilityGetL1ToL2MembershipWitness(
348
+ [contractAddress]: ACVMField[],
349
+ [messageHash]: ACVMField[],
350
+ [secret]: ACVMField[],
351
+ ): Promise<(ACVMField | ACVMField[])[]> {
352
+ const message = await this.handlerAsUtility().utilityGetL1ToL2MembershipWitness(
353
+ AztecAddress.fromString(contractAddress),
354
+ Fr.fromString(messageHash),
355
+ Fr.fromString(secret),
356
+ );
357
+ return message.toNoirRepresentation();
358
+ }
359
+
360
+ async utilityStorageRead(
361
+ [contractAddress]: ACVMField[],
362
+ [startStorageSlot]: ACVMField[],
363
+ [blockNumber]: ACVMField[],
364
+ [numberOfElements]: ACVMField[],
365
+ ): Promise<ACVMField[][]> {
366
+ const values = await this.handlerAsUtility().utilityStorageRead(
367
+ new AztecAddress(Fr.fromString(contractAddress)),
368
+ Fr.fromString(startStorageSlot),
369
+ BlockNumber(+blockNumber),
370
+ +numberOfElements,
371
+ );
372
+ return [values.map(toACVMField)];
373
+ }
374
+
375
+ privateNotifyCreatedContractClassLog(
376
+ [contractAddress]: ACVMField[],
377
+ message: ACVMField[],
378
+ [length]: ACVMField[],
379
+ [counter]: ACVMField[],
380
+ ): Promise<ACVMField[]> {
381
+ const logFields = new ContractClassLogFields(message.map(Fr.fromString));
382
+ const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
383
+
384
+ this.handlerAsPrivate().privateNotifyCreatedContractClassLog(log, +counter);
385
+ return Promise.resolve([]);
386
+ }
387
+
388
+ utilityDebugLog(
389
+ level: ACVMField[],
390
+ message: ACVMField[],
391
+ _ignoredFieldsSize: ACVMField[],
392
+ fields: ACVMField[],
393
+ ): Promise<ACVMField[]> {
394
+ const levelFr = Fr.fromString(level[0]);
395
+ const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
396
+ const fieldsFr = fields.map(Fr.fromString);
397
+ this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
398
+ return Promise.resolve([]);
399
+ }
400
+
401
+ // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
402
+ // change the name here.
403
+ async privateCallPrivateFunction(
404
+ [contractAddress]: ACVMField[],
405
+ [functionSelector]: ACVMField[],
406
+ [argsHash]: ACVMField[],
407
+ [sideEffectCounter]: ACVMField[],
408
+ [isStaticCall]: ACVMField[],
409
+ ): Promise<ACVMField[][]> {
410
+ const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().privateCallPrivateFunction(
411
+ AztecAddress.fromField(Fr.fromString(contractAddress)),
412
+ FunctionSelector.fromField(Fr.fromString(functionSelector)),
413
+ Fr.fromString(argsHash),
414
+ Fr.fromString(sideEffectCounter).toNumber(),
415
+ Fr.fromString(isStaticCall).toBool(),
416
+ );
417
+ return [[endSideEffectCounter, returnsHash].map(toACVMField)];
418
+ }
419
+
420
+ async privateNotifyEnqueuedPublicFunctionCall(
421
+ [contractAddress]: ACVMField[],
422
+ [calldataHash]: ACVMField[],
423
+ [sideEffectCounter]: ACVMField[],
424
+ [isStaticCall]: ACVMField[],
425
+ ): Promise<ACVMField[]> {
426
+ await this.handlerAsPrivate().privateNotifyEnqueuedPublicFunctionCall(
427
+ AztecAddress.fromString(contractAddress),
428
+ Fr.fromString(calldataHash),
429
+ Fr.fromString(sideEffectCounter).toNumber(),
430
+ Fr.fromString(isStaticCall).toBool(),
431
+ );
432
+ return [];
433
+ }
434
+
435
+ async privateNotifySetPublicTeardownFunctionCall(
436
+ [contractAddress]: ACVMField[],
437
+ [calldataHash]: ACVMField[],
438
+ [sideEffectCounter]: ACVMField[],
439
+ [isStaticCall]: ACVMField[],
440
+ ): Promise<ACVMField[]> {
441
+ await this.handlerAsPrivate().privateNotifySetPublicTeardownFunctionCall(
442
+ AztecAddress.fromString(contractAddress),
443
+ Fr.fromString(calldataHash),
444
+ Fr.fromString(sideEffectCounter).toNumber(),
445
+ Fr.fromString(isStaticCall).toBool(),
446
+ );
447
+ return [];
448
+ }
449
+
450
+ async privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<
451
+ ACVMField[]
452
+ > {
453
+ await this.handlerAsPrivate().privateNotifySetMinRevertibleSideEffectCounter(
454
+ Fr.fromString(minRevertibleSideEffectCounter).toNumber(),
455
+ );
456
+ return Promise.resolve([]);
457
+ }
458
+
459
+ async privateIsSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
460
+ const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(
461
+ Fr.fromString(sideEffectCounter).toNumber(),
462
+ );
463
+ return Promise.resolve([toACVMField(isRevertible)]);
464
+ }
465
+
466
+ async privateGetNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
467
+ const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(
468
+ AztecAddress.fromString(sender),
469
+ AztecAddress.fromString(recipient),
470
+ );
471
+ return [toACVMField(tag.value)];
472
+ }
473
+
474
+ async utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
475
+ await this.handlerAsUtility().utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
476
+ return [];
477
+ }
478
+
479
+ async utilityValidateEnqueuedNotesAndEvents(
480
+ [contractAddress]: ACVMField[],
481
+ [noteValidationRequestsArrayBaseSlot]: ACVMField[],
482
+ [eventValidationRequestsArrayBaseSlot]: ACVMField[],
483
+ ): Promise<ACVMField[]> {
484
+ await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(
485
+ AztecAddress.fromString(contractAddress),
486
+ Fr.fromString(noteValidationRequestsArrayBaseSlot),
487
+ Fr.fromString(eventValidationRequestsArrayBaseSlot),
488
+ );
489
+
490
+ return [];
491
+ }
492
+
493
+ async utilityBulkRetrieveLogs(
494
+ [contractAddress]: ACVMField[],
495
+ [logRetrievalRequestsArrayBaseSlot]: ACVMField[],
496
+ [logRetrievalResponsesArrayBaseSlot]: ACVMField[],
497
+ ): Promise<ACVMField[]> {
498
+ await this.handlerAsUtility().utilityBulkRetrieveLogs(
499
+ AztecAddress.fromString(contractAddress),
500
+ Fr.fromString(logRetrievalRequestsArrayBaseSlot),
501
+ Fr.fromString(logRetrievalResponsesArrayBaseSlot),
502
+ );
503
+ return [];
504
+ }
505
+
506
+ async utilityStoreCapsule(
507
+ [contractAddress]: ACVMField[],
508
+ [slot]: ACVMField[],
509
+ capsule: ACVMField[],
510
+ ): Promise<ACVMField[]> {
511
+ await this.handlerAsUtility().utilityStoreCapsule(
512
+ AztecAddress.fromField(Fr.fromString(contractAddress)),
513
+ Fr.fromString(slot),
514
+ capsule.map(Fr.fromString),
515
+ );
516
+ return [];
517
+ }
518
+
519
+ async utilityLoadCapsule(
520
+ [contractAddress]: ACVMField[],
521
+ [slot]: ACVMField[],
522
+ [tSize]: ACVMField[],
523
+ ): Promise<(ACVMField | ACVMField[])[]> {
524
+ const values = await this.handlerAsUtility().utilityLoadCapsule(
525
+ AztecAddress.fromField(Fr.fromString(contractAddress)),
526
+ Fr.fromString(slot),
527
+ );
528
+
529
+ // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
530
+ // with two fields: `some` (a boolean) and `value` (a field array in this case).
531
+ if (values === null) {
532
+ // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
533
+ return [toACVMField(0), Array(Fr.fromString(tSize).toNumber()).fill(toACVMField(0))];
534
+ } else {
535
+ // Data was found so we set `some` to 1 and return it along with `value`.
536
+ return [toACVMField(1), values.map(toACVMField)];
537
+ }
538
+ }
539
+
540
+ async utilityDeleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]> {
541
+ await this.handlerAsUtility().utilityDeleteCapsule(
542
+ AztecAddress.fromField(Fr.fromString(contractAddress)),
543
+ Fr.fromString(slot),
544
+ );
545
+ return [];
546
+ }
547
+
548
+ async utilityCopyCapsule(
549
+ [contractAddress]: ACVMField[],
550
+ [srcSlot]: ACVMField[],
551
+ [dstSlot]: ACVMField[],
552
+ [numEntries]: ACVMField[],
553
+ ): Promise<ACVMField[]> {
554
+ await this.handlerAsUtility().utilityCopyCapsule(
555
+ AztecAddress.fromField(Fr.fromString(contractAddress)),
556
+ Fr.fromString(srcSlot),
557
+ Fr.fromString(dstSlot),
558
+ Fr.fromString(numEntries).toNumber(),
559
+ );
560
+ return [];
561
+ }
562
+
563
+ async utilityAes128Decrypt(
564
+ ciphertextBVecStorage: ACVMField[],
565
+ [ciphertextLength]: ACVMField[],
566
+ iv: ACVMField[],
567
+ symKey: ACVMField[],
568
+ ): Promise<(ACVMField | ACVMField[])[]> {
569
+ const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
570
+ const ivBuffer = fromUintArray(iv, 8);
571
+ const symKeyBuffer = fromUintArray(symKey, 8);
572
+
573
+ const plaintext = await this.handlerAsUtility().utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
574
+ return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
575
+ }
576
+
577
+ async utilityGetSharedSecret(
578
+ [address]: ACVMField[],
579
+ [ephPKField0]: ACVMField[],
580
+ [ephPKField1]: ACVMField[],
581
+ [ephPKField2]: ACVMField[],
582
+ ): Promise<ACVMField[]> {
583
+ const secret = await this.handlerAsUtility().utilityGetSharedSecret(
584
+ AztecAddress.fromField(Fr.fromString(address)),
585
+ Point.fromFields([ephPKField0, ephPKField1, ephPKField2].map(Fr.fromString)),
586
+ );
587
+ return secret.toFields().map(toACVMField);
588
+ }
589
+
590
+ async utilityEmitOffchainEffect(data: ACVMField[]) {
591
+ await this.handlerAsPrivate().utilityEmitOffchainEffect(data.map(Fr.fromString));
592
+ return [];
593
+ }
594
+
595
+ async privateGetSenderForTags(): Promise<ACVMField[]> {
596
+ const sender = await this.handlerAsPrivate().privateGetSenderForTags();
597
+ // Return [1, address] for Some(address), [0, 0] for None
598
+ return sender ? [toACVMField(1n), toACVMField(sender)] : [toACVMField(0n), toACVMField(0n)];
599
+ }
600
+
601
+ async privateSetSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]> {
602
+ await this.handlerAsPrivate().privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
603
+ return [];
604
+ }
605
+ }