@aztec/pxe 0.0.1-commit.b655e406 → 0.0.1-commit.c0b82b2

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 (422) hide show
  1. package/dest/access_scopes.d.ts +9 -0
  2. package/dest/access_scopes.d.ts.map +1 -0
  3. package/dest/access_scopes.js +6 -0
  4. package/dest/bin/check_oracle_version.d.ts +1 -1
  5. package/dest/bin/check_oracle_version.js +105 -15
  6. package/dest/block_synchronizer/block_synchronizer.d.ts +45 -0
  7. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  8. package/dest/block_synchronizer/block_synchronizer.js +153 -0
  9. package/dest/block_synchronizer/index.d.ts +2 -0
  10. package/dest/block_synchronizer/index.d.ts.map +1 -0
  11. package/dest/block_synchronizer/index.js +1 -0
  12. package/dest/config/index.d.ts +6 -12
  13. package/dest/config/index.d.ts.map +1 -1
  14. package/dest/config/index.js +24 -13
  15. package/dest/config/package_info.d.ts +1 -1
  16. package/dest/config/package_info.js +1 -1
  17. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  18. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  19. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  20. package/dest/contract_function_simulator/contract_function_simulator.d.ts +78 -26
  21. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/contract_function_simulator.js +226 -82
  23. package/dest/contract_function_simulator/execution_note_cache.d.ts +25 -14
  24. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/execution_note_cache.js +59 -34
  26. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +6 -6
  27. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/execution_tagging_index_cache.js +4 -4
  29. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  30. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/index.d.ts +2 -2
  32. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/index.js +1 -1
  34. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -4
  35. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -4
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  40. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  41. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  43. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -5
  44. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +13 -4
  46. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  47. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  49. package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
  50. package/dest/contract_function_simulator/oracle/interfaces.d.ts +30 -20
  51. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  53. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  55. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  56. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/oracle/note_packing_utils.js +16 -11
  58. package/dest/contract_function_simulator/oracle/oracle.d.ts +15 -12
  59. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/oracle.js +93 -53
  61. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  62. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
  64. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +56 -52
  65. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +120 -66
  67. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +114 -39
  68. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +214 -86
  70. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  71. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/pick_notes.js +1 -1
  73. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  74. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  75. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  76. package/dest/contract_logging.d.ts +22 -0
  77. package/dest/contract_logging.d.ts.map +1 -0
  78. package/dest/contract_logging.js +23 -0
  79. package/dest/contract_sync/contract_sync_service.d.ts +43 -0
  80. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  81. package/dest/contract_sync/contract_sync_service.js +97 -0
  82. package/dest/contract_sync/helpers.d.ts +29 -0
  83. package/dest/contract_sync/helpers.d.ts.map +1 -0
  84. package/dest/contract_sync/helpers.js +55 -0
  85. package/dest/debug/pxe_debug_utils.d.ts +45 -0
  86. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  87. package/dest/debug/pxe_debug_utils.js +48 -0
  88. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  89. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  90. package/dest/entrypoints/client/bundle/index.js +3 -1
  91. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  92. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  93. package/dest/entrypoints/client/bundle/utils.js +33 -10
  94. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  95. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  96. package/dest/entrypoints/client/lazy/index.js +3 -1
  97. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  98. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  99. package/dest/entrypoints/client/lazy/utils.js +34 -11
  100. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  101. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  102. package/dest/entrypoints/server/index.d.ts +6 -2
  103. package/dest/entrypoints/server/index.d.ts.map +1 -1
  104. package/dest/entrypoints/server/index.js +5 -1
  105. package/dest/entrypoints/server/utils.d.ts +1 -1
  106. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  107. package/dest/entrypoints/server/utils.js +40 -28
  108. package/dest/error_enriching.d.ts +4 -4
  109. package/dest/error_enriching.d.ts.map +1 -1
  110. package/dest/error_enriching.js +6 -6
  111. package/dest/events/event_service.d.ts +15 -0
  112. package/dest/events/event_service.d.ts.map +1 -0
  113. package/dest/events/event_service.js +44 -0
  114. package/dest/events/index.d.ts +2 -0
  115. package/dest/events/index.d.ts.map +1 -0
  116. package/dest/events/index.js +1 -0
  117. package/dest/events/private_event_filter_validator.d.ts +9 -0
  118. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  119. package/dest/events/private_event_filter_validator.js +38 -0
  120. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  121. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  122. package/dest/job_coordinator/job_coordinator.js +94 -0
  123. package/dest/logs/log_service.d.ts +29 -0
  124. package/dest/logs/log_service.d.ts.map +1 -0
  125. package/dest/logs/log_service.js +118 -0
  126. package/dest/notes/index.d.ts +2 -0
  127. package/dest/notes/index.d.ts.map +1 -0
  128. package/dest/notes/index.js +1 -0
  129. package/dest/notes/note_service.d.ts +49 -0
  130. package/dest/notes/note_service.d.ts.map +1 -0
  131. package/dest/notes/note_service.js +148 -0
  132. package/dest/notes_filter.d.ts +25 -0
  133. package/dest/notes_filter.d.ts.map +1 -0
  134. package/dest/notes_filter.js +4 -0
  135. package/dest/oracle_version.d.ts +3 -3
  136. package/dest/oracle_version.d.ts.map +1 -1
  137. package/dest/oracle_version.js +4 -3
  138. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  139. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  140. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  141. package/dest/private_kernel/hints/index.d.ts +3 -3
  142. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  143. package/dest/private_kernel/hints/index.js +2 -2
  144. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  145. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  146. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +144 -77
  147. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  148. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  149. package/dest/private_kernel/hints/test_utils.js +203 -0
  150. package/dest/private_kernel/index.d.ts +1 -1
  151. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  152. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  153. package/dest/private_kernel/private_kernel_execution_prover.js +33 -25
  154. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -25
  155. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  156. package/dest/private_kernel/private_kernel_oracle.js +94 -2
  157. package/dest/pxe.d.ts +121 -103
  158. package/dest/pxe.d.ts.map +1 -1
  159. package/dest/pxe.js +268 -279
  160. package/dest/storage/address_store/address_store.d.ts +11 -0
  161. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  162. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  163. package/dest/storage/address_store/index.d.ts +2 -0
  164. package/dest/storage/address_store/index.d.ts.map +1 -0
  165. package/dest/storage/address_store/index.js +1 -0
  166. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  167. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  168. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
  169. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  170. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  171. package/dest/storage/anchor_block_store/index.js +1 -0
  172. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  173. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  174. package/dest/storage/capsule_store/capsule_store.js +253 -0
  175. package/dest/storage/capsule_store/index.d.ts +2 -0
  176. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  177. package/dest/storage/capsule_store/index.js +1 -0
  178. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  179. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  180. package/dest/storage/contract_store/contract_store.js +309 -0
  181. package/dest/storage/contract_store/index.d.ts +2 -0
  182. package/dest/storage/contract_store/index.d.ts.map +1 -0
  183. package/dest/storage/contract_store/index.js +1 -0
  184. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  185. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  186. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  187. package/dest/storage/index.d.ts +8 -8
  188. package/dest/storage/index.d.ts.map +1 -1
  189. package/dest/storage/index.js +7 -7
  190. package/dest/storage/metadata.d.ts +2 -2
  191. package/dest/storage/metadata.js +1 -1
  192. package/dest/storage/note_store/index.d.ts +3 -0
  193. package/dest/storage/note_store/index.d.ts.map +1 -0
  194. package/dest/storage/note_store/index.js +2 -0
  195. package/dest/storage/note_store/note_store.d.ts +83 -0
  196. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  197. package/dest/storage/note_store/note_store.js +343 -0
  198. package/dest/storage/note_store/stored_note.d.ts +16 -0
  199. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  200. package/dest/storage/note_store/stored_note.js +43 -0
  201. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  202. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  203. package/dest/storage/private_event_store/private_event_store.js +273 -0
  204. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  205. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  206. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  207. package/dest/storage/tagging_store/index.d.ts +4 -0
  208. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  209. package/dest/storage/tagging_store/index.js +3 -0
  210. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  211. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  212. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  213. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  214. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  215. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  216. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  217. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  218. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  219. package/dest/tagging/constants.d.ts +2 -2
  220. package/dest/tagging/constants.d.ts.map +1 -1
  221. package/dest/tagging/constants.js +10 -2
  222. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  223. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  224. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  225. package/dest/tagging/index.d.ts +16 -6
  226. package/dest/tagging/index.d.ts.map +1 -1
  227. package/dest/tagging/index.js +15 -5
  228. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  229. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  230. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  231. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  232. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  233. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  234. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  235. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  236. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +33 -0
  237. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +17 -0
  238. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  239. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +71 -0
  240. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  241. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  242. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
  243. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -0
  244. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  245. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +59 -0
  246. package/package.json +29 -19
  247. package/src/access_scopes.ts +9 -0
  248. package/src/bin/check_oracle_version.ts +131 -20
  249. package/src/block_synchronizer/block_synchronizer.ts +178 -0
  250. package/src/block_synchronizer/index.ts +1 -0
  251. package/src/config/index.ts +24 -25
  252. package/src/config/package_info.ts +1 -1
  253. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  254. package/src/contract_function_simulator/contract_function_simulator.ts +396 -116
  255. package/src/contract_function_simulator/execution_note_cache.ts +58 -28
  256. package/src/contract_function_simulator/execution_tagging_index_cache.ts +6 -6
  257. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  258. package/src/contract_function_simulator/index.ts +1 -1
  259. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +7 -3
  260. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  261. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -2
  262. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +15 -3
  263. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  264. package/src/contract_function_simulator/oracle/interfaces.ts +43 -18
  265. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  266. package/src/contract_function_simulator/oracle/note_packing_utils.ts +30 -14
  267. package/src/contract_function_simulator/oracle/oracle.ts +111 -49
  268. package/src/contract_function_simulator/oracle/private_execution.ts +2 -68
  269. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +166 -98
  270. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +350 -91
  271. package/src/contract_function_simulator/pick_notes.ts +1 -1
  272. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  273. package/src/contract_logging.ts +39 -0
  274. package/src/contract_sync/contract_sync_service.ts +152 -0
  275. package/src/contract_sync/helpers.ts +98 -0
  276. package/src/debug/pxe_debug_utils.ts +93 -0
  277. package/src/entrypoints/client/bundle/index.ts +3 -1
  278. package/src/entrypoints/client/bundle/utils.ts +25 -18
  279. package/src/entrypoints/client/lazy/index.ts +3 -1
  280. package/src/entrypoints/client/lazy/utils.ts +26 -19
  281. package/src/entrypoints/pxe_creation_options.ts +6 -2
  282. package/src/entrypoints/server/index.ts +5 -1
  283. package/src/entrypoints/server/utils.ts +34 -56
  284. package/src/error_enriching.ts +7 -15
  285. package/src/events/event_service.ts +71 -0
  286. package/src/events/index.ts +1 -0
  287. package/src/events/private_event_filter_validator.ts +46 -0
  288. package/src/job_coordinator/job_coordinator.ts +150 -0
  289. package/src/logs/log_service.ts +213 -0
  290. package/src/notes/index.ts +1 -0
  291. package/src/notes/note_service.ts +196 -0
  292. package/src/notes_filter.ts +26 -0
  293. package/src/oracle_version.ts +4 -3
  294. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  295. package/src/private_kernel/hints/index.ts +2 -2
  296. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +199 -145
  297. package/src/private_kernel/hints/test_utils.ts +325 -0
  298. package/src/private_kernel/private_kernel_execution_prover.ts +38 -34
  299. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  300. package/src/pxe.ts +410 -382
  301. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  302. package/src/storage/address_store/index.ts +1 -0
  303. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
  304. package/src/storage/anchor_block_store/index.ts +1 -0
  305. package/src/storage/capsule_store/capsule_store.ts +315 -0
  306. package/src/storage/capsule_store/index.ts +1 -0
  307. package/src/storage/contract_store/contract_store.ts +429 -0
  308. package/src/storage/contract_store/index.ts +1 -0
  309. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  310. package/src/storage/index.ts +7 -7
  311. package/src/storage/metadata.ts +1 -1
  312. package/src/storage/note_store/index.ts +2 -0
  313. package/src/storage/note_store/note_store.ts +418 -0
  314. package/src/storage/note_store/stored_note.ts +48 -0
  315. package/src/storage/private_event_store/private_event_store.ts +384 -0
  316. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  317. package/src/storage/tagging_store/index.ts +3 -0
  318. package/src/storage/tagging_store/recipient_tagging_store.ts +143 -0
  319. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  320. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  321. package/src/tagging/constants.ts +10 -2
  322. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  323. package/src/tagging/index.ts +18 -5
  324. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +140 -0
  325. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  326. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +44 -0
  327. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +94 -0
  328. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
  329. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +75 -0
  330. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  331. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  332. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  333. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  334. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  335. package/dest/contract_function_simulator/proxied_node.js +0 -27
  336. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  337. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  338. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  339. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  340. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  341. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  342. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  343. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  344. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  345. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  346. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  347. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  348. package/dest/storage/address_data_provider/index.d.ts +0 -2
  349. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  350. package/dest/storage/address_data_provider/index.js +0 -1
  351. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  352. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  353. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  354. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  355. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  356. package/dest/storage/capsule_data_provider/index.js +0 -1
  357. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
  358. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  359. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -205
  360. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  361. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  362. package/dest/storage/contract_data_provider/index.js +0 -1
  363. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  364. package/dest/storage/note_data_provider/index.d.ts +0 -3
  365. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  366. package/dest/storage/note_data_provider/index.js +0 -2
  367. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  368. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  369. package/dest/storage/note_data_provider/note_dao.js +0 -102
  370. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  371. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  372. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  373. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
  374. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  375. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
  376. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  377. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  378. package/dest/storage/sync_data_provider/index.js +0 -1
  379. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  380. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  381. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  382. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  383. package/dest/storage/tagging_data_provider/index.js +0 -1
  384. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  385. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  386. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  387. package/dest/synchronizer/index.d.ts +0 -2
  388. package/dest/synchronizer/index.d.ts.map +0 -1
  389. package/dest/synchronizer/index.js +0 -1
  390. package/dest/synchronizer/synchronizer.d.ts +0 -35
  391. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  392. package/dest/synchronizer/synchronizer.js +0 -101
  393. package/dest/tagging/siloed_tag.d.ts +0 -14
  394. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  395. package/dest/tagging/siloed_tag.js +0 -20
  396. package/dest/tagging/tag.d.ts +0 -12
  397. package/dest/tagging/tag.d.ts.map +0 -1
  398. package/dest/tagging/tag.js +0 -17
  399. package/dest/tagging/utils.d.ts +0 -18
  400. package/dest/tagging/utils.d.ts.map +0 -1
  401. package/dest/tagging/utils.js +0 -24
  402. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  403. package/src/contract_function_simulator/proxied_node.ts +0 -33
  404. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
  405. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  406. package/src/storage/address_data_provider/index.ts +0 -1
  407. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  408. package/src/storage/capsule_data_provider/index.ts +0 -1
  409. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
  410. package/src/storage/contract_data_provider/index.ts +0 -1
  411. package/src/storage/note_data_provider/index.ts +0 -2
  412. package/src/storage/note_data_provider/note_dao.ts +0 -154
  413. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  414. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
  415. package/src/storage/sync_data_provider/index.ts +0 -1
  416. package/src/storage/tagging_data_provider/index.ts +0 -1
  417. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  418. package/src/synchronizer/index.ts +0 -1
  419. package/src/synchronizer/synchronizer.ts +0 -120
  420. package/src/tagging/siloed_tag.ts +0 -22
  421. package/src/tagging/tag.ts +0 -16
  422. package/src/tagging/utils.ts +0 -31
@@ -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);
147
146
 
148
- const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
149
- parsedBlockNumber,
150
- parsedTreeId,
151
- parsedLeafValue,
147
+ const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
148
+ parsedAnchorBlockHash,
149
+ parsedNoteHash,
152
150
  );
153
151
  if (!witness) {
154
152
  throw new Error(
155
- `Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`,
153
+ `Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
156
154
  );
157
155
  }
158
- return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
156
+ return witness.toNoirRepresentation();
157
+ }
158
+
159
+ async utilityGetBlockHashMembershipWitness(
160
+ [anchorBlockHash]: ACVMField[],
161
+ [blockHash]: ACVMField[],
162
+ ): Promise<(ACVMField | ACVMField[])[]> {
163
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
164
+ const parsedBlockHash = BlockHash.fromString(blockHash);
165
+
166
+ const witness = await this.handlerAsUtility().utilityGetBlockHashMembershipWitness(
167
+ parsedAnchorBlockHash,
168
+ parsedBlockHash,
169
+ );
170
+ if (!witness) {
171
+ throw new Error(
172
+ `Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
173
+ );
174
+ }
175
+ return witness.toNoirRepresentation();
159
176
  }
160
177
 
161
178
  async utilityGetNullifierMembershipWitness(
162
- [blockNumber]: ACVMField[],
179
+ [blockHash]: ACVMField[],
163
180
  [nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
164
181
  ): Promise<(ACVMField | ACVMField[])[]> {
165
- const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
182
+ const parsedBlockHash = BlockHash.fromString(blockHash);
166
183
  const parsedNullifier = Fr.fromString(nullifier);
167
184
 
168
185
  const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
169
- 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)];
@@ -362,7 +417,7 @@ export class Oracle {
362
417
  return Promise.resolve([]);
363
418
  }
364
419
 
365
- utilityDebugLog(
420
+ async utilityLog(
366
421
  level: ACVMField[],
367
422
  message: ACVMField[],
368
423
  _ignoredFieldsSize: ACVMField[],
@@ -371,8 +426,8 @@ export class Oracle {
371
426
  const levelFr = Fr.fromString(level[0]);
372
427
  const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
373
428
  const fieldsFr = fields.map(Fr.fromString);
374
- this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
375
- return Promise.resolve([]);
429
+ await this.handlerAsMisc().utilityLog(levelFr.toNumber(), messageStr, fieldsFr);
430
+ return [];
376
431
  }
377
432
 
378
433
  // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
@@ -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),
@@ -1,8 +1,7 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { Timer } from '@aztec/foundation/timer';
5
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
6
5
  import {
7
6
  type ACVMWitness,
8
7
  type CircuitSimulator,
@@ -18,15 +17,10 @@ import {
18
17
  countArgumentsSize,
19
18
  } from '@aztec/stdlib/abi';
20
19
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
21
- import type { ContractInstance } from '@aztec/stdlib/contract';
22
- import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
23
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
24
20
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
25
21
  import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
26
- import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
27
- import type { UInt64 } from '@aztec/stdlib/types';
22
+ import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
28
23
 
29
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
30
24
  import { Oracle } from './oracle.js';
31
25
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
32
26
 
@@ -84,7 +78,6 @@ export async function executePrivateFunction(
84
78
 
85
79
  const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
86
80
 
87
- const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
88
81
  const newNotes = privateExecutionOracle.getNewNotes();
89
82
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
90
83
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
@@ -107,7 +100,6 @@ export async function executePrivateFunction(
107
100
  Buffer.from(artifact.verificationKey!, 'base64'),
108
101
  partialWitness,
109
102
  publicInputs,
110
- noteHashLeafIndexMap,
111
103
  newNotes,
112
104
  noteHashNullifierCounterMap,
113
105
  rawReturnValues,
@@ -147,61 +139,3 @@ export function extractPrivateCircuitPublicInputs(
147
139
  }
148
140
  return PrivateCircuitPublicInputs.fromFields(returnData);
149
141
  }
150
-
151
- /**
152
- * Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
153
- * from the instance is used.
154
- * @param contractAddress - The address of the contract to read the class id for.
155
- * @param instance - The instance of the contract.
156
- * @param executionDataProvider - The execution data provider.
157
- * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
158
- * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
159
- * @returns The current class id.
160
- */
161
- export async function readCurrentClassId(
162
- contractAddress: AztecAddress,
163
- instance: ContractInstance,
164
- executionDataProvider: ExecutionDataProvider | AztecNode,
165
- blockNumber: number,
166
- timestamp: UInt64,
167
- ) {
168
- const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
169
- const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
170
- executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
171
- );
172
- let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
173
- if (currentClassId.isZero()) {
174
- currentClassId = instance.originalContractClassId;
175
- }
176
- return currentClassId;
177
- }
178
-
179
- /**
180
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
181
- * provider (i.e. PXE).
182
- * @param contractAddress - The address of the contract to verify class id for.
183
- * @param executionDataProvider - The execution data provider.
184
- * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
185
- * header of the execution data provider is used.
186
- */
187
- export async function verifyCurrentClassId(
188
- contractAddress: AztecAddress,
189
- executionDataProvider: ExecutionDataProvider,
190
- header?: BlockHeader,
191
- ) {
192
- header = header ?? (await executionDataProvider.getAnchorBlockHeader());
193
-
194
- const instance = await executionDataProvider.getContractInstance(contractAddress);
195
- const currentClassId = await readCurrentClassId(
196
- contractAddress,
197
- instance,
198
- executionDataProvider,
199
- header.globalVariables.blockNumber,
200
- header.globalVariables.timestamp,
201
- );
202
- if (!instance.currentContractClassId.equals(currentClassId)) {
203
- throw new Error(
204
- `Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
205
- );
206
- }
207
- }