@aztec/pxe 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0

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 (635) hide show
  1. package/dest/bin/check_oracle_version.js +48 -29
  2. package/dest/bin/index.d.ts +2 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +1 -0
  5. package/dest/bin/oracle_version_helpers.d.ts +34 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +46 -0
  8. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  10. package/dest/block_synchronizer/block_stream_source.js +37 -0
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +53 -0
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
  13. package/dest/block_synchronizer/block_synchronizer.js +209 -0
  14. package/dest/block_synchronizer/index.d.ts +2 -0
  15. package/dest/block_synchronizer/index.d.ts.map +1 -0
  16. package/dest/block_synchronizer/index.js +1 -0
  17. package/dest/config/index.d.ts +14 -5
  18. package/dest/config/index.d.ts.map +1 -1
  19. package/dest/config/index.js +18 -2
  20. package/dest/config/package_info.js +1 -1
  21. package/dest/contract/contract_class_service.d.ts +31 -0
  22. package/dest/contract/contract_class_service.d.ts.map +1 -0
  23. package/dest/contract/contract_class_service.js +68 -0
  24. package/dest/contract/contract_sync_service.d.ts +48 -0
  25. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  26. package/dest/contract/contract_sync_service.js +116 -0
  27. package/dest/contract/helpers.d.ts +7 -0
  28. package/dest/contract/helpers.d.ts.map +1 -0
  29. package/dest/contract/helpers.js +20 -0
  30. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  31. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  32. package/dest/contract/skip_sync_contracts.js +18 -0
  33. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  34. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  35. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  36. package/dest/contract_function_simulator/aztec_node_read_cache.d.ts +39 -0
  37. package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +1 -0
  38. package/dest/contract_function_simulator/aztec_node_read_cache.js +60 -0
  39. package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
  40. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
  41. package/dest/contract_function_simulator/benchmarked_node.js +77 -0
  42. package/dest/contract_function_simulator/contract_function_simulator.d.ts +91 -27
  43. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/contract_function_simulator.js +302 -91
  45. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  46. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  47. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  48. package/dest/contract_function_simulator/execution_note_cache.d.ts +19 -16
  49. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  50. package/dest/contract_function_simulator/execution_note_cache.js +34 -37
  51. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  52. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  53. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  54. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  55. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  56. package/dest/contract_function_simulator/index.d.ts +27 -6
  57. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  58. package/dest/contract_function_simulator/index.js +12 -4
  59. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  60. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  61. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  62. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  63. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  64. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  65. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  66. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  67. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  68. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  69. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  70. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  71. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +6 -6
  72. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  73. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +13 -11
  74. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  75. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  76. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  77. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  78. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  79. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  80. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +21 -11
  81. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  82. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -23
  83. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
  84. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  85. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -63
  86. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  87. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  88. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  89. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +5 -7
  90. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  91. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +9 -13
  92. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  93. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  94. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  95. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  96. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  97. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  98. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  99. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  100. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  101. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  102. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  103. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  104. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  105. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  106. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  107. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  108. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  109. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  110. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  111. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  112. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  113. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +7 -18
  114. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  115. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -31
  116. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  117. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  118. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  119. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  120. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  121. package/dest/contract_function_simulator/oracle/index.js +1 -1
  122. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -94
  123. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  124. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  125. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  126. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  127. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  128. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +5 -14
  129. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  130. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  131. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +12 -8
  132. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  133. package/dest/contract_function_simulator/oracle/note_packing_utils.js +15 -11
  134. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
  135. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  136. package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -0
  137. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
  138. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  139. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1243 -0
  140. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -28
  141. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  142. package/dest/contract_function_simulator/oracle/private_execution.js +8 -43
  143. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +90 -97
  144. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  145. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +275 -138
  146. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +236 -65
  147. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  148. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +661 -132
  149. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  150. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  151. package/dest/contract_function_simulator/pick_notes.js +21 -4
  152. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  153. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  154. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  155. package/dest/contract_logging.d.ts +27 -0
  156. package/dest/contract_logging.d.ts.map +1 -0
  157. package/dest/contract_logging.js +38 -0
  158. package/dest/debug/pxe_debug_utils.d.ts +40 -0
  159. package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
  160. package/dest/debug/pxe_debug_utils.js +42 -0
  161. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  162. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  163. package/dest/entrypoints/client/bundle/index.js +3 -1
  164. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  165. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  166. package/dest/entrypoints/client/bundle/utils.js +54 -12
  167. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  168. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  169. package/dest/entrypoints/client/lazy/index.js +3 -1
  170. package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
  171. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  172. package/dest/entrypoints/client/lazy/utils.js +55 -13
  173. package/dest/entrypoints/client/store.d.ts +14 -0
  174. package/dest/entrypoints/client/store.d.ts.map +1 -0
  175. package/dest/entrypoints/client/store.js +42 -0
  176. package/dest/entrypoints/pxe_creation_options.d.ts +22 -4
  177. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  178. package/dest/entrypoints/pxe_creation_options.js +3 -1
  179. package/dest/entrypoints/server/index.d.ts +10 -3
  180. package/dest/entrypoints/server/index.d.ts.map +1 -1
  181. package/dest/entrypoints/server/index.js +8 -2
  182. package/dest/entrypoints/server/store.d.ts +18 -0
  183. package/dest/entrypoints/server/store.d.ts.map +1 -0
  184. package/dest/entrypoints/server/store.js +28 -0
  185. package/dest/entrypoints/server/utils.d.ts +4 -3
  186. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  187. package/dest/entrypoints/server/utils.js +62 -19
  188. package/dest/error_enriching.d.ts +6 -4
  189. package/dest/error_enriching.d.ts.map +1 -1
  190. package/dest/error_enriching.js +13 -11
  191. package/dest/events/event_service.d.ts +24 -0
  192. package/dest/events/event_service.d.ts.map +1 -0
  193. package/dest/events/event_service.js +77 -0
  194. package/dest/events/index.d.ts +2 -0
  195. package/dest/events/index.d.ts.map +1 -0
  196. package/dest/events/index.js +1 -0
  197. package/dest/events/private_event_filter_validator.d.ts +10 -0
  198. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  199. package/dest/events/private_event_filter_validator.js +53 -0
  200. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  201. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  202. package/dest/hooks/authorize_utility_call.js +4 -0
  203. package/dest/hooks/execution_hooks.d.ts +62 -0
  204. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  205. package/dest/hooks/execution_hooks.js +9 -0
  206. package/dest/hooks/index.d.ts +5 -0
  207. package/dest/hooks/index.d.ts.map +1 -0
  208. package/dest/hooks/index.js +2 -0
  209. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  210. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  211. package/dest/hooks/resolve_custom_request.js +3 -0
  212. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  213. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  214. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  215. package/dest/job_coordinator/job_coordinator.d.ts +75 -0
  216. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  217. package/dest/job_coordinator/job_coordinator.js +94 -0
  218. package/dest/logs/log_service.d.ts +31 -0
  219. package/dest/logs/log_service.d.ts.map +1 -0
  220. package/dest/logs/log_service.js +232 -0
  221. package/dest/messages/tx_resolver_service.d.ts +17 -0
  222. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  223. package/dest/messages/tx_resolver_service.js +60 -0
  224. package/dest/notes/index.d.ts +2 -0
  225. package/dest/notes/index.d.ts.map +1 -0
  226. package/dest/notes/index.js +1 -0
  227. package/dest/notes/note_service.d.ts +70 -0
  228. package/dest/notes/note_service.d.ts.map +1 -0
  229. package/dest/notes/note_service.js +172 -0
  230. package/dest/notes_filter.d.ts +24 -0
  231. package/dest/notes_filter.d.ts.map +1 -0
  232. package/dest/notes_filter.js +4 -0
  233. package/dest/oracle_version.d.ts +4 -3
  234. package/dest/oracle_version.d.ts.map +1 -1
  235. package/dest/oracle_version.js +20 -9
  236. package/dest/private_kernel/batch_planner.d.ts +47 -0
  237. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  238. package/dest/private_kernel/batch_planner.js +104 -0
  239. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  240. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  241. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  242. package/dest/private_kernel/hints/index.d.ts +3 -3
  243. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  244. package/dest/private_kernel/hints/index.js +2 -2
  245. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
  246. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
  247. package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +147 -76
  248. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  249. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  250. package/dest/private_kernel/hints/test_utils.js +202 -0
  251. package/dest/private_kernel/private_kernel_execution_prover.d.ts +7 -2
  252. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  253. package/dest/private_kernel/private_kernel_execution_prover.js +214 -93
  254. package/dest/private_kernel/private_kernel_oracle.d.ts +32 -29
  255. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  256. package/dest/private_kernel/private_kernel_oracle.js +108 -2
  257. package/dest/pxe.d.ts +260 -134
  258. package/dest/pxe.d.ts.map +1 -1
  259. package/dest/pxe.js +496 -342
  260. package/dest/storage/address_store/address_store.d.ts +11 -0
  261. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  262. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
  263. package/dest/storage/address_store/index.d.ts +2 -0
  264. package/dest/storage/address_store/index.d.ts.map +1 -0
  265. package/dest/storage/address_store/index.js +1 -0
  266. package/dest/storage/allowed_scopes.d.ts +6 -0
  267. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  268. package/dest/storage/allowed_scopes.js +7 -0
  269. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +20 -0
  270. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  271. package/dest/storage/anchor_block_store/anchor_block_store.js +28 -0
  272. package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
  273. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  274. package/dest/storage/anchor_block_store/index.js +1 -0
  275. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  276. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  277. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  278. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  279. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  280. package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
  281. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  282. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  283. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  284. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  285. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  286. package/dest/storage/capsule_store/capsule_service.js +47 -0
  287. package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
  288. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  289. package/dest/storage/capsule_store/capsule_store.js +261 -0
  290. package/dest/storage/capsule_store/index.d.ts +3 -0
  291. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  292. package/dest/storage/capsule_store/index.js +2 -0
  293. package/dest/storage/contract_store/contract_store.d.ts +96 -0
  294. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  295. package/dest/storage/contract_store/contract_store.js +281 -0
  296. package/dest/storage/contract_store/index.d.ts +2 -0
  297. package/dest/storage/contract_store/index.d.ts.map +1 -0
  298. package/dest/storage/contract_store/index.js +1 -0
  299. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  300. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  301. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
  302. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  303. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  304. package/dest/storage/fact_store/fact_service.js +45 -0
  305. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  306. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  307. package/dest/storage/fact_store/fact_store.js +408 -0
  308. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  309. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  310. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  311. package/dest/storage/fact_store/index.d.ts +6 -0
  312. package/dest/storage/fact_store/index.d.ts.map +1 -0
  313. package/dest/storage/fact_store/index.js +4 -0
  314. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  315. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  316. package/dest/storage/fact_store/origin_state.js +60 -0
  317. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  318. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  319. package/dest/storage/fact_store/stored_fact.js +64 -0
  320. package/dest/storage/index.d.ts +9 -8
  321. package/dest/storage/index.d.ts.map +1 -1
  322. package/dest/storage/index.js +8 -7
  323. package/dest/storage/metadata.d.ts +2 -2
  324. package/dest/storage/metadata.d.ts.map +1 -1
  325. package/dest/storage/metadata.js +1 -1
  326. package/dest/storage/note_store/index.d.ts +3 -0
  327. package/dest/storage/note_store/index.d.ts.map +1 -0
  328. package/dest/storage/note_store/index.js +2 -0
  329. package/dest/storage/note_store/note_store.d.ts +92 -0
  330. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  331. package/dest/storage/note_store/note_store.js +372 -0
  332. package/dest/storage/note_store/stored_note.d.ts +11 -0
  333. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  334. package/dest/storage/note_store/stored_note.js +27 -0
  335. package/dest/storage/open_pxe_stores.d.ts +35 -0
  336. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  337. package/dest/storage/open_pxe_stores.js +29 -0
  338. package/dest/storage/private_event_store/private_event_store.d.ts +88 -0
  339. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  340. package/dest/storage/private_event_store/private_event_store.js +273 -0
  341. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  342. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  343. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  344. package/dest/storage/store_identity.d.ts +35 -0
  345. package/dest/storage/store_identity.d.ts.map +1 -0
  346. package/dest/storage/store_identity.js +44 -0
  347. package/dest/storage/tagging_store/index.d.ts +4 -0
  348. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  349. package/dest/storage/tagging_store/index.js +3 -0
  350. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
  351. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  352. package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
  353. package/dest/storage/tagging_store/sender_tagging_store.d.ts +94 -0
  354. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  355. package/dest/storage/tagging_store/sender_tagging_store.js +411 -0
  356. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  357. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  358. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  359. package/dest/tagging/constants.d.ts +3 -2
  360. package/dest/tagging/constants.d.ts.map +1 -1
  361. package/dest/tagging/constants.js +28 -2
  362. package/dest/tagging/get_all_logs_by_tags.d.ts +48 -0
  363. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  364. package/dest/tagging/get_all_logs_by_tags.js +59 -0
  365. package/dest/tagging/index.d.ts +18 -7
  366. package/dest/tagging/index.d.ts.map +1 -1
  367. package/dest/tagging/index.js +16 -5
  368. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  369. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  370. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  371. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
  372. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  373. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +238 -0
  374. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  375. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  376. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  377. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  378. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  379. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  380. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +16 -0
  381. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  382. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +92 -0
  383. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +17 -0
  384. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  385. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +60 -0
  386. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -0
  387. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  388. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +76 -0
  389. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  390. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  391. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  392. package/package.json +31 -19
  393. package/src/bin/check_oracle_version.ts +56 -34
  394. package/src/bin/index.ts +1 -0
  395. package/src/bin/oracle_version_helpers.ts +54 -0
  396. package/src/block_synchronizer/block_stream_source.ts +42 -0
  397. package/src/block_synchronizer/block_synchronizer.ts +241 -0
  398. package/src/block_synchronizer/index.ts +1 -0
  399. package/src/config/index.ts +25 -4
  400. package/src/config/package_info.ts +1 -1
  401. package/src/contract/contract_class_service.ts +83 -0
  402. package/src/contract/contract_sync_service.ts +176 -0
  403. package/src/contract/helpers.ts +35 -0
  404. package/src/contract/skip_sync_contracts.ts +23 -0
  405. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  406. package/src/contract_function_simulator/aztec_node_read_cache.ts +89 -0
  407. package/src/contract_function_simulator/benchmarked_node.ts +103 -0
  408. package/src/contract_function_simulator/contract_function_simulator.ts +513 -124
  409. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  410. package/src/contract_function_simulator/execution_note_cache.ts +39 -38
  411. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  412. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  413. package/src/contract_function_simulator/index.ts +90 -5
  414. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  415. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  416. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  417. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  418. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +16 -11
  419. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  420. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  421. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +28 -20
  422. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -64
  423. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  424. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +8 -13
  425. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  426. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  427. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  428. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  429. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  430. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  431. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  432. package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -37
  433. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  434. package/src/contract_function_simulator/oracle/index.ts +1 -15
  435. package/src/contract_function_simulator/oracle/interfaces.ts +11 -166
  436. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  437. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  438. package/src/contract_function_simulator/oracle/note_packing_utils.ts +28 -14
  439. package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
  440. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1052 -0
  441. package/src/contract_function_simulator/oracle/private_execution.ts +8 -76
  442. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +355 -189
  443. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +1027 -166
  444. package/src/contract_function_simulator/pick_notes.ts +23 -4
  445. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  446. package/src/contract_logging.ts +52 -0
  447. package/src/debug/pxe_debug_utils.ts +85 -0
  448. package/src/entrypoints/client/bundle/index.ts +3 -1
  449. package/src/entrypoints/client/bundle/utils.ts +52 -21
  450. package/src/entrypoints/client/lazy/index.ts +3 -1
  451. package/src/entrypoints/client/lazy/utils.ts +54 -23
  452. package/src/entrypoints/client/store.ts +54 -0
  453. package/src/entrypoints/pxe_creation_options.ts +27 -3
  454. package/src/entrypoints/server/index.ts +10 -2
  455. package/src/entrypoints/server/store.ts +47 -0
  456. package/src/entrypoints/server/utils.ts +68 -45
  457. package/src/error_enriching.ts +20 -12
  458. package/src/events/event_service.ts +119 -0
  459. package/src/events/index.ts +1 -0
  460. package/src/events/private_event_filter_validator.ts +66 -0
  461. package/src/hooks/authorize_utility_call.ts +44 -0
  462. package/src/hooks/execution_hooks.ts +68 -0
  463. package/src/hooks/index.ts +13 -0
  464. package/src/hooks/resolve_custom_request.ts +24 -0
  465. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  466. package/src/job_coordinator/job_coordinator.ts +150 -0
  467. package/src/logs/log_service.ts +300 -0
  468. package/src/messages/tx_resolver_service.ts +69 -0
  469. package/src/notes/index.ts +1 -0
  470. package/src/notes/note_service.ts +230 -0
  471. package/src/notes_filter.ts +24 -0
  472. package/src/oracle_version.ts +20 -9
  473. package/src/private_kernel/batch_planner.ts +168 -0
  474. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  475. package/src/private_kernel/hints/index.ts +2 -2
  476. package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +209 -141
  477. package/src/private_kernel/hints/test_utils.ts +318 -0
  478. package/src/private_kernel/private_kernel_execution_prover.ts +352 -130
  479. package/src/private_kernel/private_kernel_oracle.ts +149 -39
  480. package/src/pxe.ts +846 -457
  481. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
  482. package/src/storage/address_store/index.ts +1 -0
  483. package/src/storage/allowed_scopes.ts +14 -0
  484. package/src/storage/anchor_block_store/anchor_block_store.ts +35 -0
  485. package/src/storage/anchor_block_store/index.ts +1 -0
  486. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  487. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  488. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  489. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  490. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  491. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  492. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  493. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  494. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  495. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  496. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  497. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  498. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  499. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  500. package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
  501. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  502. package/src/storage/capsule_store/capsule_service.ts +85 -0
  503. package/src/storage/capsule_store/capsule_store.ts +333 -0
  504. package/src/storage/capsule_store/index.ts +2 -0
  505. package/src/storage/contract_store/contract_store.ts +401 -0
  506. package/src/storage/contract_store/index.ts +1 -0
  507. package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
  508. package/src/storage/fact_store/fact_service.ts +69 -0
  509. package/src/storage/fact_store/fact_store.ts +487 -0
  510. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  511. package/src/storage/fact_store/index.ts +15 -0
  512. package/src/storage/fact_store/origin_state.ts +84 -0
  513. package/src/storage/fact_store/stored_fact.ts +80 -0
  514. package/src/storage/index.ts +8 -7
  515. package/src/storage/metadata.ts +1 -1
  516. package/src/storage/note_store/index.ts +2 -0
  517. package/src/storage/note_store/note_store.ts +454 -0
  518. package/src/storage/note_store/stored_note.ts +26 -0
  519. package/src/storage/open_pxe_stores.ts +52 -0
  520. package/src/storage/private_event_store/private_event_store.ts +382 -0
  521. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  522. package/src/storage/store_identity.ts +72 -0
  523. package/src/storage/tagging_store/index.ts +3 -0
  524. package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
  525. package/src/storage/tagging_store/sender_tagging_store.ts +523 -0
  526. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  527. package/src/tagging/constants.ts +30 -2
  528. package/src/tagging/get_all_logs_by_tags.ts +120 -0
  529. package/src/tagging/index.ts +20 -6
  530. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  531. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +358 -0
  532. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  533. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  534. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +134 -0
  535. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +66 -0
  536. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +88 -0
  537. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  538. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -267
  539. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  540. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  541. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -58
  542. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  543. package/dest/contract_function_simulator/oracle/oracle.js +0 -334
  544. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  545. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  546. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -62
  547. package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
  548. package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
  549. package/dest/contract_function_simulator/proxied_node.js +0 -27
  550. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -123
  551. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  552. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -696
  553. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
  554. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
  555. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  556. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  557. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
  558. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
  559. package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
  560. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  561. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  562. package/dest/storage/address_data_provider/index.d.ts +0 -2
  563. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  564. package/dest/storage/address_data_provider/index.js +0 -1
  565. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
  566. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  567. package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
  568. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  569. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  570. package/dest/storage/capsule_data_provider/index.js +0 -1
  571. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -64
  572. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  573. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -193
  574. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  575. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  576. package/dest/storage/contract_data_provider/index.js +0 -1
  577. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  578. package/dest/storage/note_data_provider/index.d.ts +0 -3
  579. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  580. package/dest/storage/note_data_provider/index.js +0 -2
  581. package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
  582. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  583. package/dest/storage/note_data_provider/note_data_provider.js +0 -314
  584. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
  585. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  586. package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -105
  587. package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
  588. package/dest/storage/sync_data_provider/index.js +0 -1
  589. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -11
  590. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
  591. package/dest/storage/sync_data_provider/sync_data_provider.js +0 -26
  592. package/dest/storage/tagging_data_provider/index.d.ts +0 -2
  593. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  594. package/dest/storage/tagging_data_provider/index.js +0 -1
  595. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
  596. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
  597. package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
  598. package/dest/synchronizer/index.d.ts +0 -2
  599. package/dest/synchronizer/index.d.ts.map +0 -1
  600. package/dest/synchronizer/index.js +0 -1
  601. package/dest/synchronizer/synchronizer.d.ts +0 -36
  602. package/dest/synchronizer/synchronizer.d.ts.map +0 -1
  603. package/dest/synchronizer/synchronizer.js +0 -102
  604. package/dest/tagging/siloed_tag.d.ts +0 -14
  605. package/dest/tagging/siloed_tag.d.ts.map +0 -1
  606. package/dest/tagging/siloed_tag.js +0 -20
  607. package/dest/tagging/tag.d.ts +0 -12
  608. package/dest/tagging/tag.d.ts.map +0 -1
  609. package/dest/tagging/tag.js +0 -17
  610. package/dest/tagging/utils.d.ts +0 -18
  611. package/dest/tagging/utils.d.ts.map +0 -1
  612. package/dest/tagging/utils.js +0 -24
  613. package/src/contract_function_simulator/execution_data_provider.ts +0 -342
  614. package/src/contract_function_simulator/oracle/oracle.ts +0 -591
  615. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -66
  616. package/src/contract_function_simulator/proxied_node.ts +0 -33
  617. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1023
  618. package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
  619. package/src/storage/address_data_provider/index.ts +0 -1
  620. package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
  621. package/src/storage/capsule_data_provider/index.ts +0 -1
  622. package/src/storage/contract_data_provider/contract_data_provider.ts +0 -277
  623. package/src/storage/contract_data_provider/index.ts +0 -1
  624. package/src/storage/note_data_provider/index.ts +0 -2
  625. package/src/storage/note_data_provider/note_data_provider.ts +0 -403
  626. package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -143
  627. package/src/storage/sync_data_provider/index.ts +0 -1
  628. package/src/storage/sync_data_provider/sync_data_provider.ts +0 -35
  629. package/src/storage/tagging_data_provider/index.ts +0 -1
  630. package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
  631. package/src/synchronizer/index.ts +0 -1
  632. package/src/synchronizer/synchronizer.ts +0 -121
  633. package/src/tagging/siloed_tag.ts +0 -22
  634. package/src/tagging/tag.ts +0 -16
  635. package/src/tagging/utils.ts +0 -31
@@ -0,0 +1,110 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+
3
+ /** In-memory store for ephemeral arrays scoped to a single contract call frame. */
4
+ export class EphemeralArrayService {
5
+ /**
6
+ * Maps a slot to the elements of the array stored at that slot. Each element is a serialized representation of
7
+ * the original type.
8
+ */
9
+ #arrays: Map<string, Fr[][]> = new Map();
10
+
11
+ /** Returns all elements in the array, or an empty array if uninitialized. */
12
+ readArrayAt(slot: Fr): Fr[][] {
13
+ return this.#arrays.get(slot.toString()) ?? [];
14
+ }
15
+
16
+ #setArray(slot: Fr, array: Fr[][]): void {
17
+ this.#arrays.set(slot.toString(), array);
18
+ }
19
+
20
+ /** Returns the number of elements in the array at the given slot. */
21
+ len(slot: Fr): number {
22
+ return this.readArrayAt(slot).length;
23
+ }
24
+
25
+ /** Appends an element to the array and returns the new length. */
26
+ push(slot: Fr, elements: Fr[]): number {
27
+ const array = this.readArrayAt(slot);
28
+ array.push(elements);
29
+ this.#setArray(slot, array);
30
+ return array.length;
31
+ }
32
+
33
+ /** Removes and returns the last element. Throws if empty. */
34
+ pop(slot: Fr): Fr[] {
35
+ const array = this.readArrayAt(slot);
36
+ if (array.length === 0) {
37
+ throw new Error(`Ephemeral array at slot ${slot} is empty`);
38
+ }
39
+ const element = array.pop()!;
40
+ this.#setArray(slot, array);
41
+ return element;
42
+ }
43
+
44
+ /** Returns the element at the given index. Throws if out of bounds. */
45
+ get(slot: Fr, index: number): Fr[] {
46
+ const array = this.readArrayAt(slot);
47
+ if (index < 0 || index >= array.length) {
48
+ throw new Error(
49
+ `Ephemeral array index ${index} out of bounds for array of length ${array.length} at slot ${slot}`,
50
+ );
51
+ }
52
+ return array[index];
53
+ }
54
+
55
+ /** Overwrites the element at the given index. Throws if out of bounds. */
56
+ set(slot: Fr, index: number, value: Fr[]): void {
57
+ const array = this.readArrayAt(slot);
58
+ if (index < 0 || index >= array.length) {
59
+ throw new Error(
60
+ `Ephemeral array index ${index} out of bounds for array of length ${array.length} at slot ${slot}`,
61
+ );
62
+ }
63
+ array[index] = value;
64
+ }
65
+
66
+ /** Removes the element at the given index, shifting subsequent elements backward. Throws if out of bounds. */
67
+ remove(slot: Fr, index: number): void {
68
+ const array = this.readArrayAt(slot);
69
+ if (index < 0 || index >= array.length) {
70
+ throw new Error(
71
+ `Ephemeral array index ${index} out of bounds for array of length ${array.length} at slot ${slot}`,
72
+ );
73
+ }
74
+ array.splice(index, 1);
75
+ }
76
+
77
+ /** Removes all elements from the array. */
78
+ clear(slot: Fr): void {
79
+ this.#arrays.delete(slot.toString());
80
+ }
81
+
82
+ /** Allocates a fresh, unused slot for a new ephemeral array. */
83
+ allocateSlot(): Fr {
84
+ let slot: Fr;
85
+ do {
86
+ slot = Fr.random();
87
+ } while (this.#arrays.has(slot.toString()));
88
+ return slot;
89
+ }
90
+
91
+ /** Creates a new ephemeral array pre-populated with the given elements and returns its slot. */
92
+ newArray(elements: Fr[][]): Fr {
93
+ const slot = this.allocateSlot();
94
+ this.#setArray(slot, elements);
95
+ return slot;
96
+ }
97
+
98
+ /** Copies `count` elements from the source array to the destination array (overwrites destination). */
99
+ copy(srcSlot: Fr, dstSlot: Fr, count: number): void {
100
+ const srcArray = this.readArrayAt(srcSlot);
101
+ if (count > srcArray.length) {
102
+ throw new Error(
103
+ `Cannot copy ${count} elements from ephemeral array of length ${srcArray.length} at slot ${srcSlot}`,
104
+ );
105
+ }
106
+ // Deep copy the elements to avoid aliasing
107
+ const copied = srcArray.slice(0, count).map(el => [...el]);
108
+ this.#setArray(dstSlot, copied);
109
+ }
110
+ }
@@ -1,8 +1,8 @@
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
 
5
- import type { NoteData } from './oracle/interfaces.js';
5
+ import type { NoteData } from './noir-structs/note_data.js';
6
6
 
7
7
  interface PendingNote {
8
8
  note: NoteData;
@@ -32,20 +32,17 @@ 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
- /**
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.
46
- */
47
- private usedProtocolNullifierForNonces = true;
48
-
49
46
  constructor(private readonly protocolNullifier: Fr) {}
50
47
 
51
48
  /**
@@ -60,17 +57,15 @@ export class ExecutionNoteCache {
60
57
  }
61
58
  this.inRevertiblePhase = true;
62
59
  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
- }
60
+
61
+ // The protocol nullifier is always the tx's first nullifier (injected by the kernel init), so it is the
62
+ // nonce generator for every note hash.
63
+ const nonceGenerator = this.protocolNullifier;
69
64
 
70
65
  // The existing pending notes are all non-revertible.
71
66
  // They cannot be squashed by nullifiers emitted after minRevertibleSideEffectCounter is set.
72
67
  // 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.
68
+ // The nonces will be used to create the "unique" note hashes.
74
69
  const updatedNotes = await Promise.all(
75
70
  this.notes.map(async ({ note, counter }, i) => {
76
71
  const noteNonce = await computeNoteHashNonce(nonceGenerator, i);
@@ -98,18 +93,6 @@ export class ExecutionNoteCache {
98
93
  return sideEffectCounter >= this.minRevertibleSideEffectCounter;
99
94
  }
100
95
 
101
- 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.
104
- if (!this.inRevertiblePhase) {
105
- this.usedProtocolNullifierForNonces = this.getAllNullifiers().length === 0;
106
- }
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
- }
112
-
113
96
  /**
114
97
  * Add a new note to cache.
115
98
  * @param note - New note created during execution.
@@ -150,11 +133,11 @@ export class ExecutionNoteCache {
150
133
 
151
134
  // 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
135
  if (this.inRevertiblePhase && note.counter < this.minRevertibleSideEffectCounter) {
153
- this.recordNullifier(contractAddress, siloedNullifier);
136
+ this.#recordNullifier(contractAddress, siloedNullifier);
154
137
  }
155
138
  } else {
156
139
  // If the note being nullified comes from a previous tx the nullifier will be emitted.
157
- this.recordNullifier(contractAddress, siloedNullifier);
140
+ this.#recordNullifier(contractAddress, siloedNullifier);
158
141
  }
159
142
  return nullifiedNoteHashCounter;
160
143
  }
@@ -166,19 +149,22 @@ export class ExecutionNoteCache {
166
149
  */
167
150
  public async nullifierCreated(contractAddress: AztecAddress, innerNullifier: Fr) {
168
151
  const siloedNullifier = (await siloNullifier(contractAddress, innerNullifier)).toBigInt();
169
- this.recordNullifier(contractAddress, siloedNullifier);
152
+ this.#recordNullifier(contractAddress, siloedNullifier);
170
153
  }
171
154
 
172
155
  /**
173
156
  * Return notes created up to current point in execution.
174
157
  * If a nullifier for a note in this list is emitted, the note will be deleted.
175
158
  * @param contractAddress - Contract address of the notes.
176
- * @param owner - Owner of the notes.
159
+ * @param owner - Owner of the notes. If undefined, returns all notes regardless of owner.
177
160
  * @param storageSlot - Storage slot of the notes.
178
161
  **/
179
- public getNotes(contractAddress: AztecAddress, owner: AztecAddress, storageSlot: Fr) {
162
+ public getNotes(contractAddress: AztecAddress, owner: AztecAddress | undefined, storageSlot: Fr) {
180
163
  const notes = this.noteMap.get(contractAddress.toBigInt()) ?? [];
181
- return notes.filter(n => n.note.owner.equals(owner) && n.note.storageSlot.equals(storageSlot)).map(n => n.note);
164
+ return notes
165
+ .filter(n => owner === undefined || n.note.owner.equals(owner))
166
+ .filter(n => n.note.storageSlot.equals(storageSlot))
167
+ .map(n => n.note);
182
168
  }
183
169
 
184
170
  /**
@@ -212,11 +198,26 @@ export class ExecutionNoteCache {
212
198
  return this.notes;
213
199
  }
214
200
 
201
+ /**
202
+ * @returns All nullifiers emitted by private calls in this transaction.
203
+ */
204
+ getEmittedNullifiers(): Fr[] {
205
+ return [...this.emittedNullifiers].map(n => new Fr(n));
206
+ }
207
+
208
+ /**
209
+ * @returns All nullifiers of the transaction: the protocol nullifier (the kernel-injected first nullifier),
210
+ * followed by those emitted by private calls.
211
+ */
215
212
  getAllNullifiers(): Fr[] {
216
- return [...this.allNullifiers].map(n => new Fr(n));
213
+ return [this.protocolNullifier, ...this.getEmittedNullifiers()];
214
+ }
215
+
216
+ getNonceGenerator(): Fr {
217
+ return this.protocolNullifier;
217
218
  }
218
219
 
219
- recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint) {
220
+ #recordNullifier(contractAddress: AztecAddress, siloedNullifier: bigint) {
220
221
  const nullifiers = this.getNullifiers(contractAddress);
221
222
 
222
223
  if (nullifiers.has(siloedNullifier)) {
@@ -225,6 +226,6 @@ export class ExecutionNoteCache {
225
226
 
226
227
  nullifiers.add(siloedNullifier);
227
228
  this.nullifierMap.set(contractAddress.toBigInt(), nullifiers);
228
- this.allNullifiers.add(siloedNullifier);
229
+ this.emittedNullifiers.add(siloedNullifier);
229
230
  }
230
231
  }
@@ -1,32 +1,33 @@
1
- import { DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
1
+ import { AppTaggingSecret, type TaggingIndexRange } from '@aztec/stdlib/logs';
2
2
 
3
- /**
4
- * A map that stores the tagging index for a given directional app tagging secret.
5
- * Note: The directional app tagging secret is unique for a (sender, recipient, contract) tuple while the direction
6
- * of sender -> recipient matters.
7
- */
3
+ /** A map that stores the tagging index range for a given app tagging secret. */
8
4
  export class ExecutionTaggingIndexCache {
9
- private taggingIndexMap: Map<string, number> = new Map();
5
+ private taggingIndexMap: Map<string, { lowestIndex: number; highestIndex: number }> = new Map();
10
6
 
11
- public getLastUsedIndex(secret: DirectionalAppTaggingSecret): number | undefined {
12
- return this.taggingIndexMap.get(secret.toString());
7
+ public getLastUsedIndex(secret: AppTaggingSecret): number | undefined {
8
+ return this.taggingIndexMap.get(secret.toString())?.highestIndex;
13
9
  }
14
10
 
15
- public setLastUsedIndex(secret: DirectionalAppTaggingSecret, index: number) {
11
+ public setLastUsedIndex(secret: AppTaggingSecret, index: number) {
16
12
  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}`);
13
+ if (currentValue !== undefined && currentValue.highestIndex !== index - 1) {
14
+ throw new Error(`Invalid tagging index update. Current value: ${currentValue.highestIndex}, new value: ${index}`);
15
+ }
16
+ if (currentValue !== undefined) {
17
+ currentValue.highestIndex = index;
18
+ } else {
19
+ this.taggingIndexMap.set(secret.toString(), { lowestIndex: index, highestIndex: index });
19
20
  }
20
- this.taggingIndexMap.set(secret.toString(), index);
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 tagging index ranges that were used in this execution (and that need to be stored in the db).
25
25
  */
26
- public getUsedPreTags(): PreTag[] {
27
- return Array.from(this.taggingIndexMap.entries()).map(([secret, index]) => ({
28
- secret: DirectionalAppTaggingSecret.fromString(secret),
29
- index,
26
+ public getUsedTaggingIndexRanges(): TaggingIndexRange[] {
27
+ return Array.from(this.taggingIndexMap.entries()).map(([secret, { lowestIndex, highestIndex }]) => ({
28
+ extendedSecret: AppTaggingSecret.fromString(secret),
29
+ lowestIndex,
30
+ highestIndex,
30
31
  }));
31
32
  }
32
33
  }
@@ -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
  /**
@@ -1,13 +1,98 @@
1
+ export {
2
+ ORACLE_REGISTRY,
3
+ makeEntry,
4
+ type NamedValue,
5
+ type OracleRegistryEntry,
6
+ type ParamTypes,
7
+ } from './oracle/oracle_registry.js';
8
+ export {
9
+ ALIAS,
10
+ ARRAY,
11
+ AZTEC_ADDRESS,
12
+ BIGINT,
13
+ BLOCK_HASH,
14
+ BLOCK_NUMBER,
15
+ BOOL,
16
+ BOUNDED_VEC,
17
+ U8,
18
+ CONTRACT_INSTANCE,
19
+ DELIVERY_MODE,
20
+ EPHEMERAL_ARRAY,
21
+ ETH_ADDRESS,
22
+ EVENT_VALIDATION_REQUEST,
23
+ FIELD,
24
+ FIXED_ARRAY,
25
+ FUNCTION_SELECTOR,
26
+ LEAF,
27
+ LEAF_INDEX,
28
+ LOG_RETRIEVAL_REQUEST,
29
+ LOG_RETRIEVAL_RESPONSE,
30
+ MEMBERSHIP_WITNESS,
31
+ NOTE_SELECTOR,
32
+ NOTE_VALIDATION_REQUEST,
33
+ OPTION,
34
+ PENDING_TAGGED_LOG,
35
+ POINT,
36
+ PROVIDED_SECRET,
37
+ SCALAR,
38
+ SLOT_NUMBER,
39
+ STR,
40
+ STRUCT,
41
+ U32,
42
+ U64,
43
+ U128,
44
+ tryFieldWidth,
45
+ isArrayMapping,
46
+ isBoundedVecMapping,
47
+ isEphemeralArrayMapping,
48
+ isFixedArrayMapping,
49
+ isFixedBoundedVecMapping,
50
+ isOptionMapping,
51
+ isStructMapping,
52
+ type ArrayMapping,
53
+ type BoundedVecMapping,
54
+ type CompositeMapping,
55
+ type EphemeralArrayMapping,
56
+ type FixedArrayMapping,
57
+ type FixedBoundedVecMapping,
58
+ type InputSlot,
59
+ type MaybePromise,
60
+ type OptionMapping,
61
+ type OutputSlot,
62
+ type SlotShape,
63
+ type StructField,
64
+ type StructMapping,
65
+ type TypeMapping,
66
+ } from './oracle/oracle_type_mappings.js';
1
67
  export { ExecutionNoteCache } from './execution_note_cache.js';
2
68
  export { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
3
69
  export { HashedValuesCache } from './hashed_values_cache.js';
4
70
  export { pickNotes } from './pick_notes.js';
5
- export type { NoteData, IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
6
- export { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
71
+ export type { IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
72
+ export type { FactCollection } from './noir-structs/fact_collection.js';
73
+ export type { NoteData } from './noir-structs/note_data.js';
74
+ export type { ResolvedTaggingStrategy } from './noir-structs/resolved_tagging_strategy.js';
75
+ export type { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
76
+ export { TxResolverService } from '../messages/tx_resolver_service.js';
7
77
  export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
8
78
  export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
9
- export { Oracle } from './oracle/oracle.js';
79
+ export { buildACIRCallback, UnavailableOracleError } from './oracle/acir_callback.js';
80
+ export { LEGACY_ORACLE_REGISTRY } from './oracle/legacy_oracle_registry.js';
10
81
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
11
82
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
12
- export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
13
- export { UtilityContext } from './noir-structs/utility_context.js';
83
+ export { packAsHintedNote } from './oracle/note_packing_utils.js';
84
+ export { BoundedVec } from './noir-structs/bounded_vec.js';
85
+ export type { ContractClassLogData } from './noir-structs/contract_class_log_data.js';
86
+ export type { EmbeddedCurvePoint } from './noir-structs/embedded_curve_point.js';
87
+ export { EphemeralArray } from './noir-structs/ephemeral_array.js';
88
+ export { Option } from './noir-structs/option.js';
89
+ export type { UtilityContext } from './noir-structs/utility_context.js';
90
+ export { EventValidationRequest } from './noir-structs/event_validation_request.js';
91
+ export type { LogRetrievalRequest } from './noir-structs/log_retrieval_request.js';
92
+ export type { LogRetrievalResponse } from './noir-structs/log_retrieval_response.js';
93
+ export { NoteValidationRequest } from './noir-structs/note_validation_request.js';
94
+ export type { PendingTaggedLog } from './noir-structs/pending_tagged_log.js';
95
+ export type { TxEffectData } from './noir-structs/tx_effect_data.js';
96
+ export type { ProvidedSecret } from './noir-structs/provided_secret.js';
97
+ export type { ResolvedTx } from './noir-structs/resolved_tx.js';
98
+ export { TransientArrayService } from './transient_array_service.js';
@@ -0,0 +1,43 @@
1
+ /** TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`. */
2
+ export class BoundedVec<T> {
3
+ private constructor(
4
+ public readonly data: T[],
5
+ public readonly maxLength: number,
6
+ public readonly elementSize: number,
7
+ ) {}
8
+
9
+ /**
10
+ * Construct a BoundedVec with data.
11
+ *
12
+ * @param data - Actual elements. Length must be `<= maxLength`.
13
+ * @param maxLength - Maximum capacity declared at the Noir call site. The storage slot is padded to this many
14
+ * elements.
15
+ * @param elementSize - Number of Fr fields each element contributes when serialized. Only consulted for
16
+ * variable-width elements whose width isn't statically known from their shape (e.g. a packed note spanning
17
+ * `packedHintedNoteLength` fields); fixed-width elements derive it from the shape, so it can be omitted.
18
+ *
19
+ * @example A bounded vec of packed notes, each spanning `packedHintedNoteLength` fields:
20
+ * ```ts
21
+ * BoundedVec.from({ data: notes, maxLength: maxNotes, elementSize: packedHintedNoteLength })
22
+ * ```
23
+ */
24
+ static from<T>({
25
+ data,
26
+ maxLength,
27
+ elementSize = 1,
28
+ }: {
29
+ data: T[];
30
+ maxLength: number;
31
+ elementSize?: number;
32
+ }): BoundedVec<T> {
33
+ return new BoundedVec<T>(data, maxLength, elementSize);
34
+ }
35
+
36
+ equals(other: BoundedVec<T>, innerEquals: (a: T, b: T) => boolean): boolean {
37
+ return (
38
+ this.maxLength === other.maxLength &&
39
+ this.data.length === other.data.length &&
40
+ this.data.every((value, i) => innerEquals(value, other.data[i]))
41
+ );
42
+ }
43
+ }
@@ -0,0 +1,9 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+
4
+ /** Wire form of a contract class log. */
5
+ export type ContractClassLogData = {
6
+ contractAddress: AztecAddress;
7
+ fields: Fr[];
8
+ emittedLength: number;
9
+ };
@@ -0,0 +1,4 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+
3
+ /** Wire form of a Grumpkin point crossing the oracle boundary: Noir's `EmbeddedCurvePoint` serializes to `[x, y]`. */
4
+ export type EmbeddedCurvePoint = { x: Fr; y: Fr };
@@ -0,0 +1,66 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { FieldReader } from '@aztec/foundation/serialize';
3
+
4
+ import type { EphemeralArrayService } from '../ephemeral_array_service.js';
5
+ import type { TypeMapping } from '../oracle/oracle_registry.js';
6
+
7
+ /**
8
+ * TypeScript counterpart of Noir's `EphemeralArray<T>`.
9
+ *
10
+ * An ephemeral array looks very different depending on whether it's being produced (as an oracle return value) or
11
+ * consumed (as an oracle parameter), so we use a discriminated state to model both without leaking those details to
12
+ * callers:
13
+ *
14
+ * - As a return value (`output` mode), what we have are the typed values the oracle just computed. The slot is just
15
+ * an implementation detail of how those values get handed back to ACVM, so we hold onto the values and the service
16
+ * they will eventually live in, and only materialize a slot when something actually asks for it.
17
+ *
18
+ * - As a parameter (`input` mode), what we have is a slot pointing at fields ACVM already wrote into the service,
19
+ * plus the TypeMapping that knows how to interpret those fields. We hold onto both so callers can later ask for
20
+ * the typed values without having to think about deserialization.
21
+ *
22
+ * In both modes the idea is the same: store everything we already know at construction time, so the rest of the
23
+ * code can work with typed values and never touch slots, services, or TypeMappings directly.
24
+ */
25
+ export class EphemeralArray<T> {
26
+ private constructor(private readonly state: EphemeralArrayState<T>) {}
27
+
28
+ /** Create an output-mode array carrying typed values. The service is only used if/when the slot is materialized. */
29
+ static fromValues<T>(service: EphemeralArrayService, values: T[]): EphemeralArray<T> {
30
+ return new EphemeralArray({ kind: 'output', service, values });
31
+ }
32
+
33
+ /** Wrap an existing slot. Intended for the EPHEMERAL_ARRAY combinator during ACVM deserialization. */
34
+ static fromSlot<T>(slot: Fr, mapping: TypeMapping<T>): EphemeralArray<T> {
35
+ return new EphemeralArray({ kind: 'input', slot, mapping });
36
+ }
37
+
38
+ /**
39
+ * Returns the slot, materializing values into the service on first call for output-mode arrays.
40
+ * Intended for the EPHEMERAL_ARRAY combinator during ACVM serialization.
41
+ */
42
+ materializeSlot(serializeItem: (v: T) => Fr[]): Fr {
43
+ if (this.state.kind === 'input') {
44
+ return this.state.slot;
45
+ }
46
+ if (this.state.cachedSlot === undefined) {
47
+ this.state.cachedSlot = this.state.service.newArray(this.state.values.map(serializeItem));
48
+ }
49
+ return this.state.cachedSlot;
50
+ }
51
+
52
+ /** Read all elements: returns stored values for output-mode arrays, deserializes from the service for input-mode. */
53
+ readAll(service: EphemeralArrayService): T[] {
54
+ if (this.state.kind === 'output') {
55
+ return this.state.values;
56
+ }
57
+ const mapping = this.state.mapping;
58
+ return service
59
+ .readArrayAt(this.state.slot)
60
+ .map(fields => mapping.deserialization!.fn([FieldReader.asReader(fields)]));
61
+ }
62
+ }
63
+
64
+ type EphemeralArrayState<T> =
65
+ | { kind: 'output'; service: EphemeralArrayService; values: T[]; cachedSlot?: Fr }
66
+ | { kind: 'input'; slot: Fr; mapping: TypeMapping<T> };
@@ -1,47 +1,52 @@
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
12
- * expects for values of this type to be stored in a `CapsuleArray`.
8
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
9
+ * expects for values of this type to be stored in a `EphemeralArray`.
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
- public recipient: AztecAddress,
22
19
  ) {}
23
20
 
24
21
  static fromFields(fields: Fr[] | FieldReader): EventValidationRequest {
25
22
  const reader = FieldReader.asReader(fields);
26
23
 
27
- const contractAddress = AztecAddress.fromField(reader.readField());
24
+ const contractAddress = AztecAddress.fromFieldUnsafe(reader.readField());
28
25
  const eventTypeId = EventSelector.fromField(reader.readField());
29
26
 
30
- const eventStorage = reader.readFieldArray(MAX_EVENT_SERIALIZED_LEN);
27
+ const randomness = reader.readField();
28
+
29
+ const maxEventSerializedLen = reader.readField().toNumber();
30
+ const eventStorage = reader.readFieldArray(maxEventSerializedLen);
31
31
  const eventLen = reader.readField().toNumber();
32
32
  const serializedEvent = eventStorage.slice(0, eventLen);
33
33
 
34
34
  const eventCommitment = reader.readField();
35
35
  const txHash = TxHash.fromField(reader.readField());
36
- const recipient = AztecAddress.fromField(reader.readField());
36
+
37
+ if (reader.remainingFields() !== 0) {
38
+ throw new Error(
39
+ `Error converting array of fields to EventValidationRequest: expected ${reader.cursor} fields but received ${reader.cursor + reader.remainingFields()} (maxEventSerializedLen=${maxEventSerializedLen}).`,
40
+ );
41
+ }
37
42
 
38
43
  return new EventValidationRequest(
39
44
  contractAddress,
40
45
  eventTypeId,
46
+ randomness,
41
47
  serializedEvent,
42
48
  eventCommitment,
43
49
  txHash,
44
- recipient,
45
50
  );
46
51
  }
47
52
  }
@@ -0,0 +1,13 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+
3
+ import type { RetractableFactOrigin } from '../../storage/fact_store/index.js';
4
+ import type { EphemeralArray } from './ephemeral_array.js';
5
+ import type { Option } from './option.js';
6
+
7
+ /**
8
+ * A single fact returned within a fact collection by the fact store oracles.
9
+ *
10
+ * A TS version of the `Fact` struct in `facts/mod.nr`. `originBlock` is `Some` for a retractable fact (carrying its
11
+ * origin block's current chain state) and `None` for a non-retractable one.
12
+ */
13
+ export type Fact = { factTypeId: Fr; payload: EphemeralArray<Fr>; originBlock: Option<RetractableFactOrigin> };