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

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 (434) 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 +7 -13
  13. package/dest/config/index.d.ts.map +1 -1
  14. package/dest/config/index.js +25 -14
  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 +84 -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 +251 -85
  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 +7 -7
  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 +19 -11
  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 +3 -2
  32. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/index.js +2 -1
  34. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +6 -6
  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 +11 -7
  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 +2 -4
  43. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts +16 -0
  44. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts.map +1 -0
  45. package/dest/contract_function_simulator/noir-structs/message_tx_context.js +57 -0
  46. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +7 -7
  47. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +14 -7
  49. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
  50. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
  52. package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
  53. package/dest/contract_function_simulator/oracle/interfaces.d.ts +64 -49
  54. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  55. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +9 -0
  56. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -0
  57. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +42 -0
  58. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
  59. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  60. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  61. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
  62. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  63. package/dest/contract_function_simulator/oracle/note_packing_utils.js +16 -11
  64. package/dest/contract_function_simulator/oracle/oracle.d.ts +45 -41
  65. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  66. package/dest/contract_function_simulator/oracle/oracle.js +226 -117
  67. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
  68. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/oracle/private_execution.js +6 -40
  70. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +67 -88
  71. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  72. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +140 -118
  73. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +149 -56
  74. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  75. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +290 -104
  76. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  77. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  78. package/dest/contract_function_simulator/pick_notes.js +1 -1
  79. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  80. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  81. package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
  82. package/dest/contract_logging.d.ts +22 -0
  83. package/dest/contract_logging.d.ts.map +1 -0
  84. package/dest/contract_logging.js +23 -0
  85. package/dest/contract_sync/contract_sync_service.d.ts +45 -0
  86. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  87. package/dest/contract_sync/contract_sync_service.js +114 -0
  88. package/dest/contract_sync/helpers.d.ts +29 -0
  89. package/dest/contract_sync/helpers.d.ts.map +1 -0
  90. package/dest/contract_sync/helpers.js +55 -0
  91. package/dest/debug/pxe_debug_utils.d.ts +45 -0
  92. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  93. package/dest/debug/pxe_debug_utils.js +48 -0
  94. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  95. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  96. package/dest/entrypoints/client/bundle/index.js +3 -1
  97. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  98. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  99. package/dest/entrypoints/client/bundle/utils.js +33 -10
  100. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  101. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  102. package/dest/entrypoints/client/lazy/index.js +3 -1
  103. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  104. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  105. package/dest/entrypoints/client/lazy/utils.js +34 -11
  106. package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
  107. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  108. package/dest/entrypoints/server/index.d.ts +6 -2
  109. package/dest/entrypoints/server/index.d.ts.map +1 -1
  110. package/dest/entrypoints/server/index.js +5 -1
  111. package/dest/entrypoints/server/utils.d.ts +1 -1
  112. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  113. package/dest/entrypoints/server/utils.js +40 -28
  114. package/dest/error_enriching.d.ts +4 -4
  115. package/dest/error_enriching.d.ts.map +1 -1
  116. package/dest/error_enriching.js +6 -6
  117. package/dest/events/event_service.d.ts +15 -0
  118. package/dest/events/event_service.d.ts.map +1 -0
  119. package/dest/events/event_service.js +44 -0
  120. package/dest/events/index.d.ts +2 -0
  121. package/dest/events/index.d.ts.map +1 -0
  122. package/dest/events/index.js +1 -0
  123. package/dest/events/private_event_filter_validator.d.ts +9 -0
  124. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  125. package/dest/events/private_event_filter_validator.js +38 -0
  126. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  127. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  128. package/dest/job_coordinator/job_coordinator.js +94 -0
  129. package/dest/logs/log_service.d.ts +29 -0
  130. package/dest/logs/log_service.d.ts.map +1 -0
  131. package/dest/logs/log_service.js +118 -0
  132. package/dest/messages/message_context_service.d.ts +17 -0
  133. package/dest/messages/message_context_service.d.ts.map +1 -0
  134. package/dest/messages/message_context_service.js +36 -0
  135. package/dest/notes/index.d.ts +2 -0
  136. package/dest/notes/index.d.ts.map +1 -0
  137. package/dest/notes/index.js +1 -0
  138. package/dest/notes/note_service.d.ts +49 -0
  139. package/dest/notes/note_service.d.ts.map +1 -0
  140. package/dest/notes/note_service.js +148 -0
  141. package/dest/notes_filter.d.ts +25 -0
  142. package/dest/notes_filter.d.ts.map +1 -0
  143. package/dest/notes_filter.js +4 -0
  144. package/dest/oracle_version.d.ts +3 -3
  145. package/dest/oracle_version.d.ts.map +1 -1
  146. package/dest/oracle_version.js +5 -4
  147. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  148. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  149. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  150. package/dest/private_kernel/hints/index.d.ts +3 -3
  151. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  152. package/dest/private_kernel/hints/index.js +2 -2
  153. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  154. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  155. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +144 -77
  156. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  157. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  158. package/dest/private_kernel/hints/test_utils.js +203 -0
  159. package/dest/private_kernel/index.d.ts +1 -1
  160. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  161. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  162. package/dest/private_kernel/private_kernel_execution_prover.js +33 -25
  163. package/dest/private_kernel/private_kernel_oracle.d.ts +26 -25
  164. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  165. package/dest/private_kernel/private_kernel_oracle.js +94 -2
  166. package/dest/pxe.d.ts +124 -103
  167. package/dest/pxe.d.ts.map +1 -1
  168. package/dest/pxe.js +288 -285
  169. package/dest/storage/address_store/address_store.d.ts +11 -0
  170. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  171. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  172. package/dest/storage/address_store/index.d.ts +2 -0
  173. package/dest/storage/address_store/index.d.ts.map +1 -0
  174. package/dest/storage/address_store/index.js +1 -0
  175. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
  176. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  177. package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
  178. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  179. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  180. package/dest/storage/anchor_block_store/index.js +1 -0
  181. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  182. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  183. package/dest/storage/capsule_store/capsule_store.js +253 -0
  184. package/dest/storage/capsule_store/index.d.ts +2 -0
  185. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  186. package/dest/storage/capsule_store/index.js +1 -0
  187. package/dest/storage/contract_store/contract_store.d.ts +93 -0
  188. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  189. package/dest/storage/contract_store/contract_store.js +309 -0
  190. package/dest/storage/contract_store/index.d.ts +2 -0
  191. package/dest/storage/contract_store/index.d.ts.map +1 -0
  192. package/dest/storage/contract_store/index.js +1 -0
  193. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  194. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  195. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  196. package/dest/storage/index.d.ts +8 -8
  197. package/dest/storage/index.d.ts.map +1 -1
  198. package/dest/storage/index.js +7 -7
  199. package/dest/storage/metadata.d.ts +2 -2
  200. package/dest/storage/metadata.js +1 -1
  201. package/dest/storage/note_store/index.d.ts +3 -0
  202. package/dest/storage/note_store/index.d.ts.map +1 -0
  203. package/dest/storage/note_store/index.js +2 -0
  204. package/dest/storage/note_store/note_store.d.ts +83 -0
  205. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  206. package/dest/storage/note_store/note_store.js +343 -0
  207. package/dest/storage/note_store/stored_note.d.ts +16 -0
  208. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  209. package/dest/storage/note_store/stored_note.js +43 -0
  210. package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
  211. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  212. package/dest/storage/private_event_store/private_event_store.js +273 -0
  213. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  214. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  215. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  216. package/dest/storage/tagging_store/index.d.ts +4 -0
  217. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  218. package/dest/storage/tagging_store/index.js +3 -0
  219. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  220. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  221. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  222. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  223. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  224. package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
  225. package/dest/storage/tagging_store/sender_tagging_store.d.ts +78 -0
  226. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  227. package/dest/storage/tagging_store/sender_tagging_store.js +374 -0
  228. package/dest/tagging/constants.d.ts +2 -2
  229. package/dest/tagging/constants.d.ts.map +1 -1
  230. package/dest/tagging/constants.js +10 -2
  231. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  232. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  233. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  234. package/dest/tagging/index.d.ts +17 -7
  235. package/dest/tagging/index.d.ts.map +1 -1
  236. package/dest/tagging/index.js +15 -5
  237. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  238. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  239. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  240. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  241. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  242. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  243. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  244. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  245. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +33 -0
  246. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +17 -0
  247. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  248. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +80 -0
  249. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +12 -0
  250. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  251. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +39 -0
  252. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -0
  253. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  254. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +72 -0
  255. package/package.json +29 -19
  256. package/src/access_scopes.ts +9 -0
  257. package/src/bin/check_oracle_version.ts +131 -20
  258. package/src/block_synchronizer/block_synchronizer.ts +178 -0
  259. package/src/block_synchronizer/index.ts +1 -0
  260. package/src/config/index.ts +25 -26
  261. package/src/config/package_info.ts +1 -1
  262. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  263. package/src/contract_function_simulator/contract_function_simulator.ts +431 -119
  264. package/src/contract_function_simulator/execution_note_cache.ts +58 -28
  265. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -14
  266. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  267. package/src/contract_function_simulator/index.ts +2 -1
  268. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +14 -7
  269. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
  270. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +3 -6
  271. package/src/contract_function_simulator/noir-structs/message_tx_context.ts +55 -0
  272. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +16 -7
  273. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
  274. package/src/contract_function_simulator/oracle/interfaces.ts +86 -61
  275. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +135 -0
  276. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  277. package/src/contract_function_simulator/oracle/note_packing_utils.ts +30 -14
  278. package/src/contract_function_simulator/oracle/oracle.ts +258 -158
  279. package/src/contract_function_simulator/oracle/private_execution.ts +6 -72
  280. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +187 -167
  281. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +457 -115
  282. package/src/contract_function_simulator/pick_notes.ts +1 -1
  283. package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
  284. package/src/contract_logging.ts +39 -0
  285. package/src/contract_sync/contract_sync_service.ts +181 -0
  286. package/src/contract_sync/helpers.ts +98 -0
  287. package/src/debug/pxe_debug_utils.ts +93 -0
  288. package/src/entrypoints/client/bundle/index.ts +3 -1
  289. package/src/entrypoints/client/bundle/utils.ts +25 -18
  290. package/src/entrypoints/client/lazy/index.ts +3 -1
  291. package/src/entrypoints/client/lazy/utils.ts +26 -19
  292. package/src/entrypoints/pxe_creation_options.ts +6 -2
  293. package/src/entrypoints/server/index.ts +5 -1
  294. package/src/entrypoints/server/utils.ts +34 -56
  295. package/src/error_enriching.ts +7 -15
  296. package/src/events/event_service.ts +71 -0
  297. package/src/events/index.ts +1 -0
  298. package/src/events/private_event_filter_validator.ts +46 -0
  299. package/src/job_coordinator/job_coordinator.ts +150 -0
  300. package/src/logs/log_service.ts +213 -0
  301. package/src/messages/message_context_service.ts +45 -0
  302. package/src/notes/index.ts +1 -0
  303. package/src/notes/note_service.ts +196 -0
  304. package/src/notes_filter.ts +26 -0
  305. package/src/oracle_version.ts +5 -4
  306. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  307. package/src/private_kernel/hints/index.ts +2 -2
  308. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +199 -145
  309. package/src/private_kernel/hints/test_utils.ts +325 -0
  310. package/src/private_kernel/private_kernel_execution_prover.ts +38 -34
  311. package/src/private_kernel/private_kernel_oracle.ts +118 -37
  312. package/src/pxe.ts +450 -389
  313. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  314. package/src/storage/address_store/index.ts +1 -0
  315. package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
  316. package/src/storage/anchor_block_store/index.ts +1 -0
  317. package/src/storage/capsule_store/capsule_store.ts +315 -0
  318. package/src/storage/capsule_store/index.ts +1 -0
  319. package/src/storage/contract_store/contract_store.ts +429 -0
  320. package/src/storage/contract_store/index.ts +1 -0
  321. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  322. package/src/storage/index.ts +7 -7
  323. package/src/storage/metadata.ts +1 -1
  324. package/src/storage/note_store/index.ts +2 -0
  325. package/src/storage/note_store/note_store.ts +418 -0
  326. package/src/storage/note_store/stored_note.ts +48 -0
  327. package/src/storage/private_event_store/private_event_store.ts +384 -0
  328. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  329. package/src/storage/tagging_store/index.ts +3 -0
  330. package/src/storage/tagging_store/recipient_tagging_store.ts +143 -0
  331. package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
  332. package/src/storage/tagging_store/sender_tagging_store.ts +476 -0
  333. package/src/tagging/constants.ts +10 -2
  334. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  335. package/src/tagging/index.ts +19 -6
  336. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +140 -0
  337. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  338. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +44 -0
  339. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +112 -0
  340. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +51 -0
  341. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +85 -0
  342. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
  343. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  344. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  345. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  346. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  347. package/dest/contract_function_simulator/proxied_node.js +0 -27
  348. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
  349. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  350. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
  351. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  352. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  353. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  354. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  355. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  356. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  357. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  358. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  359. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  360. package/dest/storage/address_data_provider/index.d.ts +0 -2
  361. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  362. package/dest/storage/address_data_provider/index.js +0 -1
  363. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  364. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  365. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  366. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  367. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  368. package/dest/storage/capsule_data_provider/index.js +0 -1
  369. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
  370. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  371. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -205
  372. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  373. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  374. package/dest/storage/contract_data_provider/index.js +0 -1
  375. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  376. package/dest/storage/note_data_provider/index.d.ts +0 -3
  377. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  378. package/dest/storage/note_data_provider/index.js +0 -2
  379. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  380. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  381. package/dest/storage/note_data_provider/note_dao.js +0 -102
  382. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  383. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  384. package/dest/storage/note_data_provider/note_data_provider.js +0 -308
  385. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
  386. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  387. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
  388. package/dest/storage/sync_data_provider/index.d.ts +0 -2
  389. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  390. package/dest/storage/sync_data_provider/index.js +0 -1
  391. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
  392. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  393. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  394. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  395. package/dest/storage/tagging_data_provider/index.js +0 -1
  396. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  397. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  398. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  399. package/dest/synchronizer/index.d.ts +0 -2
  400. package/dest/synchronizer/index.d.ts.map +0 -1
  401. package/dest/synchronizer/index.js +0 -1
  402. package/dest/synchronizer/synchronizer.d.ts +0 -35
  403. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  404. package/dest/synchronizer/synchronizer.js +0 -101
  405. package/dest/tagging/siloed_tag.d.ts +0 -14
  406. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  407. package/dest/tagging/siloed_tag.js +0 -20
  408. package/dest/tagging/tag.d.ts +0 -12
  409. package/dest/tagging/tag.d.ts.map +0 -1
  410. package/dest/tagging/tag.js +0 -17
  411. package/dest/tagging/utils.d.ts +0 -18
  412. package/dest/tagging/utils.d.ts.map +0 -1
  413. package/dest/tagging/utils.js +0 -24
  414. package/src/contract_function_simulator/execution_data_provider.ts +0 -343
  415. package/src/contract_function_simulator/proxied_node.ts +0 -33
  416. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
  417. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  418. package/src/storage/address_data_provider/index.ts +0 -1
  419. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  420. package/src/storage/capsule_data_provider/index.ts +0 -1
  421. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
  422. package/src/storage/contract_data_provider/index.ts +0 -1
  423. package/src/storage/note_data_provider/index.ts +0 -2
  424. package/src/storage/note_data_provider/note_dao.ts +0 -154
  425. package/src/storage/note_data_provider/note_data_provider.ts +0 -393
  426. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
  427. package/src/storage/sync_data_provider/index.ts +0 -1
  428. package/src/storage/tagging_data_provider/index.ts +0 -1
  429. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  430. package/src/synchronizer/index.ts +0 -1
  431. package/src/synchronizer/synchronizer.ts +0 -120
  432. package/src/tagging/siloed_tag.ts +0 -22
  433. package/src/tagging/tag.ts +0 -16
  434. 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,21 +32,24 @@ 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 usedTxRequestHashForNonces = true;
50
+ private usedProtocolNullifierForNonces: boolean | undefined;
48
51
 
49
- constructor(private readonly txRequestHash: Fr) {}
52
+ constructor(private readonly protocolNullifier: Fr) {}
50
53
 
51
54
  /**
52
55
  * Enters the revertible phase of the transaction.
@@ -61,17 +64,17 @@ export class ExecutionNoteCache {
61
64
  this.inRevertiblePhase = true;
62
65
  this.minRevertibleSideEffectCounter = minRevertibleSideEffectCounter;
63
66
 
64
- let nonceGenerator = this.txRequestHash;
65
- const nullifiers = this.getAllNullifiers();
66
- if (nullifiers.length > 0) {
67
- nonceGenerator = new Fr(nullifiers[0]);
68
- this.usedTxRequestHashForNonces = false;
69
- }
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]);
70
73
 
71
74
  // The existing pending notes are all non-revertible.
72
75
  // They cannot be squashed by nullifiers emitted after minRevertibleSideEffectCounter is set.
73
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.
74
- // The nonces will be used to create the "complete" nullifier.
77
+ // The nonces will be used to create the "unique" note hashes.
75
78
  const updatedNotes = await Promise.all(
76
79
  this.notes.map(async ({ note, counter }, i) => {
77
80
  const noteNonce = await computeNoteHashNonce(nonceGenerator, i);
@@ -92,15 +95,19 @@ export class ExecutionNoteCache {
92
95
  updatedNotes.forEach(n => this.#addNote(n));
93
96
  }
94
97
 
98
+ public isSideEffectCounterRevertible(sideEffectCounter: number): boolean {
99
+ if (!this.inRevertiblePhase) {
100
+ return false;
101
+ }
102
+ return sideEffectCounter >= this.minRevertibleSideEffectCounter;
103
+ }
104
+
95
105
  public finish() {
96
- // If we never entered the revertible phase, we need to use the tx request hash as a nonce for the 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.
97
108
  if (!this.inRevertiblePhase) {
98
- this.usedTxRequestHashForNonces = this.getAllNullifiers().length === 0;
109
+ this.usedProtocolNullifierForNonces = this.getEmittedNullifiers().length === 0;
99
110
  }
100
- // If we entered the revertible phase, the nonce generator was decided based on wether or not a nullifier was emitted before entering.
101
- return {
102
- usedTxRequestHashForNonces: this.usedTxRequestHashForNonces,
103
- };
104
111
  }
105
112
 
106
113
  /**
@@ -143,11 +150,11 @@ export class ExecutionNoteCache {
143
150
 
144
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
145
152
  if (this.inRevertiblePhase && note.counter < this.minRevertibleSideEffectCounter) {
146
- this.recordNullifier(contractAddress, siloedNullifier);
153
+ this.#recordNullifier(contractAddress, siloedNullifier);
147
154
  }
148
155
  } else {
149
156
  // If the note being nullified comes from a previous tx the nullifier will be emitted.
150
- this.recordNullifier(contractAddress, siloedNullifier);
157
+ this.#recordNullifier(contractAddress, siloedNullifier);
151
158
  }
152
159
  return nullifiedNoteHashCounter;
153
160
  }
@@ -159,18 +166,22 @@ export class ExecutionNoteCache {
159
166
  */
160
167
  public async nullifierCreated(contractAddress: AztecAddress, innerNullifier: Fr) {
161
168
  const siloedNullifier = (await siloNullifier(contractAddress, innerNullifier)).toBigInt();
162
- this.recordNullifier(contractAddress, siloedNullifier);
169
+ this.#recordNullifier(contractAddress, siloedNullifier);
163
170
  }
164
171
 
165
172
  /**
166
173
  * Return notes created up to current point in execution.
167
174
  * If a nullifier for a note in this list is emitted, the note will be deleted.
168
175
  * @param contractAddress - Contract address of the notes.
176
+ * @param owner - Owner of the notes. If undefined, returns all notes regardless of owner.
169
177
  * @param storageSlot - Storage slot of the notes.
170
178
  **/
171
- public getNotes(contractAddress: AztecAddress, storageSlot: Fr) {
179
+ public getNotes(contractAddress: AztecAddress, owner: AztecAddress | undefined, storageSlot: Fr) {
172
180
  const notes = this.noteMap.get(contractAddress.toBigInt()) ?? [];
173
- 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);
174
185
  }
175
186
 
176
187
  /**
@@ -204,11 +215,30 @@ export class ExecutionNoteCache {
204
215
  return this.notes;
205
216
  }
206
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
+ */
207
229
  getAllNullifiers(): Fr[] {
208
- 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];
209
239
  }
210
240
 
211
- recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint) {
241
+ #recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint) {
212
242
  const nullifiers = this.getNullifiers(contractAddress);
213
243
 
214
244
  if (nullifiers.has(siloedNullifier)) {
@@ -217,6 +247,6 @@ export class ExecutionNoteCache {
217
247
 
218
248
  nullifiers.add(siloedNullifier);
219
249
  this.nullifierMap.set(contractAddress.toBigInt(), nullifiers);
220
- this.allNullifiers.add(siloedNullifier);
250
+ this.emittedNullifiers.add(siloedNullifier);
221
251
  }
222
252
  }
@@ -1,32 +1,37 @@
1
- import { DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
1
+ import { ExtendedDirectionalAppTaggingSecret, type TaggingIndexRange } 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 range 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
- private taggingIndexMap: Map<string, number> = new Map();
9
+ private taggingIndexMap: Map<string, { lowestIndex: number; highestIndex: number }> = new Map();
10
10
 
11
- public getLastUsedIndex(secret: DirectionalAppTaggingSecret): number | undefined {
12
- return this.taggingIndexMap.get(secret.toString());
11
+ public getLastUsedIndex(secret: ExtendedDirectionalAppTaggingSecret): number | undefined {
12
+ return this.taggingIndexMap.get(secret.toString())?.highestIndex;
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
- if (currentValue !== undefined && currentValue !== index - 1) {
18
- throw new Error(`Invalid tagging index update. Current value: ${currentValue}, new value: ${index}`);
17
+ if (currentValue !== undefined && currentValue.highestIndex !== index - 1) {
18
+ throw new Error(`Invalid tagging index update. Current value: ${currentValue.highestIndex}, new value: ${index}`);
19
+ }
20
+ if (currentValue !== undefined) {
21
+ currentValue.highestIndex = index;
22
+ } else {
23
+ this.taggingIndexMap.set(secret.toString(), { lowestIndex: index, highestIndex: index });
19
24
  }
20
- this.taggingIndexMap.set(secret.toString(), index);
21
25
  }
22
26
 
23
27
  /**
24
- * Returns the pre tags that were used in this execution (and that need to be stored in the db).
28
+ * Returns the tagging index ranges that were used in this execution (and that need to be stored in the db).
25
29
  */
26
- public getUsedPreTags(): PreTag[] {
27
- return Array.from(this.taggingIndexMap.entries()).map(([secret, index]) => ({
28
- secret: DirectionalAppTaggingSecret.fromString(secret),
29
- index,
30
+ public getUsedTaggingIndexRanges(): TaggingIndexRange[] {
31
+ return Array.from(this.taggingIndexMap.entries()).map(([secret, { lowestIndex, highestIndex }]) => ({
32
+ extendedSecret: ExtendedDirectionalAppTaggingSecret.fromString(secret),
33
+ lowestIndex,
34
+ highestIndex,
30
35
  }));
31
36
  }
32
37
  }
@@ -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
  /**
@@ -4,10 +4,11 @@ export { HashedValuesCache } from './hashed_values_cache.js';
4
4
  export { pickNotes } from './pick_notes.js';
5
5
  export type { NoteData, IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
6
6
  export { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
7
+ export { MessageContextService } from '../messages/message_context_service.js';
7
8
  export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
8
9
  export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
9
10
  export { Oracle } from './oracle/oracle.js';
10
11
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
11
12
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
12
- export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
13
+ export { packAsHintedNote } from './oracle/note_packing_utils.js';
13
14
  export { UtilityContext } from './noir-structs/utility_context.js';
@@ -1,33 +1,33 @@
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
- // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
8
- const MAX_EVENT_SERIALIZED_LEN = 12;
9
-
10
7
  /**
11
- * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
8
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
12
9
  * expects for values of this type to be stored in a `CapsuleArray`.
13
10
  */
14
11
  export class EventValidationRequest {
15
12
  constructor(
16
13
  public contractAddress: AztecAddress,
17
14
  public eventTypeId: EventSelector,
15
+ public randomness: Fr,
18
16
  public serializedEvent: Fr[],
19
17
  public eventCommitment: Fr,
20
18
  public txHash: TxHash,
21
19
  public recipient: AztecAddress,
22
20
  ) {}
23
21
 
24
- static fromFields(fields: Fr[] | FieldReader): EventValidationRequest {
22
+ static fromFields(fields: Fr[], maxEventSerializedLen: number): EventValidationRequest {
25
23
  const reader = FieldReader.asReader(fields);
26
24
 
27
25
  const contractAddress = AztecAddress.fromField(reader.readField());
28
26
  const eventTypeId = EventSelector.fromField(reader.readField());
29
27
 
30
- const eventStorage = reader.readFieldArray(MAX_EVENT_SERIALIZED_LEN);
28
+ const randomness = reader.readField();
29
+
30
+ const eventStorage = reader.readFieldArray(maxEventSerializedLen);
31
31
  const eventLen = reader.readField().toNumber();
32
32
  const serializedEvent = eventStorage.slice(0, eventLen);
33
33
 
@@ -35,9 +35,16 @@ export class EventValidationRequest {
35
35
  const txHash = TxHash.fromField(reader.readField());
36
36
  const recipient = AztecAddress.fromField(reader.readField());
37
37
 
38
+ if (reader.remainingFields() !== 0) {
39
+ throw new Error(
40
+ `Error converting array of fields to EventValidationRequest: expected ${reader.cursor} fields but received ${fields.length} (maxEventSerializedLen=${maxEventSerializedLen}).`,
41
+ );
42
+ }
43
+
38
44
  return new EventValidationRequest(
39
45
  contractAddress,
40
46
  eventTypeId,
47
+ randomness,
41
48
  serializedEvent,
42
49
  eventCommitment,
43
50
  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,12 +1,9 @@
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
- import { MAX_NOTE_PACKED_LEN } from './note_validation_request.js';
7
-
8
- const MAX_PUBLIC_LOG_LEN_FOR_NOTE_COMPLETION = MAX_NOTE_PACKED_LEN;
9
- const MAX_LOG_CONTENT_LEN = Math.max(MAX_PUBLIC_LOG_LEN_FOR_NOTE_COMPLETION, PRIVATE_LOG_CIPHERTEXT_LEN);
6
+ const MAX_LOG_CONTENT_LEN = PRIVATE_LOG_CIPHERTEXT_LEN;
10
7
 
11
8
  /**
12
9
  * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle stores values of this
@@ -42,7 +39,7 @@ export class LogRetrievalResponse {
42
39
  return range(serializationLen).map(_ => Fr.zero());
43
40
  }
44
41
 
45
- static toSerializedOption(response?: LogRetrievalResponse): Fr[] {
42
+ static toSerializedOption(response: LogRetrievalResponse | null): Fr[] {
46
43
  if (response) {
47
44
  return [new Fr(1), ...response.toFields()];
48
45
  } else {
@@ -0,0 +1,55 @@
1
+ import { MAX_NOTE_HASHES_PER_TX } from '@aztec/constants';
2
+ import { range } from '@aztec/foundation/array';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import type { TxHash } from '@aztec/stdlib/tx';
5
+
6
+ /**
7
+ * Intermediate struct used to return resolved message contexts from PXE. The
8
+ * `utilityResolveMessageContexts` oracle stores values of this type in a CapsuleArray.
9
+ */
10
+ export class MessageTxContext {
11
+ constructor(
12
+ public txHash: TxHash,
13
+ public uniqueNoteHashesInTx: Fr[],
14
+ public firstNullifierInTx: Fr,
15
+ ) {}
16
+
17
+ toFields(): Fr[] {
18
+ return [
19
+ this.txHash.hash,
20
+ ...serializeBoundedVec(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
21
+ this.firstNullifierInTx,
22
+ ];
23
+ }
24
+
25
+ static toEmptyFields(): Fr[] {
26
+ const serializationLen =
27
+ 1 /* txHash */ + MAX_NOTE_HASHES_PER_TX + 1 /* uniqueNoteHashesInTx BVec */ + 1; /* firstNullifierInTx */
28
+ return range(serializationLen).map(_ => Fr.zero());
29
+ }
30
+
31
+ static toSerializedOption(response: MessageTxContext | null): Fr[] {
32
+ if (response) {
33
+ return [new Fr(1), ...response.toFields()];
34
+ } else {
35
+ return [new Fr(0), ...MessageTxContext.toEmptyFields()];
36
+ }
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Helper function to serialize a bounded vector according to Noir's BoundedVec format
42
+ * @param values - The values to serialize
43
+ * @param maxLength - The maximum length of the bounded vector
44
+ * @returns The serialized bounded vector as Fr[]
45
+ */
46
+ function serializeBoundedVec(values: Fr[], maxLength: number): Fr[] {
47
+ if (values.length > maxLength) {
48
+ throw new Error(`Attempted to serialize ${values} values into a BoundedVec with max length ${maxLength}`);
49
+ }
50
+
51
+ const lengthDiff = maxLength - values.length;
52
+ const zeroPaddingArray = Array(lengthDiff).fill(Fr.ZERO);
53
+ const storage = values.concat(zeroPaddingArray);
54
+ return [...storage, new Fr(values.length)];
55
+ }
@@ -1,19 +1,18 @@
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
- // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
7
- export const MAX_NOTE_PACKED_LEN = 12;
8
-
9
6
  /**
10
- * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
7
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
11
8
  * expects for values of this type to be stored in a `CapsuleArray`.
12
9
  */
13
10
  export class NoteValidationRequest {
14
11
  constructor(
15
12
  public contractAddress: AztecAddress,
13
+ public owner: AztecAddress,
16
14
  public storageSlot: Fr,
15
+ public randomness: Fr,
17
16
  public noteNonce: Fr,
18
17
  public content: Fr[],
19
18
  public noteHash: Fr,
@@ -22,14 +21,16 @@ export class NoteValidationRequest {
22
21
  public recipient: AztecAddress,
23
22
  ) {}
24
23
 
25
- static fromFields(fields: Fr[] | FieldReader): NoteValidationRequest {
24
+ static fromFields(fields: Fr[], maxNotePackedLen: number): NoteValidationRequest {
26
25
  const reader = FieldReader.asReader(fields);
27
26
 
28
27
  const contractAddress = AztecAddress.fromField(reader.readField());
28
+ const owner = AztecAddress.fromField(reader.readField());
29
29
  const storageSlot = reader.readField();
30
+ const randomness = reader.readField();
30
31
  const noteNonce = reader.readField();
31
32
 
32
- const contentStorage = reader.readFieldArray(MAX_NOTE_PACKED_LEN);
33
+ const contentStorage = reader.readFieldArray(maxNotePackedLen);
33
34
  const contentLen = reader.readField().toNumber();
34
35
  const content = contentStorage.slice(0, contentLen);
35
36
 
@@ -38,9 +39,17 @@ export class NoteValidationRequest {
38
39
  const txHash = TxHash.fromField(reader.readField());
39
40
  const recipient = AztecAddress.fromField(reader.readField());
40
41
 
42
+ if (reader.remainingFields() !== 0) {
43
+ throw new Error(
44
+ `Error converting array of fields to NoteValidationRequest: expected ${reader.cursor} fields but received ${fields.length} (maxNotePackedLen=${maxNotePackedLen}).`,
45
+ );
46
+ }
47
+
41
48
  return new NoteValidationRequest(
42
49
  contractAddress,
50
+ owner,
43
51
  storageSlot,
52
+ randomness,
44
53
  noteNonce,
45
54
  content,
46
55
  noteHash,
@@ -1,42 +1,23 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import type { FieldsOf } from '@aztec/foundation/types';
1
+ import { toACVMField } from '@aztec/simulator/client';
3
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import type { UInt64 } from '@aztec/stdlib/types';
3
+ import type { BlockHeader } from '@aztec/stdlib/tx';
5
4
 
6
5
  /**
7
6
  * TypeScript counterpart of utility_context.nr. Used only as a return value for the utilityGetUtilityContext oracle.
8
7
  */
9
8
  export class UtilityContext {
10
- private constructor(
11
- public readonly blockNumber: number,
12
- public readonly timestamp: UInt64,
9
+ constructor(
10
+ public readonly blockHeader: BlockHeader,
13
11
  public readonly contractAddress: AztecAddress,
14
- public readonly version: Fr,
15
- public readonly chainId: Fr,
16
12
  ) {}
17
13
 
18
- static from(fields: FieldsOf<UtilityContext>) {
19
- return new UtilityContext(
20
- fields.blockNumber,
21
- fields.timestamp,
22
- fields.contractAddress,
23
- fields.version,
24
- fields.chainId,
25
- );
26
- }
27
-
28
14
  /**
29
15
  * Returns a representation of the utility context as expected by intrinsic Noir deserialization.
30
16
  * The order of the fields has to be the same as the order of the fields in the utility_context.nr.
31
17
  */
32
18
  public toNoirRepresentation(): (string | string[])[] {
33
19
  // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
34
- return [
35
- new Fr(this.blockNumber).toString() as string,
36
- new Fr(this.timestamp).toString() as string,
37
- this.contractAddress.toString() as string,
38
- this.version.toString() as string,
39
- this.chainId.toString() as string,
40
- ];
20
+ const blockHeaderFields = this.blockHeader.toFields().map(toACVMField);
21
+ return [...blockHeaderFields, this.contractAddress.toString() as string];
41
22
  }
42
23
  }