@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
@@ -1,4 +1,110 @@
1
+ import { PUBLIC_DATA_TREE_HEIGHT, UPDATES_VALUE_SIZE, VK_TREE_HEIGHT } from '@aztec/constants';
2
+ import { MembershipWitness } from '@aztec/foundation/trees';
3
+ import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
4
+ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
5
+ import { computeSaltedInitializationHash } from '@aztec/stdlib/contract';
6
+ import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
7
+ import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
8
+ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
9
+ import { AnchoredContractData } from '../contract_function_simulator/anchored_contract_data.js';
1
10
  /**
2
11
  * Provides functionality needed by the private kernel for interacting with our state trees.
3
- * This is either PrivateKernelOracleImpl, or a mocked test implementation.
4
- */ export { };
12
+ */ export class PrivateKernelOracle {
13
+ contractStore;
14
+ keyStore;
15
+ node;
16
+ blockHeader;
17
+ anchoredContractData;
18
+ constructor(contractStore, contractClassService, keyStore, node, blockHeader){
19
+ this.contractStore = contractStore;
20
+ this.keyStore = keyStore;
21
+ this.node = node;
22
+ this.blockHeader = blockHeader;
23
+ // Kernels never use contract overrides (those are confined to simulations, which skip proving), so this view is
24
+ // built without them.
25
+ this.anchoredContractData = new AnchoredContractData(contractStore, contractClassService, blockHeader);
26
+ }
27
+ /** Retrieves the preimage of a contract address from the registered contract instances db. */ async getContractAddressPreimage(address) {
28
+ const instance = await this.anchoredContractData.getContractInstance(address);
29
+ if (!instance) {
30
+ throw new Error(`Contract instance not found when getting address preimage. Contract address: ${address}.`);
31
+ }
32
+ // Local instance existence was checked above, so resolution below cannot come back empty.
33
+ const currentContractClassId = await this.anchoredContractData.getCurrentClassId(address);
34
+ if (!currentContractClassId) {
35
+ throw new Error(`Could not resolve the current class id for registered contract ${address}.`);
36
+ }
37
+ return {
38
+ saltedInitializationHash: await computeSaltedInitializationHash(instance),
39
+ ...instance,
40
+ currentContractClassId
41
+ };
42
+ }
43
+ /** Retrieves the preimage of a contract class id from the contract classes db. */ async getContractClassIdPreimage(contractClassId) {
44
+ const contractClass = await this.contractStore.getContractClassWithPreimage(contractClassId);
45
+ if (!contractClass) {
46
+ throw new Error(`Contract class not found when getting class id preimage. Class id: ${contractClassId}.`);
47
+ }
48
+ return {
49
+ artifactHash: contractClass.artifactHash,
50
+ privateFunctionsRoot: contractClass.privateFunctionsRoot,
51
+ publicBytecodeCommitment: contractClass.publicBytecodeCommitment
52
+ };
53
+ }
54
+ /** Returns a membership witness with the sibling path and leaf index in our private functions tree. */ async getFunctionMembershipWitness(contractClassId, selector) {
55
+ const membershipWitness = await this.contractStore.getFunctionMembershipWitness(contractClassId, selector);
56
+ if (!membershipWitness) {
57
+ throw new Error(`Membership witness not found for contract class id ${contractClassId} and selector ${selector}.`);
58
+ }
59
+ return membershipWitness;
60
+ }
61
+ /**
62
+ * Returns a membership witness with the sibling path and leaf index in our protocol VK indexed merkle tree.
63
+ * Used to validate the previous kernel's verification key.
64
+ */ getVkMembershipWitness(vk) {
65
+ const leafIndex = getVKIndex(vk);
66
+ return Promise.resolve(new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
67
+ }
68
+ /** Returns a membership witness with the sibling path and leaf index in our note hash tree. */ async getNoteHashMembershipWitness(noteHash) {
69
+ return this.node.getNoteHashMembershipWitness(await this.blockHeader.hash(), noteHash);
70
+ }
71
+ /** Returns a membership witness with the sibling path and leaf index in our nullifier indexed merkle tree. */ async getNullifierMembershipWitness(nullifier) {
72
+ return this.node.getNullifierMembershipWitness(await this.blockHeader.hash(), nullifier);
73
+ }
74
+ /** Returns the root of our note hash merkle tree. */ getNoteHashTreeRoot() {
75
+ return this.blockHeader.state.partial.noteHashTree.root;
76
+ }
77
+ /**
78
+ * Retrieves the sk_m corresponding to the pk_m hash.
79
+ * @throws If the provided hash is not associated with any of the registered accounts.
80
+ * @param masterPublicKeyHash - The master public key hash to get secret key for.
81
+ * @returns A Promise that resolves to sk_m.
82
+ * @dev Used when feeding the sk_m to the kernel circuit for keys verification.
83
+ */ getMasterSecretKey(masterPublicKeyHash) {
84
+ return this.keyStore.getMasterSecretKey(masterPublicKeyHash);
85
+ }
86
+ /** Use debug data to get the function name corresponding to a selector. */ async getDebugFunctionName(contractAddress, selector) {
87
+ const classId = await this.anchoredContractData.getCurrentClassId(contractAddress);
88
+ return classId ? this.contractStore.getDebugFunctionName(classId, selector) : undefined;
89
+ }
90
+ /**
91
+ * Returns a membership witness and leaf index to our public data indexed merkle tree,
92
+ * along with an associated DelayedPublicMutable containing the class ID to update.
93
+ */ async getUpdatedClassIdHints(contractAddress) {
94
+ const { delayedPublicMutableSlot, delayedPublicMutableHashSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
95
+ const hashLeafSlot = await computePublicDataTreeLeafSlot(ProtocolContractAddress.ContractInstanceRegistry, delayedPublicMutableHashSlot);
96
+ const blockHash = await this.blockHeader.hash();
97
+ const updatedClassIdWitness = await this.node.getPublicDataWitness(blockHash, hashLeafSlot);
98
+ if (!updatedClassIdWitness) {
99
+ throw new Error(`No public data tree witness found for ${hashLeafSlot}`);
100
+ }
101
+ // In an indexed merkle tree, getPublicDataWitness returns a leaf whose slot matches our query
102
+ // only if the slot has been written to. Otherwise, it returns the "low leaf" predecessor, whose
103
+ // slot will differ. Most contracts are never updated, so we can skip the readFromTree call
104
+ // (which triggers multiple RPC calls) and return empty values directly.
105
+ const readStorage = (storageSlot)=>this.node.getPublicStorageAt(blockHash, ProtocolContractAddress.ContractInstanceRegistry, storageSlot);
106
+ const slotExists = updatedClassIdWitness.leafPreimage.leaf.slot.equals(hashLeafSlot);
107
+ const delayedPublicMutableValues = slotExists ? await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, readStorage) : DelayedPublicMutableValues.empty(UPDATES_VALUE_SIZE);
108
+ return new UpdatedClassIdHints(new MembershipWitness(PUBLIC_DATA_TREE_HEIGHT, updatedClassIdWitness.index, updatedClassIdWitness.siblingPath.toTuple()), updatedClassIdWitness.leafPreimage, delayedPublicMutableValues);
109
+ }
110
+ }
package/dest/pxe.d.ts CHANGED
@@ -1,26 +1,159 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
2
4
  import { type Logger } from '@aztec/foundation/log';
5
+ import type { AccountPrivacyKeys, AccountPrivacySecretKeys } from '@aztec/key-store';
3
6
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
7
  import { type ProtocolContractsProvider } from '@aztec/protocol-contracts';
5
8
  import type { CircuitSimulator } from '@aztec/simulator/client';
6
9
  import { type ContractArtifact, EventSelector, FunctionCall } from '@aztec/stdlib/abi';
7
10
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
8
11
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
9
- import type { L2BlockHash } from '@aztec/stdlib/block';
10
- import { CompleteAddress, type ContractClassWithId, type ContractInstanceWithAddress, type PartialAddress } from '@aztec/stdlib/contract';
11
- import type { AztecNode, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
12
- import type { NotesFilter } from '@aztec/stdlib/note';
13
- import { NoteDao } from '@aztec/stdlib/note';
14
- import { SimulationOverrides, TxExecutionRequest, TxHash, TxProfileResult, TxProvingResult, TxSimulationResult, UtilitySimulationResult } from '@aztec/stdlib/tx';
12
+ import { CompleteAddress, type ContractInstancePreimage, type ContractInstancePreimageWithAddress, type ContractInstanceWithAddress, type PartialAddress } from '@aztec/stdlib/contract';
13
+ import type { AztecNode, AztecNodeDebug, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
14
+ import { BlockHeader, type InTx, SimulationOverrides, TxExecutionRequest, TxProfileResult, TxProvingResult, TxSimulationResult, UtilityExecutionResult } from '@aztec/stdlib/tx';
15
15
  import type { PXEConfig } from './config/index.js';
16
- export type PrivateEvent = {
16
+ import { PXEDebugUtils } from './debug/pxe_debug_utils.js';
17
+ import type { ExecutionHooks } from './hooks/index.js';
18
+ export type PackedPrivateEvent = InTx & {
17
19
  packedEvent: Fr[];
18
- blockNumber: number;
19
- blockHash: L2BlockHash;
20
- txHash: TxHash;
21
- recipient: AztecAddress;
22
20
  eventSelector: EventSelector;
23
21
  };
22
+ /** Options for PXE.proveTx. */
23
+ export type ProveTxOpts = {
24
+ /** Addresses whose private state and keys are accessible during private execution. */
25
+ scopes: AztecAddress[];
26
+ /** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
27
+ senderForTags?: AztecAddress;
28
+ };
29
+ /** Options for PXE.profileTx. */
30
+ export type ProfileTxOpts = {
31
+ /** The profiling mode to use. */
32
+ profileMode: 'full' | 'execution-steps' | 'gates';
33
+ /** If true, proof generation is skipped during profiling. Defaults to true. */
34
+ skipProofGeneration?: boolean;
35
+ /** Addresses whose private state and keys are accessible during private execution. */
36
+ scopes: AztecAddress[];
37
+ /** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
38
+ senderForTags?: AztecAddress;
39
+ };
40
+ /** Options for PXE.simulateTx. */
41
+ export type SimulateTxOpts = {
42
+ /** Whether to simulate the public part of the transaction. */
43
+ simulatePublic: boolean;
44
+ /** If false, this function throws if the transaction is unable to be included in a block at the current state. */
45
+ skipTxValidation?: boolean;
46
+ /** If false, fees are enforced. */
47
+ skipFeeEnforcement?: boolean;
48
+ /** If true, kernel logic is emulated in TS for simulation */
49
+ skipKernels?: boolean;
50
+ /**
51
+ * Pre-simulation overrides applied to the ephemeral fork and contract DB. Bundles publicStorage
52
+ * writes (no skipKernels required) and per-address (instance, artifact?) overrides used by both
53
+ * AVM-side public dispatch and PXE-side ACIR private dispatch (requires skipKernels: true).
54
+ */
55
+ overrides?: SimulationOverrides;
56
+ /** Addresses whose private state and keys are accessible during private execution */
57
+ scopes: AztecAddress[];
58
+ /** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
59
+ senderForTags?: AztecAddress;
60
+ };
61
+ /** Options for PXE.executeUtility. */
62
+ export type ExecuteUtilityOpts = {
63
+ /** The authentication witnesses required for the function call. */
64
+ authwits?: AuthWitness[];
65
+ /** The accounts whose notes we can access in this call */
66
+ scopes: AztecAddress[];
67
+ };
68
+ /**
69
+ * Supplies the set of "nice to have" contracts that every PXE preloads regardless of which wallet
70
+ * drives it. Today this is just the standard multi-call entrypoint: the SDK's self-paid account
71
+ * deploy flow ({@link DeployAccountMethod} with `from = NO_FROM`) routes its payload through it, so a
72
+ * PXE that did not register it would fail contract sync with an opaque "no contract instance" error.
73
+ *
74
+ * Returning a list keeps this extensible: a wallet may supply its own provider that preloads
75
+ * additional contracts. Injected the same way as {@link ProtocolContractsProvider} so the PXE never
76
+ * statically imports the bundled artifacts, keeping the bundle/lazy split intact.
77
+ */
78
+ export type PreloadedContractsProvider = {
79
+ /** Returns the contract instances and artifacts the PXE should preload on startup. */
80
+ getPreloadedContracts: () => Promise<Array<{
81
+ instance: ContractInstanceWithAddress;
82
+ artifact: ContractArtifact;
83
+ }>>;
84
+ };
85
+ /** Args for PXE.create. */
86
+ export type PXECreateArgs = {
87
+ /** The Aztec node to connect to. */
88
+ node: AztecNode;
89
+ /**
90
+ * Optional debug API client. When provided, public function signatures are registered with the node so that
91
+ * node-side public-execution stack traces can be named. Skipped when the node does not expose the debug API.
92
+ */
93
+ nodeDebug?: AztecNodeDebug;
94
+ /** The key-value store for persisting PXE state. */
95
+ store: AztecAsyncKVStore;
96
+ /** The prover for generating private kernel proofs. */
97
+ proofCreator: PrivateKernelProver;
98
+ /** The circuit simulator for executing ACIR circuits. */
99
+ simulator: CircuitSimulator;
100
+ /** Provider for protocol contract artifacts and instances. */
101
+ protocolContractsProvider: ProtocolContractsProvider;
102
+ /**
103
+ * Contracts to preload on startup. Injected by the entrypoint with the bundle-or-lazy flavor that
104
+ * matches the runtime (bundle for node/eager browser, lazy for code-split browser), so the PXE
105
+ * never statically imports a standard-contract artifact and the bundle/lazy split stays intact.
106
+ */
107
+ preloadedContractsProvider: PreloadedContractsProvider;
108
+ /** PXE configuration options. */
109
+ config: PXEConfig;
110
+ /** Optional logger instance or string suffix for the logger name. */
111
+ loggerOrSuffix?: string | Logger;
112
+ /** Optional hooks to observe and influence contract execution. */
113
+ hooks?: ExecutionHooks;
114
+ };
115
+ /** A source from which PXE derives the tagging secrets it scans for to discover incoming private logs. */
116
+ export type TaggingSecretSource =
117
+ /**
118
+ * Derives a shared secret via ECDH from an external `sender` address against every account registered in this PXE
119
+ * (present and future), so registering one sender applies it to all of them. The address is not secret, so unlike
120
+ * `arbitrary-secret` it can be reused freely across recipients.
121
+ */
122
+ {
123
+ kind: 'address-derived';
124
+ sender: AztecAddress;
125
+ }
126
+ /**
127
+ * A shared secret point provided directly, scoped to a single recipient. It bypasses ECDH, so it must not be
128
+ * reused across recipients (each would then be able to find the others' tags).
129
+ */
130
+ | {
131
+ kind: 'arbitrary-secret';
132
+ recipient: AztecAddress;
133
+ secret: Point;
134
+ }
135
+ /**
136
+ * A handshake known by the x-coordinate of its ephemeral public key (the value a recipient learns while authorizing
137
+ * an interactive handshake, which emits no discoverable announcement). The ephemeral key's y-coordinate is always
138
+ * positive by protocol construction, so the x-coordinate alone identifies it.
139
+ */
140
+ | {
141
+ kind: 'handshake';
142
+ recipient: AztecAddress;
143
+ ephPk: Fr;
144
+ };
145
+ /**
146
+ * The registered form of a {@link TaggingSecretSource}.
147
+ */
148
+ export type RegisteredTaggingSecretSource = Exclude<TaggingSecretSource, {
149
+ kind: 'handshake';
150
+ }>
151
+ /** A handshake's resolved shared secret, derived at registration from the handshake's ephemeral key. */
152
+ | {
153
+ kind: 'handshake';
154
+ recipient: AztecAddress;
155
+ secret: Point;
156
+ };
24
157
  /**
25
158
  * Private eXecution Environment (PXE) is a library used by wallets to simulate private phase of transactions and to
26
159
  * manage private state of users.
@@ -28,21 +161,35 @@ export type PrivateEvent = {
28
161
  export declare class PXE {
29
162
  #private;
30
163
  private node;
31
- private synchronizer;
164
+ private nodeDebug;
165
+ private db;
166
+ private blockStateSynchronizer;
32
167
  private keyStore;
33
- private contractDataProvider;
34
- private noteDataProvider;
35
- private capsuleDataProvider;
36
- private syncDataProvider;
37
- private taggingDataProvider;
38
- private addressDataProvider;
39
- private privateEventDataProvider;
168
+ private contractStore;
169
+ private noteStore;
170
+ private capsuleStore;
171
+ private factStore;
172
+ private anchorBlockStore;
173
+ private senderTaggingStore;
174
+ private taggingSecretSourcesStore;
175
+ private recipientTaggingStore;
176
+ private addressStore;
177
+ private privateEventStore;
178
+ private contractSyncService;
179
+ private contractClassService;
180
+ private txResolver;
181
+ private l2TipsStore;
40
182
  private simulator;
41
183
  private proverEnabled;
184
+ private autoSync;
42
185
  private proofCreator;
43
186
  private protocolContractsProvider;
187
+ private preloadedContractsProvider;
44
188
  private log;
45
189
  private jobQueue;
190
+ private jobCoordinator;
191
+ debug: PXEDebugUtils;
192
+ private hooks;
46
193
  private constructor();
47
194
  /**
48
195
  * Creates an instance of a PXE by instantiating all the necessary data providers and services.
@@ -51,73 +198,84 @@ export declare class PXE {
51
198
  *
52
199
  * @returns A promise that resolves PXE is ready to be used.
53
200
  */
54
- static create(node: AztecNode, store: AztecAsyncKVStore, proofCreator: PrivateKernelProver, simulator: CircuitSimulator, protocolContractsProvider: ProtocolContractsProvider, config: PXEConfig, loggerOrSuffix?: string | Logger): Promise<PXE>;
55
- getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
56
- /**
57
- * Returns the contract class metadata given a contract class id.
58
- * The metadata consists of its contract class, whether it has been publicly registered, and its artifact.
59
- * @remark - it queries the node to check whether the contract class with the given id has been publicly registered.
60
- * @param id - Identifier of the class.
61
- * @param includeArtifact - Identifier of the class.
62
- * @returns - It returns the contract class metadata, with the artifact field being optional, and will only be returned if true is passed in
63
- * for `includeArtifact`
64
- * TODO(@spalladino): The PXE actually holds artifacts and not classes, what should we return? Also,
65
- * should the pxe query the node for contract public info, and merge it with its own definitions?
66
- * TODO(@spalladino): This method is strictly needed to decide whether to publicly register a class or not
67
- * during a public deployment. We probably want a nicer and more general API for this, but it'll have to
68
- * do for the time being.
69
- */
70
- getContractClassMetadata(id: Fr, includeArtifact?: boolean): Promise<{
71
- contractClass: ContractClassWithId | undefined;
72
- isContractClassPubliclyRegistered: boolean;
73
- artifact: ContractArtifact | undefined;
74
- }>;
75
- /**
76
- * Returns the contract metadata given an address.
77
- * The metadata consists of its contract instance, which includes the contract class identifier,
78
- * initialization hash, deployment salt, and public keys hash; whether the contract instance has been initialized;
79
- * and whether the contract instance with the given address has been publicly deployed.
80
- * @remark - it queries the node to check whether the contract instance has been initialized / publicly deployed through a node.
81
- * This query is not dependent on the PXE.
82
- * @param address - The address that the contract instance resides at.
83
- * @returns - It returns the contract metadata
84
- * TODO(@spalladino): Should we return the public keys in plain as well here?
85
- */
86
- getContractMetadata(address: AztecAddress): Promise<{
87
- contractInstance: ContractInstanceWithAddress | undefined;
88
- isContractInitialized: boolean;
89
- isContractPublished: boolean;
90
- }>;
91
- /**
92
- * Registers a user account in PXE given its master encryption private key.
93
- * Once a new account is registered, the PXE will trial-decrypt all published notes on
94
- * the chain and store those that correspond to the registered account. Will do nothing if the
95
- * account is already registered.
96
- *
97
- * @param secretKey - Secret key of the corresponding user master public key.
201
+ static create({ node, nodeDebug, store, proofCreator, simulator, protocolContractsProvider, preloadedContractsProvider, config, loggerOrSuffix, hooks }: PXECreateArgs): Promise<PXE>;
202
+ /**
203
+ * Triggers a sync of PXE state with the node, regardless of the `autoSync` config flag. Use this to
204
+ * batch syncs across composite flows when `autoSync` is disabled (e.g. one sync per simulate+send
205
+ * instead of one per inner PXE call). Serialized through the job queue.
206
+ */
207
+ sync(): Promise<void>;
208
+ /**
209
+ * Returns the block header up to which the PXE has synced.
210
+ * @returns The synced block header
211
+ */
212
+ getSyncedBlockHeader(): Promise<BlockHeader>;
213
+ /**
214
+ * Returns the address preimage of the contract instance at a given address, if it's registered in the PXE.
215
+ * @param address - The contract address.
216
+ * @returns The contract instance address preimage if found, undefined otherwise.
217
+ */
218
+ getContractInstance(address: AztecAddress): Promise<ContractInstancePreimageWithAddress | undefined>;
219
+ /**
220
+ * Returns the contract artifact for a given contract class id, if it's registered in the PXE.
221
+ * @param id - Identifier of the contract class.
222
+ * @returns The contract artifact if found, undefined otherwise.
223
+ */
224
+ getContractArtifact(id: Fr): Promise<ContractArtifact | undefined>;
225
+ /**
226
+ * Registers a user account in PXE.
227
+ *
228
+ * PXE holds the account's four privacy secret keys but only the *public* message-signing and fallback keys: their
229
+ * secret keys are withheld, since PXE is not trusted to hold them.
230
+ *
231
+ * Does nothing if the account is already registered.
232
+ *
233
+ * The four privacy secret keys can be retrieved later with {@link getAccountSecretKeys}.
234
+ *
235
+ * @param keys - The account's privacy keys: four secret keys plus the message-signing and fallback public keys.
98
236
  * @param partialAddress - The partial address of the account contract corresponding to the account being registered.
99
237
  * @returns The complete address of the account.
100
238
  */
101
- registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress>;
239
+ registerAccount(keys: AccountPrivacyKeys, partialAddress: PartialAddress): Promise<CompleteAddress>;
102
240
  /**
103
- * Registers a user contact in PXE.
241
+ * Retrieves the four privacy secret keys PXE holds for a registered account (nullifier-hiding, incoming-viewing,
242
+ * outgoing-viewing, tagging).
243
+ *
244
+ * These do NOT grant control over an account's assets, e.g. they are insufficient to impersonate the account or to
245
+ * spend notes, but they _do_ guard the account's privacy. Parties that have knowledge of these keys can decrypt all
246
+ * messages sent to the account, discover all of their on-chain activity, including notes, events, etc.
104
247
  *
105
- * Once a new contact is registered, the PXE will be able to receive notes tagged from this contact.
106
- * Will do nothing if the account is already registered.
248
+ * Security is paramount when handling these keys, which should itself be a very rare occurrence. Other than exporting
249
+ * and then importing an account into a separate PXE/wallet, there is typically no need for a wallet to ever access
250
+ * these keys. Applications should NEVER be given access to them.
107
251
  *
108
- * @param address - Address of the user to add to the address book
109
- * @returns The address address of the account.
252
+ * @throws If the account is not registered.
110
253
  */
111
- registerSender(address: AztecAddress): Promise<AztecAddress>;
254
+ getAccountSecretKeys(account: AztecAddress): Promise<AccountPrivacySecretKeys>;
112
255
  /**
113
- * Retrieves the addresses stored as senders on this PXE.
114
- * @returns An array of the senders on this PXE.
256
+ * Registers a source from which this PXE derives the tagging secrets it scans for to discover incoming private logs.
257
+ * See {@link TaggingSecretSource} for the meaning of each variant. Does nothing if the source is already registered.
258
+ *
259
+ * After a new source is added we clear the cache tracking which contracts have finished syncing, so every contract
260
+ * re-syncs against the new source's logs (whose notes/events could belong to any contract). Already-discovered
261
+ * notes/events are not discarded.
115
262
  */
116
- getSenders(): Promise<AztecAddress[]>;
263
+ registerTaggingSecretSource(source: TaggingSecretSource): Promise<void>;
117
264
  /**
118
- * Removes a sender in the address book.
265
+ * Removes a previously registered tagging secret source, identified by its registered form (see
266
+ * {@link getTaggingSecretSources}). Does nothing if it was not registered.
119
267
  */
120
- removeSender(address: AztecAddress): Promise<void>;
268
+ removeTaggingSecretSource(source: RegisteredTaggingSecretSource): Promise<void>;
269
+ /**
270
+ * Retrieves the tagging secret sources registered in this PXE, in their registered form. Without a filter it
271
+ * returns every source; pass `{ kind }` to narrow to a single variant. See {@link RegisteredTaggingSecretSource}.
272
+ */
273
+ getTaggingSecretSources<K extends RegisteredTaggingSecretSource['kind']>(filter: {
274
+ kind: K;
275
+ }): Promise<Extract<RegisteredTaggingSecretSource, {
276
+ kind: K;
277
+ }>[]>;
278
+ getTaggingSecretSources(): Promise<RegisteredTaggingSecretSource[]>;
121
279
  /**
122
280
  * Retrieves the user accounts registered on this PXE.
123
281
  * @returns An array of the accounts registered on this PXE.
@@ -130,64 +288,38 @@ export declare class PXE {
130
288
  */
131
289
  registerContractClass(artifact: ContractArtifact): Promise<void>;
132
290
  /**
133
- * Adds deployed contracts to the PXE. Deployed contract information is used to access the
134
- * contract code when simulating local transactions. This is automatically called by aztec.js when
135
- * deploying a contract. Dapps that wish to interact with contracts already deployed should register
136
- * these contracts in their users' PXE through this method.
291
+ * Registers a deployed contract instance so its private state can be synced and its functions simulated. The
292
+ * artifact for the class the instance runs must be registered separately via {@link registerContractClass}, before
293
+ * or after this call; registration performs no validation, so a missing or mismatched artifact only surfaces when
294
+ * the contract is later simulated. This is automatically called by aztec.js when deploying a contract.
137
295
  *
138
- * @param contract - A contract instance to register, with an optional artifact which can be omitted if the contract class has already been registered.
139
- */
140
- registerContract(contract: {
141
- instance: ContractInstanceWithAddress;
142
- artifact?: ContractArtifact;
143
- }): Promise<void>;
144
- /**
145
- * Updates a deployed contract in the PXE. This is used to update the contract artifact when
146
- * an update has happened, so the new code can be used in the simulation of local transactions.
147
- * This is called by aztec.js when instantiating a contract in a given address with a mismatching artifact.
148
- * @param contractAddress - The address of the contract to update.
149
- * @param artifact - The updated artifact for the contract.
150
- * @throws If the artifact's contract class is not found in the PXE or if the contract class is different from
151
- * the current one (current one from the point of view of the node to which the PXE is connected).
296
+ * @param instance - The address preimage of the contract instance to register. The address is derived from it.
297
+ * @returns The address of the registered instance.
152
298
  */
153
- updateContract(contractAddress: AztecAddress, artifact: ContractArtifact): Promise<void>;
299
+ registerContract(instance: ContractInstancePreimage): Promise<AztecAddress>;
154
300
  /**
155
301
  * Retrieves the addresses of contracts added to this PXE.
156
302
  * @returns An array of contracts addresses registered on this PXE.
157
303
  */
158
304
  getContracts(): Promise<AztecAddress[]>;
159
- /**
160
- * A debugging utility to get notes based on the provided filter.
161
- *
162
- * Note that this should not be used in production code because the structure of notes is considered to be
163
- * an implementation detail of contracts. This is only meant to be used for debugging purposes. If you need to obtain
164
- * note-related information in production code, please implement a custom utility function on your contract and call
165
- * that function instead (e.g. `get_balance(owner: AztecAddress) -> u128` utility function on a Token contract).
166
- *
167
- * @param filter - The filter to apply to the notes.
168
- * @returns The requested notes.
169
- */
170
- getNotes(filter: NotesFilter): Promise<NoteDao[]>;
171
305
  /**
172
306
  * Proves the private portion of a simulated transaction, ready to send to the network
173
307
  * (where validators prove the public portion).
174
308
  *
175
309
  * @param txRequest - An authenticated tx request ready for proving
310
+ * @param scopes - Addresses whose private state and keys are accessible during private execution.
176
311
  * @returns A result containing the proof and public inputs of the tail circuit.
177
312
  * @throws If contract code not found, or public simulation reverts.
178
313
  * Also throws if simulatePublic is true and public simulation reverts.
179
314
  */
180
- proveTx(txRequest: TxExecutionRequest): Promise<TxProvingResult>;
315
+ proveTx(txRequest: TxExecutionRequest, { scopes, senderForTags }: ProveTxOpts): Promise<TxProvingResult>;
181
316
  /**
182
317
  * Profiles a transaction, reporting gate counts (unless disabled) and returns an execution trace.
183
- *
184
- * @param txRequest - An authenticated tx request ready for simulation
185
- * @param msgSender - (Optional) The message sender to use for the simulation.
186
- * @param skipTxValidation - (Optional) If false, this function throws if the transaction is unable to be included in a block at the current state.
318
+ * @param txRequest - An authenticated tx request ready for simulation.
187
319
  * @returns A trace of the program execution with gate counts.
188
320
  * @throws If the code for the functions executed in this transaction have not been made available via `addContracts`.
189
321
  */
190
- profileTx(txRequest: TxExecutionRequest, profileMode: 'full' | 'execution-steps' | 'gates', skipProofGeneration?: boolean): Promise<TxProfileResult>;
322
+ profileTx(txRequest: TxExecutionRequest, { profileMode, skipProofGeneration, scopes, senderForTags }: ProfileTxOpts): Promise<TxProfileResult>;
191
323
  /**
192
324
  * Simulates a transaction based on the provided preauthenticated execution request.
193
325
  * This will run a local simulation of private execution (and optionally of public as well), run the
@@ -199,42 +331,36 @@ export declare class PXE {
199
331
  * In that case, the transaction returned is only potentially ready to be sent to the network for execution.
200
332
  *
201
333
  *
202
- * @param txRequest - An authenticated tx request ready for simulation
203
- * @param simulatePublic - Whether to simulate the public part of the transaction.
204
- * @param skipTxValidation - (Optional) If false, this function throws if the transaction is unable to be included in a block at the current state.
205
- * @param skipFeeEnforcement - (Optional) If false, fees are enforced.
206
- * @param overrides - (Optional) State overrides for the simulation, such as msgSender, contract instances and artifacts.
207
- * @param scopes - (Optional) The accounts whose notes we can access in this call. Currently optional and will default to all.
334
+ * @param txRequest - An authenticated tx request ready for simulation.
208
335
  * @returns A simulated transaction result object that includes public and private return values.
209
336
  * @throws If the code for the functions executed in this transaction have not been made available via `addContracts`.
210
337
  * Also throws if simulatePublic is true and public simulation reverts.
211
338
  *
212
339
  * TODO(#7456) Prevent msgSender being defined here for the first call
213
340
  */
214
- simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, skipTxValidation?: boolean, skipFeeEnforcement?: boolean, overrides?: SimulationOverrides, scopes?: AztecAddress[]): Promise<TxSimulationResult>;
341
+ simulateTx(txRequest: TxExecutionRequest, { simulatePublic, skipTxValidation, skipFeeEnforcement, skipKernels, overrides, scopes, senderForTags }: SimulateTxOpts): Promise<TxSimulationResult>;
215
342
  /**
216
- * Simulate the execution of a contract utility function.
217
- *
343
+ * Executes a contract utility function.
218
344
  * @param call - The function call containing the function details, arguments, and target contract address.
219
- * @param authwits - (Optional) The authentication witnesses required for the function call.
220
- * @param scopes - (Optional) The accounts whose notes we can access in this call. Currently optional and will
221
- * default to all.
222
- * @returns The result of the utility function call, structured based on the function ABI.
223
345
  */
224
- simulateUtility(call: FunctionCall, authwits?: AuthWitness[], scopes?: AztecAddress[]): Promise<UtilitySimulationResult>;
346
+ executeUtility(call: FunctionCall, { authwits, scopes }?: ExecuteUtilityOpts): Promise<UtilityExecutionResult>;
225
347
  /**
226
348
  * Returns the private events given search parameters.
227
- * @param contractAddress - The address of the contract to get events from.
228
349
  * @param eventSelector - Event selector to search for.
229
- * @param from - The block number to search from.
230
- * @param numBlocks - The amount of blocks to search.
231
- * @param recipients - The addresses that decrypted the logs.
350
+ * @param filter
351
+ * contractAddress - The address of the contract to get events from. Required.
352
+ * scopes - One or more event scope addresses to filter by. Required.
353
+ * fromBlock - The block number to search from (inclusive). Optional. If provided, it must be >= 0.
354
+ * Defaults to 0.
355
+ * If toBlock is defined but fromBlock is not, fromBlock defaults to toBlock - 1.
356
+ * toBlock - The block number to search up to (exclusive). Optional. If provided, it must be > 0.
357
+ * Defaults to the latest known block to PXE + 1.
232
358
  * @returns - The packed events with block and tx metadata.
233
359
  */
234
- getPrivateEvents(contractAddress: AztecAddress, eventSelector: EventSelector, from: number, numBlocks: number, recipients: AztecAddress[]): Promise<PrivateEvent[]>;
360
+ getPrivateEvents(eventSelector: EventSelector, filter: PrivateEventFilter): Promise<PackedPrivateEvent[]>;
235
361
  /**
236
- * Stops the PXE's job queue.
362
+ * Stops the PXE's job queue and closes the backing store.
237
363
  */
238
364
  stop(): Promise<void>;
239
365
  }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyx5QkFBeUIsRUFBeUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixhQUFhLEVBQ2IsWUFBWSxFQUtiLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGVBQWUsRUFDZixLQUFLLG1CQUFtQixFQUN4QixLQUFLLDJCQUEyQixFQUNoQyxLQUFLLGNBQWMsRUFHcEIsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU10RixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQU1MLG1CQUFtQixFQUduQixrQkFBa0IsRUFDbEIsTUFBTSxFQUNOLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN4QixN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
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQXFDLE1BQU0sdUJBQXVCLENBQUM7QUFJdkYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUF5QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBSWIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssd0JBQXdCLEVBQzdCLEtBQUssbUNBQW1DLEVBQ3hDLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssY0FBYyxFQUVwQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVF0RyxPQUFPLEVBQ0wsV0FBVyxFQUVYLEtBQUssSUFBSSxFQUtULG1CQUFtQixFQUduQixr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