@aztec/pxe 0.0.1-commit.fce3e4f → 0.0.1-commit.ffe5b04ea

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 (413) 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.js +105 -15
  5. package/dest/block_synchronizer/block_synchronizer.d.ts +45 -0
  6. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  7. package/dest/block_synchronizer/block_synchronizer.js +153 -0
  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 +7 -5
  12. package/dest/config/index.d.ts.map +1 -1
  13. package/dest/config/index.js +18 -1
  14. package/dest/config/package_info.js +1 -1
  15. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  16. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  17. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  18. package/dest/contract_function_simulator/contract_function_simulator.d.ts +76 -24
  19. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/contract_function_simulator.js +223 -78
  21. package/dest/contract_function_simulator/execution_note_cache.d.ts +21 -11
  22. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/execution_note_cache.js +49 -31
  24. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +6 -6
  25. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/execution_tagging_index_cache.js +4 -4
  27. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  28. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/index.d.ts +2 -2
  30. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/index.js +1 -1
  32. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -4
  33. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -4
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
  38. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  39. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  41. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -5
  42. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +7 -4
  44. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  45. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  47. package/dest/contract_function_simulator/oracle/interfaces.d.ts +61 -50
  48. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  49. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +4 -2
  50. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  52. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +11 -7
  53. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/oracle/note_packing_utils.js +14 -10
  55. package/dest/contract_function_simulator/oracle/oracle.d.ts +44 -42
  56. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  57. package/dest/contract_function_simulator/oracle/oracle.js +191 -113
  58. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  59. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/private_execution.js +3 -39
  61. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +69 -60
  62. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +131 -88
  64. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +132 -54
  65. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +231 -102
  67. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  68. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/pick_notes.js +1 -1
  70. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  71. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  73. package/dest/contract_logging.d.ts +22 -0
  74. package/dest/contract_logging.d.ts.map +1 -0
  75. package/dest/contract_logging.js +23 -0
  76. package/dest/contract_sync/contract_sync_service.d.ts +43 -0
  77. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  78. package/dest/contract_sync/contract_sync_service.js +97 -0
  79. package/dest/contract_sync/helpers.d.ts +29 -0
  80. package/dest/contract_sync/helpers.d.ts.map +1 -0
  81. package/dest/contract_sync/helpers.js +55 -0
  82. package/dest/debug/pxe_debug_utils.d.ts +45 -0
  83. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  84. package/dest/debug/pxe_debug_utils.js +48 -0
  85. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  86. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  87. package/dest/entrypoints/client/bundle/index.js +3 -1
  88. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  89. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  90. package/dest/entrypoints/client/bundle/utils.js +32 -9
  91. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  92. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  93. package/dest/entrypoints/client/lazy/index.js +3 -1
  94. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  95. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  96. package/dest/entrypoints/client/lazy/utils.js +33 -10
  97. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  98. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  99. package/dest/entrypoints/server/index.d.ts +6 -2
  100. package/dest/entrypoints/server/index.d.ts.map +1 -1
  101. package/dest/entrypoints/server/index.js +5 -1
  102. package/dest/entrypoints/server/utils.d.ts +1 -1
  103. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  104. package/dest/entrypoints/server/utils.js +39 -16
  105. package/dest/error_enriching.d.ts +4 -4
  106. package/dest/error_enriching.d.ts.map +1 -1
  107. package/dest/error_enriching.js +6 -6
  108. package/dest/events/event_service.d.ts +15 -0
  109. package/dest/events/event_service.d.ts.map +1 -0
  110. package/dest/events/event_service.js +44 -0
  111. package/dest/events/index.d.ts +2 -0
  112. package/dest/events/index.d.ts.map +1 -0
  113. package/dest/events/index.js +1 -0
  114. package/dest/events/private_event_filter_validator.d.ts +9 -0
  115. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  116. package/dest/events/private_event_filter_validator.js +38 -0
  117. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  118. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  119. package/dest/job_coordinator/job_coordinator.js +94 -0
  120. package/dest/logs/log_service.d.ts +29 -0
  121. package/dest/logs/log_service.d.ts.map +1 -0
  122. package/dest/logs/log_service.js +118 -0
  123. package/dest/notes/index.d.ts +2 -0
  124. package/dest/notes/index.d.ts.map +1 -0
  125. package/dest/notes/index.js +1 -0
  126. package/dest/notes/note_service.d.ts +49 -0
  127. package/dest/notes/note_service.d.ts.map +1 -0
  128. package/dest/notes/note_service.js +148 -0
  129. package/dest/notes_filter.d.ts +25 -0
  130. package/dest/notes_filter.d.ts.map +1 -0
  131. package/dest/notes_filter.js +4 -0
  132. package/dest/oracle_version.d.ts +3 -3
  133. package/dest/oracle_version.d.ts.map +1 -1
  134. package/dest/oracle_version.js +5 -4
  135. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  136. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  137. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  138. package/dest/private_kernel/hints/index.d.ts +3 -3
  139. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  140. package/dest/private_kernel/hints/index.js +2 -2
  141. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  142. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  143. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +141 -74
  144. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  145. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  146. package/dest/private_kernel/hints/test_utils.js +203 -0
  147. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  148. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  149. package/dest/private_kernel/private_kernel_execution_prover.js +28 -21
  150. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -25
  151. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  152. package/dest/private_kernel/private_kernel_oracle.js +94 -2
  153. package/dest/pxe.d.ts +114 -103
  154. package/dest/pxe.d.ts.map +1 -1
  155. package/dest/pxe.js +263 -256
  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} +13 -12
  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 +17 -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} +10 -10
  165. package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
  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 +72 -0
  169. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  170. package/dest/storage/capsule_store/capsule_store.js +253 -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 +93 -0
  175. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  176. package/dest/storage/contract_store/contract_store.js +309 -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_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  181. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  182. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  183. package/dest/storage/index.d.ts +8 -8
  184. package/dest/storage/index.d.ts.map +1 -1
  185. package/dest/storage/index.js +7 -7
  186. package/dest/storage/metadata.d.ts +1 -1
  187. package/dest/storage/metadata.js +1 -1
  188. package/dest/storage/note_store/index.d.ts +3 -0
  189. package/dest/storage/note_store/index.d.ts.map +1 -0
  190. package/dest/storage/note_store/index.js +2 -0
  191. package/dest/storage/note_store/note_store.d.ts +83 -0
  192. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  193. package/dest/storage/note_store/note_store.js +343 -0
  194. package/dest/storage/note_store/stored_note.d.ts +16 -0
  195. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  196. package/dest/storage/note_store/stored_note.js +43 -0
  197. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  198. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  199. package/dest/storage/private_event_store/private_event_store.js +273 -0
  200. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  201. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  202. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  203. package/dest/storage/tagging_store/index.d.ts +4 -0
  204. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  205. package/dest/storage/tagging_store/index.js +3 -0
  206. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  207. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  208. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  209. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  210. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  211. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  212. package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
  213. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  214. package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
  215. package/dest/tagging/constants.d.ts +2 -2
  216. package/dest/tagging/constants.d.ts.map +1 -1
  217. package/dest/tagging/constants.js +10 -2
  218. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  219. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  220. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  221. package/dest/tagging/index.d.ts +16 -6
  222. package/dest/tagging/index.d.ts.map +1 -1
  223. package/dest/tagging/index.js +15 -5
  224. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  225. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  226. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  227. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  228. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  229. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  230. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  231. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  232. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +33 -0
  233. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +17 -0
  234. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  235. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +71 -0
  236. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
  237. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  238. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
  239. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -0
  240. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  241. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +59 -0
  242. package/package.json +28 -19
  243. package/src/access_scopes.ts +9 -0
  244. package/src/bin/check_oracle_version.ts +131 -20
  245. package/src/block_synchronizer/block_synchronizer.ts +178 -0
  246. package/src/block_synchronizer/index.ts +1 -0
  247. package/src/config/index.ts +18 -4
  248. package/src/config/package_info.ts +1 -1
  249. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  250. package/src/contract_function_simulator/contract_function_simulator.ts +385 -110
  251. package/src/contract_function_simulator/execution_note_cache.ts +51 -28
  252. package/src/contract_function_simulator/execution_tagging_index_cache.ts +6 -6
  253. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  254. package/src/contract_function_simulator/index.ts +1 -1
  255. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +7 -3
  256. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  257. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  258. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -3
  259. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  260. package/src/contract_function_simulator/oracle/interfaces.ts +70 -52
  261. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  262. package/src/contract_function_simulator/oracle/note_packing_utils.ts +27 -13
  263. package/src/contract_function_simulator/oracle/oracle.ts +213 -131
  264. package/src/contract_function_simulator/oracle/private_execution.ts +3 -69
  265. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +182 -122
  266. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +366 -114
  267. package/src/contract_function_simulator/pick_notes.ts +1 -1
  268. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  269. package/src/contract_logging.ts +39 -0
  270. package/src/contract_sync/contract_sync_service.ts +152 -0
  271. package/src/contract_sync/helpers.ts +98 -0
  272. package/src/debug/pxe_debug_utils.ts +93 -0
  273. package/src/entrypoints/client/bundle/index.ts +3 -1
  274. package/src/entrypoints/client/bundle/utils.ts +24 -17
  275. package/src/entrypoints/client/lazy/index.ts +3 -1
  276. package/src/entrypoints/client/lazy/utils.ts +25 -18
  277. package/src/entrypoints/pxe_creation_options.ts +6 -2
  278. package/src/entrypoints/server/index.ts +5 -1
  279. package/src/entrypoints/server/utils.ts +33 -41
  280. package/src/error_enriching.ts +7 -15
  281. package/src/events/event_service.ts +71 -0
  282. package/src/events/index.ts +1 -0
  283. package/src/events/private_event_filter_validator.ts +46 -0
  284. package/src/job_coordinator/job_coordinator.ts +150 -0
  285. package/src/logs/log_service.ts +213 -0
  286. package/src/notes/index.ts +1 -0
  287. package/src/notes/note_service.ts +196 -0
  288. package/src/notes_filter.ts +26 -0
  289. package/src/oracle_version.ts +5 -4
  290. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  291. package/src/private_kernel/hints/index.ts +2 -2
  292. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +197 -139
  293. package/src/private_kernel/hints/test_utils.ts +325 -0
  294. package/src/private_kernel/private_kernel_execution_prover.ts +32 -23
  295. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  296. package/src/pxe.ts +403 -347
  297. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  298. package/src/storage/address_store/index.ts +1 -0
  299. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
  300. package/src/storage/anchor_block_store/index.ts +1 -0
  301. package/src/storage/capsule_store/capsule_store.ts +315 -0
  302. package/src/storage/capsule_store/index.ts +1 -0
  303. package/src/storage/contract_store/contract_store.ts +429 -0
  304. package/src/storage/contract_store/index.ts +1 -0
  305. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  306. package/src/storage/index.ts +7 -7
  307. package/src/storage/metadata.ts +1 -1
  308. package/src/storage/note_store/index.ts +2 -0
  309. package/src/storage/note_store/note_store.ts +418 -0
  310. package/src/storage/note_store/stored_note.ts +48 -0
  311. package/src/storage/private_event_store/private_event_store.ts +384 -0
  312. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  313. package/src/storage/tagging_store/index.ts +3 -0
  314. package/src/storage/tagging_store/recipient_tagging_store.ts +143 -0
  315. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  316. package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
  317. package/src/tagging/constants.ts +10 -2
  318. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  319. package/src/tagging/index.ts +18 -5
  320. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +140 -0
  321. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  322. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +44 -0
  323. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +94 -0
  324. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
  325. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +75 -0
  326. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -265
  327. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  328. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  329. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  330. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  331. package/dest/contract_function_simulator/proxied_node.js +0 -27
  332. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  333. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  334. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -694
  335. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  336. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  337. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  338. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  339. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  340. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  341. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  342. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  343. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  344. package/dest/storage/address_data_provider/index.d.ts +0 -2
  345. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  346. package/dest/storage/address_data_provider/index.js +0 -1
  347. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  348. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  349. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  350. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  351. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  352. package/dest/storage/capsule_data_provider/index.js +0 -1
  353. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -64
  354. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  355. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -193
  356. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  357. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  358. package/dest/storage/contract_data_provider/index.js +0 -1
  359. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  360. package/dest/storage/note_data_provider/index.d.ts +0 -3
  361. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  362. package/dest/storage/note_data_provider/index.js +0 -2
  363. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  364. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  365. package/dest/storage/note_data_provider/note_data_provider.js +0 -311
  366. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
  367. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  368. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -105
  369. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  370. package/dest/storage/sync_data_provider/index.js +0 -1
  371. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  372. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  373. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  374. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  375. package/dest/storage/tagging_data_provider/index.js +0 -1
  376. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  377. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  378. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  379. package/dest/synchronizer/index.d.ts +0 -2
  380. package/dest/synchronizer/index.d.ts.map +0 -1
  381. package/dest/synchronizer/index.js +0 -1
  382. package/dest/synchronizer/synchronizer.d.ts +0 -35
  383. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  384. package/dest/synchronizer/synchronizer.js +0 -101
  385. package/dest/tagging/siloed_tag.d.ts +0 -14
  386. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  387. package/dest/tagging/siloed_tag.js +0 -20
  388. package/dest/tagging/tag.d.ts +0 -12
  389. package/dest/tagging/tag.d.ts.map +0 -1
  390. package/dest/tagging/tag.js +0 -17
  391. package/dest/tagging/utils.d.ts +0 -18
  392. package/dest/tagging/utils.d.ts.map +0 -1
  393. package/dest/tagging/utils.js +0 -24
  394. package/src/contract_function_simulator/execution_data_provider.ts +0 -333
  395. package/src/contract_function_simulator/proxied_node.ts +0 -33
  396. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1008
  397. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  398. package/src/storage/address_data_provider/index.ts +0 -1
  399. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  400. package/src/storage/capsule_data_provider/index.ts +0 -1
  401. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -277
  402. package/src/storage/contract_data_provider/index.ts +0 -1
  403. package/src/storage/note_data_provider/index.ts +0 -2
  404. package/src/storage/note_data_provider/note_data_provider.ts +0 -399
  405. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -143
  406. package/src/storage/sync_data_provider/index.ts +0 -1
  407. package/src/storage/tagging_data_provider/index.ts +0 -1
  408. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  409. package/src/synchronizer/index.ts +0 -1
  410. package/src/synchronizer/synchronizer.ts +0 -120
  411. package/src/tagging/siloed_tag.ts +0 -22
  412. package/src/tagging/tag.ts +0 -16
  413. package/src/tagging/utils.ts +0 -31
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
3
  import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
4
4
 
@@ -32,19 +32,22 @@ export class ExecutionNoteCache {
32
32
  private nullifierMap: Map<bigint, Set<bigint>> = new Map();
33
33
 
34
34
  /**
35
- * All nullifiers emitted in this transaction.
35
+ * Nullifiers emitted by private calls in this transaction.
36
36
  */
37
- private allNullifiers: Set<bigint> = new Set();
37
+ private emittedNullifiers: Set<bigint> = new Set();
38
38
 
39
+ /**
40
+ * The counter that separates non-revertible side effects (which persist even if the tx reverts) from revertible ones.
41
+ */
39
42
  private minRevertibleSideEffectCounter = 0;
40
43
 
41
44
  private inRevertiblePhase = false;
42
45
 
43
46
  /**
44
- * We don't need to use the tx request hash for nonces if another non revertible nullifier is emitted.
45
- * In that case we disable injecting the tx request hash as a nullifier.
47
+ * Whether the protocol nullifier was used for nonce generation.
48
+ * We don't need to use the protocol nullifier if a non-revertible nullifier is emitted.
46
49
  */
47
- private usedProtocolNullifierForNonces = true;
50
+ private usedProtocolNullifierForNonces: boolean | undefined;
48
51
 
49
52
  constructor(private readonly protocolNullifier: Fr) {}
50
53
 
@@ -60,17 +63,18 @@ export class ExecutionNoteCache {
60
63
  }
61
64
  this.inRevertiblePhase = true;
62
65
  this.minRevertibleSideEffectCounter = minRevertibleSideEffectCounter;
63
- let nonceGenerator = this.protocolNullifier;
64
- const nullifiers = this.getAllNullifiers();
65
- if (nullifiers.length > 0) {
66
- nonceGenerator = new Fr(nullifiers[0]);
67
- this.usedProtocolNullifierForNonces = false;
68
- }
66
+
67
+ const nullifiers = this.getEmittedNullifiers();
68
+ // If there are no nullifiers emitted by private calls so far, we use the protocol nullifier as the nonce generator.
69
+ // Note: There could still be nullifiers emitted after the counter is set, but those nullifiers are revertible, so
70
+ // we don't want to use them as the nonce generator.
71
+ this.usedProtocolNullifierForNonces = nullifiers.length === 0;
72
+ const nonceGenerator = this.usedProtocolNullifierForNonces ? this.protocolNullifier : new Fr(nullifiers[0]);
69
73
 
70
74
  // The existing pending notes are all non-revertible.
71
75
  // They cannot be squashed by nullifiers emitted after minRevertibleSideEffectCounter is set.
72
76
  // Their indexes in the tx are known at this point and won't change. So we can assign a nonce to each one of them.
73
- // The nonces will be used to create the "complete" nullifier.
77
+ // The nonces will be used to create the "unique" note hashes.
74
78
  const updatedNotes = await Promise.all(
75
79
  this.notes.map(async ({ note, counter }, i) => {
76
80
  const noteNonce = await computeNoteHashNonce(nonceGenerator, i);
@@ -99,15 +103,11 @@ export class ExecutionNoteCache {
99
103
  }
100
104
 
101
105
  public finish() {
102
- // If we never entered the revertible phase, we need to use the protocol nullifier to compute the nonces for the
103
- // notes if no nullifiers have been emitted.
106
+ // If we never entered the revertible phase, and there are no nullifiers emitted, we need to use the protocol
107
+ // nullifier as the nonce generator.
104
108
  if (!this.inRevertiblePhase) {
105
- this.usedProtocolNullifierForNonces = this.getAllNullifiers().length === 0;
109
+ this.usedProtocolNullifierForNonces = this.getEmittedNullifiers().length === 0;
106
110
  }
107
- // If we entered the revertible phase, the nonce generator was decided based on wether or not a nullifier was emitted before entering.
108
- return {
109
- usedProtocolNullifierForNonces: this.usedProtocolNullifierForNonces,
110
- };
111
111
  }
112
112
 
113
113
  /**
@@ -150,11 +150,11 @@ export class ExecutionNoteCache {
150
150
 
151
151
  // If the note is non revertible and the nullifier was emitted in the revertible phase, both the note hash and the nullifier will be emitted
152
152
  if (this.inRevertiblePhase && note.counter < this.minRevertibleSideEffectCounter) {
153
- this.recordNullifier(contractAddress, siloedNullifier);
153
+ this.#recordNullifier(contractAddress, siloedNullifier);
154
154
  }
155
155
  } else {
156
156
  // If the note being nullified comes from a previous tx the nullifier will be emitted.
157
- this.recordNullifier(contractAddress, siloedNullifier);
157
+ this.#recordNullifier(contractAddress, siloedNullifier);
158
158
  }
159
159
  return nullifiedNoteHashCounter;
160
160
  }
@@ -166,18 +166,22 @@ export class ExecutionNoteCache {
166
166
  */
167
167
  public async nullifierCreated(contractAddress: AztecAddress, innerNullifier: Fr) {
168
168
  const siloedNullifier = (await siloNullifier(contractAddress, innerNullifier)).toBigInt();
169
- this.recordNullifier(contractAddress, siloedNullifier);
169
+ this.#recordNullifier(contractAddress, siloedNullifier);
170
170
  }
171
171
 
172
172
  /**
173
173
  * Return notes created up to current point in execution.
174
174
  * If a nullifier for a note in this list is emitted, the note will be deleted.
175
175
  * @param contractAddress - Contract address of the notes.
176
+ * @param owner - Owner of the notes. If undefined, returns all notes regardless of owner.
176
177
  * @param storageSlot - Storage slot of the notes.
177
178
  **/
178
- public getNotes(contractAddress: AztecAddress, storageSlot: Fr) {
179
+ public getNotes(contractAddress: AztecAddress, owner: AztecAddress | undefined, storageSlot: Fr) {
179
180
  const notes = this.noteMap.get(contractAddress.toBigInt()) ?? [];
180
- return notes.filter(n => n.note.storageSlot.equals(storageSlot)).map(n => n.note);
181
+ return notes
182
+ .filter(n => owner === undefined || n.note.owner.equals(owner))
183
+ .filter(n => n.note.storageSlot.equals(storageSlot))
184
+ .map(n => n.note);
181
185
  }
182
186
 
183
187
  /**
@@ -211,11 +215,30 @@ export class ExecutionNoteCache {
211
215
  return this.notes;
212
216
  }
213
217
 
218
+ /**
219
+ * @returns All nullifiers emitted by private calls in this transaction.
220
+ */
221
+ getEmittedNullifiers(): Fr[] {
222
+ return [...this.emittedNullifiers].map(n => new Fr(n));
223
+ }
224
+
225
+ /**
226
+ * @returns All nullifiers emitted by private calls in this transaction. If the protocol nullifier was used as the
227
+ * nonce generator, it is injected as the first nullifier.
228
+ */
214
229
  getAllNullifiers(): Fr[] {
215
- return [...this.allNullifiers].map(n => new Fr(n));
230
+ if (this.usedProtocolNullifierForNonces === undefined) {
231
+ throw new Error('usedProtocolNullifierForNonces is not set yet. Call finish() to complete the transaction.');
232
+ }
233
+ const allNullifiers = this.getEmittedNullifiers();
234
+ return [...(this.usedProtocolNullifierForNonces ? [this.protocolNullifier] : []), ...allNullifiers];
235
+ }
236
+
237
+ getNonceGenerator(): Fr {
238
+ return this.getAllNullifiers()[0];
216
239
  }
217
240
 
218
- recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint) {
241
+ #recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint) {
219
242
  const nullifiers = this.getNullifiers(contractAddress);
220
243
 
221
244
  if (nullifiers.has(siloedNullifier)) {
@@ -224,6 +247,6 @@ export class ExecutionNoteCache {
224
247
 
225
248
  nullifiers.add(siloedNullifier);
226
249
  this.nullifierMap.set(contractAddress.toBigInt(), nullifiers);
227
- this.allNullifiers.add(siloedNullifier);
250
+ this.emittedNullifiers.add(siloedNullifier);
228
251
  }
229
252
  }
@@ -1,18 +1,18 @@
1
- import { DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
1
+ import { ExtendedDirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
2
2
 
3
3
  /**
4
- * A map that stores the tagging index for a given directional app tagging secret.
4
+ * A map that stores the tagging index for a given extended directional app tagging secret.
5
5
  * Note: The directional app tagging secret is unique for a (sender, recipient, contract) tuple while the direction
6
6
  * of sender -> recipient matters.
7
7
  */
8
8
  export class ExecutionTaggingIndexCache {
9
9
  private taggingIndexMap: Map<string, number> = new Map();
10
10
 
11
- public getLastUsedIndex(secret: DirectionalAppTaggingSecret): number | undefined {
11
+ public getLastUsedIndex(secret: ExtendedDirectionalAppTaggingSecret): number | undefined {
12
12
  return this.taggingIndexMap.get(secret.toString());
13
13
  }
14
14
 
15
- public setLastUsedIndex(secret: DirectionalAppTaggingSecret, index: number) {
15
+ public setLastUsedIndex(secret: ExtendedDirectionalAppTaggingSecret, index: number) {
16
16
  const currentValue = this.taggingIndexMap.get(secret.toString());
17
17
  if (currentValue !== undefined && currentValue !== index - 1) {
18
18
  throw new Error(`Invalid tagging index update. Current value: ${currentValue}, new value: ${index}`);
@@ -21,11 +21,11 @@ export class ExecutionTaggingIndexCache {
21
21
  }
22
22
 
23
23
  /**
24
- * Returns the pre tags that were used in this execution (and that need to be stored in the db).
24
+ * Returns the pre-tags that were used in this execution (and that need to be stored in the db).
25
25
  */
26
26
  public getUsedPreTags(): PreTag[] {
27
27
  return Array.from(this.taggingIndexMap.entries()).map(([secret, index]) => ({
28
- secret: DirectionalAppTaggingSecret.fromString(secret),
28
+ extendedSecret: ExtendedDirectionalAppTaggingSecret.fromString(secret),
29
29
  index,
30
30
  }));
31
31
  }
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { HashedValues } from '@aztec/stdlib/tx';
3
3
 
4
4
  /**
@@ -9,5 +9,5 @@ export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
9
9
  export { Oracle } from './oracle/oracle.js';
10
10
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
11
11
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
12
- export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
12
+ export { packAsHintedNote } from './oracle/note_packing_utils.js';
13
13
  export { UtilityContext } from './noir-structs/utility_context.js';
@@ -1,20 +1,21 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { FieldReader } from '@aztec/foundation/serialize';
3
3
  import { EventSelector } from '@aztec/stdlib/abi';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  import { TxHash } from '@aztec/stdlib/tx';
6
6
 
7
7
  // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
8
- const MAX_EVENT_SERIALIZED_LEN = 12;
8
+ const MAX_EVENT_SERIALIZED_LEN = 10;
9
9
 
10
10
  /**
11
- * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
11
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
12
12
  * expects for values of this type to be stored in a `CapsuleArray`.
13
13
  */
14
14
  export class EventValidationRequest {
15
15
  constructor(
16
16
  public contractAddress: AztecAddress,
17
17
  public eventTypeId: EventSelector,
18
+ public randomness: Fr,
18
19
  public serializedEvent: Fr[],
19
20
  public eventCommitment: Fr,
20
21
  public txHash: TxHash,
@@ -27,6 +28,8 @@ export class EventValidationRequest {
27
28
  const contractAddress = AztecAddress.fromField(reader.readField());
28
29
  const eventTypeId = EventSelector.fromField(reader.readField());
29
30
 
31
+ const randomness = reader.readField();
32
+
30
33
  const eventStorage = reader.readFieldArray(MAX_EVENT_SERIALIZED_LEN);
31
34
  const eventLen = reader.readField().toNumber();
32
35
  const serializedEvent = eventStorage.slice(0, eventLen);
@@ -38,6 +41,7 @@ export class EventValidationRequest {
38
41
  return new EventValidationRequest(
39
42
  contractAddress,
40
43
  eventTypeId,
44
+ randomness,
41
45
  serializedEvent,
42
46
  eventCommitment,
43
47
  txHash,
@@ -1,6 +1,7 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { FieldReader } from '@aztec/foundation/serialize';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import { Tag } from '@aztec/stdlib/logs';
4
5
 
5
6
  /**
6
7
  * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle expects values of this
@@ -9,19 +10,19 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
9
10
  export class LogRetrievalRequest {
10
11
  constructor(
11
12
  public contractAddress: AztecAddress,
12
- public unsiloedTag: Fr,
13
+ public tag: Tag,
13
14
  ) {}
14
15
 
15
16
  toFields(): Fr[] {
16
- return [this.contractAddress.toField(), this.unsiloedTag];
17
+ return [this.contractAddress.toField(), this.tag.value];
17
18
  }
18
19
 
19
20
  static fromFields(fields: Fr[] | FieldReader): LogRetrievalRequest {
20
21
  const reader = FieldReader.asReader(fields);
21
22
 
22
23
  const contractAddress = AztecAddress.fromField(reader.readField());
23
- const unsiloedTag = reader.readField();
24
+ const tag = new Tag(reader.readField());
24
25
 
25
- return new LogRetrievalRequest(contractAddress, unsiloedTag);
26
+ return new LogRetrievalRequest(contractAddress, tag);
26
27
  }
27
28
  }
@@ -1,6 +1,6 @@
1
1
  import { MAX_NOTE_HASHES_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN } from '@aztec/constants';
2
2
  import { range } from '@aztec/foundation/array';
3
- import { Fr } from '@aztec/foundation/fields';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import type { TxHash } from '@aztec/stdlib/tx';
5
5
 
6
6
  import { MAX_NOTE_PACKED_LEN } from './note_validation_request.js';
@@ -1,18 +1,19 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { FieldReader } from '@aztec/foundation/serialize';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { TxHash } from '@aztec/stdlib/tx';
5
5
 
6
6
  // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
7
- export const MAX_NOTE_PACKED_LEN = 11;
7
+ export const MAX_NOTE_PACKED_LEN = 8;
8
8
 
9
9
  /**
10
- * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
10
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
11
11
  * expects for values of this type to be stored in a `CapsuleArray`.
12
12
  */
13
13
  export class NoteValidationRequest {
14
14
  constructor(
15
15
  public contractAddress: AztecAddress,
16
+ public owner: AztecAddress,
16
17
  public storageSlot: Fr,
17
18
  public randomness: Fr,
18
19
  public noteNonce: Fr,
@@ -27,6 +28,7 @@ export class NoteValidationRequest {
27
28
  const reader = FieldReader.asReader(fields);
28
29
 
29
30
  const contractAddress = AztecAddress.fromField(reader.readField());
31
+ const owner = AztecAddress.fromField(reader.readField());
30
32
  const storageSlot = reader.readField();
31
33
  const randomness = reader.readField();
32
34
  const noteNonce = reader.readField();
@@ -48,6 +50,7 @@ export class NoteValidationRequest {
48
50
 
49
51
  return new NoteValidationRequest(
50
52
  contractAddress,
53
+ owner,
51
54
  storageSlot,
52
55
  randomness,
53
56
  noteNonce,
@@ -1,42 +1,23 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import type { FieldsOf } from '@aztec/foundation/types';
1
+ import { toACVMField } from '@aztec/simulator/client';
3
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import type { UInt64 } from '@aztec/stdlib/types';
3
+ import type { BlockHeader } from '@aztec/stdlib/tx';
5
4
 
6
5
  /**
7
6
  * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
8
7
  */
9
8
  export class UtilityContext {
10
- private constructor(
11
- public readonly blockNumber: number,
12
- public readonly timestamp: UInt64,
9
+ constructor(
10
+ public readonly blockHeader: BlockHeader,
13
11
  public readonly contractAddress: AztecAddress,
14
- public readonly version: Fr,
15
- public readonly chainId: Fr,
16
12
  ) {}
17
13
 
18
- static from(fields: FieldsOf<UtilityContext>) {
19
- return new UtilityContext(
20
- fields.blockNumber,
21
- fields.timestamp,
22
- fields.contractAddress,
23
- fields.version,
24
- fields.chainId,
25
- );
26
- }
27
-
28
14
  /**
29
15
  * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
30
16
  * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
31
17
  */
32
18
  public toNoirRepresentation(): (string | string[])[] {
33
19
  // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
34
- return [
35
- new Fr(this.blockNumber).toString() as string,
36
- new Fr(this.timestamp).toString() as string,
37
- this.contractAddress.toString() as string,
38
- this.version.toString() as string,
39
- this.chainId.toString() as string,
40
- ];
20
+ const blockHeaderFields = this.blockHeader.toFields().map(toACVMField);
21
+ return [...blockHeaderFields, this.contractAddress.toString() as string];
41
22
  }
42
23
  }
@@ -1,15 +1,19 @@
1
- import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
2
- import { Fr, Point } from '@aztec/foundation/fields';
1
+ import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
2
+ import type { BlockNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { Point } from '@aztec/foundation/curves/grumpkin';
5
+ import { MembershipWitness } from '@aztec/foundation/trees';
3
6
  import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
4
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
- import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
8
+ import { BlockHash } from '@aztec/stdlib/block';
9
+ import type { ContractInstance, PartialAddress } from '@aztec/stdlib/contract';
6
10
  import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
7
- import type { ContractClassLog } from '@aztec/stdlib/logs';
11
+ import type { PublicKeys } from '@aztec/stdlib/keys';
12
+ import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
8
13
  import type { Note, NoteStatus } from '@aztec/stdlib/note';
9
- import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
14
+ import { type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
10
15
  import type { BlockHeader } from '@aztec/stdlib/tx';
11
16
 
12
- import type { Tag } from '../../tagging/tag.js';
13
17
  import type { UtilityContext } from '../noir-structs/utility_context.js';
14
18
  import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
15
19
 
@@ -21,6 +25,8 @@ export interface NoteData {
21
25
  note: Note;
22
26
  /** The address of the contract that owns the note. */
23
27
  contractAddress: AztecAddress;
28
+ /** The owner of the note. */
29
+ owner: AztecAddress;
24
30
  /** The storage slot of the note. */
25
31
  storageSlot: Fr;
26
32
  /** The randomness injected to the note */
@@ -29,10 +35,10 @@ export interface NoteData {
29
35
  noteNonce: Fr;
30
36
  /** A hash of the note as it gets stored in the note hash tree. */
31
37
  noteHash: Fr;
38
+ /** True if the note is pending, false if settled. */
39
+ isPending: boolean;
32
40
  /** The corresponding nullifier of the note. Undefined for pending notes. */
33
41
  siloedNullifier?: Fr;
34
- /** The note's leaf index in the note hash tree. Undefined for pending notes. */
35
- index?: bigint;
36
42
  }
37
43
 
38
44
  // These interfaces contain the list of oracles required by aztec-nr in order to simulate and execute transactions, i.e.
@@ -47,9 +53,9 @@ export interface NoteData {
47
53
  export interface IMiscOracle {
48
54
  isMisc: true;
49
55
 
50
- utilityGetRandomField(): Fr;
51
- utilityAssertCompatibleOracleVersion(version: number): void;
52
- utilityDebugLog(level: number, message: string, fields: Fr[]): void;
56
+ getRandomField(): Fr;
57
+ assertCompatibleOracleVersion(version: number): void;
58
+ log(level: number, message: string, fields: Fr[]): Promise<void>;
53
59
  }
54
60
 
55
61
  /**
@@ -59,23 +65,33 @@ export interface IMiscOracle {
59
65
  export interface IUtilityExecutionOracle {
60
66
  isUtility: true;
61
67
 
62
- utilityGetUtilityContext(): Promise<UtilityContext>;
63
- utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
64
- utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
65
- utilityGetMembershipWitness(blockNumber: number, treeId: MerkleTreeId, leafValue: Fr): Promise<Fr[] | undefined>;
66
- utilityGetNullifierMembershipWitness(
67
- blockNumber: number,
68
+ getUtilityContext(): UtilityContext;
69
+ getKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
70
+ getContractInstance(address: AztecAddress): Promise<ContractInstance>;
71
+ getNoteHashMembershipWitness(
72
+ anchorBlockHash: BlockHash,
73
+ noteHash: Fr,
74
+ ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
75
+ getBlockHashMembershipWitness(
76
+ anchorBlockHash: BlockHash,
77
+ blockHash: BlockHash,
78
+ ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
79
+ getNullifierMembershipWitness(
80
+ anchorBlockHash: BlockHash,
68
81
  nullifier: Fr,
69
82
  ): Promise<NullifierMembershipWitness | undefined>;
70
- utilityGetPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
71
- utilityGetLowNullifierMembershipWitness(
72
- blockNumber: number,
83
+ getPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
84
+ getLowNullifierMembershipWitness(
85
+ anchorBlockHash: BlockHash,
73
86
  nullifier: Fr,
74
87
  ): Promise<NullifierMembershipWitness | undefined>;
75
- utilityGetBlockHeader(blockNumber: number): Promise<BlockHeader | undefined>;
76
- utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
77
- utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
78
- utilityGetNotes(
88
+ getBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
89
+ tryGetPublicKeysAndPartialAddress(
90
+ account: AztecAddress,
91
+ ): Promise<{ publicKeys: PublicKeys; partialAddress: PartialAddress } | undefined>;
92
+ getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
93
+ getNotes(
94
+ owner: AztecAddress | undefined,
79
95
  storageSlot: Fr,
80
96
  numSelects: number,
81
97
  selectByIndexes: number[],
@@ -91,35 +107,35 @@ export interface IUtilityExecutionOracle {
91
107
  offset: number,
92
108
  status: NoteStatus,
93
109
  ): Promise<NoteData[]>;
94
- utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean>;
95
- utilityGetL1ToL2MembershipWitness(
110
+ checkNullifierExists(innerNullifier: Fr): Promise<boolean>;
111
+ getL1ToL2MembershipWitness(
96
112
  contractAddress: AztecAddress,
97
113
  messageHash: Fr,
98
114
  secret: Fr,
99
115
  ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
100
- utilityStorageRead(
116
+ storageRead(
117
+ anchorBlockHash: BlockHash,
101
118
  contractAddress: AztecAddress,
102
119
  startStorageSlot: Fr,
103
- blockNumber: number,
104
120
  numberOfElements: number,
105
121
  ): Promise<Fr[]>;
106
- utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
107
- utilityValidateEnqueuedNotesAndEvents(
122
+ fetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
123
+ validateAndStoreEnqueuedNotesAndEvents(
108
124
  contractAddress: AztecAddress,
109
125
  noteValidationRequestsArrayBaseSlot: Fr,
110
126
  eventValidationRequestsArrayBaseSlot: Fr,
111
127
  ): Promise<void>;
112
- utilityBulkRetrieveLogs(
128
+ bulkRetrieveLogs(
113
129
  contractAddress: AztecAddress,
114
130
  logRetrievalRequestsArrayBaseSlot: Fr,
115
131
  logRetrievalResponsesArrayBaseSlot: Fr,
116
132
  ): Promise<void>;
117
- utilityStoreCapsule(contractAddress: AztecAddress, key: Fr, capsule: Fr[]): Promise<void>;
118
- utilityLoadCapsule(contractAddress: AztecAddress, key: Fr): Promise<Fr[] | null>;
119
- utilityDeleteCapsule(contractAddress: AztecAddress, key: Fr): Promise<void>;
120
- utilityCopyCapsule(contractAddress: AztecAddress, srcKey: Fr, dstKey: Fr, numEntries: number): Promise<void>;
121
- utilityAes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
122
- utilityGetSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
133
+ storeCapsule(contractAddress: AztecAddress, key: Fr, capsule: Fr[]): Promise<void>;
134
+ loadCapsule(contractAddress: AztecAddress, key: Fr): Promise<Fr[] | null>;
135
+ deleteCapsule(contractAddress: AztecAddress, key: Fr): Promise<void>;
136
+ copyCapsule(contractAddress: AztecAddress, srcKey: Fr, dstKey: Fr, numEntries: number): Promise<void>;
137
+ aes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
138
+ getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
123
139
  }
124
140
 
125
141
  /**
@@ -129,9 +145,10 @@ export interface IUtilityExecutionOracle {
129
145
  export interface IPrivateExecutionOracle {
130
146
  isPrivate: true;
131
147
 
132
- privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
133
- privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
134
- privateNotifyCreatedNote(
148
+ storeInExecutionCache(values: Fr[], hash: Fr): void;
149
+ loadFromExecutionCache(hash: Fr): Promise<Fr[]>;
150
+ notifyCreatedNote(
151
+ owner: AztecAddress,
135
152
  storageSlot: Fr,
136
153
  randomness: Fr,
137
154
  noteTypeId: NoteSelector,
@@ -139,32 +156,33 @@ export interface IPrivateExecutionOracle {
139
156
  noteHash: Fr,
140
157
  counter: number,
141
158
  ): void;
142
- privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
143
- privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
144
- privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
145
- privateCallPrivateFunction(
159
+ notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
160
+ notifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
161
+ isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
162
+ notifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
163
+ callPrivateFunction(
146
164
  targetContractAddress: AztecAddress,
147
165
  functionSelector: FunctionSelector,
148
166
  argsHash: Fr,
149
167
  sideEffectCounter: number,
150
168
  isStaticCall: boolean,
151
169
  ): Promise<{ endSideEffectCounter: Fr; returnsHash: Fr }>;
152
- privateNotifyEnqueuedPublicFunctionCall(
170
+ notifyEnqueuedPublicFunctionCall(
153
171
  targetContractAddress: AztecAddress,
154
172
  calldataHash: Fr,
155
173
  sideEffectCounter: number,
156
174
  isStaticCall: boolean,
157
175
  ): Promise<void>;
158
- privateNotifySetPublicTeardownFunctionCall(
176
+ notifySetPublicTeardownFunctionCall(
159
177
  targetContractAddress: AztecAddress,
160
178
  calldataHash: Fr,
161
179
  sideEffectCounter: number,
162
180
  isStaticCall: boolean,
163
181
  ): Promise<void>;
164
- privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
165
- privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean>;
166
- privateGetSenderForTags(): Promise<AztecAddress | undefined>;
167
- privateSetSenderForTags(senderForTags: AztecAddress): Promise<void>;
168
- privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
169
- utilityEmitOffchainEffect(data: Fr[]): Promise<void>;
182
+ notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
183
+ isSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean>;
184
+ getSenderForTags(): Promise<AztecAddress | undefined>;
185
+ setSenderForTags(senderForTags: AztecAddress): Promise<void>;
186
+ getNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
187
+ emitOffchainEffect(data: Fr[]): Promise<void>;
170
188
  }
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { SiblingPath } from '@aztec/foundation/trees';
3
3
 
4
4
  export class MessageLoadOracleInputs<N extends number> {