@aztec/pxe 0.0.1-commit.b9865e97 → 0.0.1-commit.be03c316

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 (397) hide show
  1. package/dest/bin/check_oracle_version.js +8 -23
  2. package/dest/bin/index.d.ts +2 -2
  3. package/dest/bin/index.d.ts.map +1 -1
  4. package/dest/bin/index.js +1 -1
  5. package/dest/bin/oracle_version_helpers.d.ts +16 -8
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -1
  7. package/dest/bin/oracle_version_helpers.js +22 -69
  8. package/dest/block_synchronizer/block_stream_source.d.ts +5 -5
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -1
  10. package/dest/block_synchronizer/block_stream_source.js +4 -29
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +18 -14
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +54 -18
  14. package/dest/config/index.d.ts +2 -1
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +1 -0
  17. package/dest/contract/contract_class_service.d.ts +31 -0
  18. package/dest/contract/contract_class_service.d.ts.map +1 -0
  19. package/dest/contract/contract_class_service.js +68 -0
  20. package/dest/contract/contract_sync_service.d.ts +48 -0
  21. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  22. package/dest/{contract_sync → contract}/contract_sync_service.js +26 -45
  23. package/dest/contract/helpers.d.ts +7 -0
  24. package/dest/contract/helpers.d.ts.map +1 -0
  25. package/dest/contract/helpers.js +20 -0
  26. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  27. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  28. package/dest/contract/skip_sync_contracts.js +18 -0
  29. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  30. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  31. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  32. package/dest/contract_function_simulator/aztec_node_read_cache.d.ts +39 -0
  33. package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +1 -0
  34. package/dest/contract_function_simulator/aztec_node_read_cache.js +60 -0
  35. package/dest/contract_function_simulator/contract_function_simulator.d.ts +19 -18
  36. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/contract_function_simulator.js +63 -32
  38. package/dest/contract_function_simulator/execution_note_cache.d.ts +3 -9
  39. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/execution_note_cache.js +8 -28
  41. package/dest/contract_function_simulator/index.d.ts +19 -10
  42. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/index.js +6 -9
  44. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +8 -27
  45. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +8 -23
  47. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  48. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  49. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  50. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  51. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  52. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  53. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +1 -1
  54. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  55. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  57. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  58. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  60. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +11 -12
  61. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +6 -49
  63. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +10 -8
  64. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  65. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -60
  66. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +2 -2
  67. package/dest/contract_function_simulator/noir-structs/option.d.ts +9 -11
  68. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/noir-structs/option.js +18 -13
  70. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  71. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  72. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  73. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  74. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  75. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  76. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +6 -9
  77. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -1
  78. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -24
  79. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  80. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  81. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  82. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  83. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  84. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  85. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  86. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  87. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  88. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  89. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  90. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  91. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  92. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  93. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  94. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  95. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  96. package/dest/contract_function_simulator/oracle/index.js +1 -1
  97. package/dest/contract_function_simulator/oracle/interfaces.d.ts +2 -3
  98. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  99. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  100. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  101. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  102. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  103. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  104. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  105. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +43 -31
  106. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
  107. package/dest/contract_function_simulator/oracle/oracle_registry.js +259 -29
  108. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +180 -45
  109. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -1
  110. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1024 -341
  111. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  112. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  113. package/dest/contract_function_simulator/oracle/private_execution.js +2 -3
  114. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +21 -8
  115. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  116. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +132 -22
  117. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +77 -34
  118. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  119. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +247 -106
  120. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  121. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  122. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  123. package/dest/debug/pxe_debug_utils.d.ts +2 -2
  124. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  125. package/dest/entrypoints/client/bundle/index.d.ts +2 -1
  126. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  127. package/dest/entrypoints/client/bundle/index.js +1 -0
  128. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  129. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  130. package/dest/entrypoints/client/bundle/utils.js +17 -6
  131. package/dest/entrypoints/client/lazy/index.d.ts +2 -1
  132. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  133. package/dest/entrypoints/client/lazy/index.js +1 -0
  134. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  135. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  136. package/dest/entrypoints/client/lazy/utils.js +17 -6
  137. package/dest/entrypoints/client/store.d.ts +14 -0
  138. package/dest/entrypoints/client/store.d.ts.map +1 -0
  139. package/dest/entrypoints/client/store.js +42 -0
  140. package/dest/entrypoints/pxe_creation_options.d.ts +9 -3
  141. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  142. package/dest/entrypoints/server/index.d.ts +6 -3
  143. package/dest/entrypoints/server/index.d.ts.map +1 -1
  144. package/dest/entrypoints/server/index.js +4 -2
  145. package/dest/entrypoints/server/store.d.ts +18 -0
  146. package/dest/entrypoints/server/store.d.ts.map +1 -0
  147. package/dest/entrypoints/server/store.js +28 -0
  148. package/dest/entrypoints/server/utils.d.ts +1 -1
  149. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  150. package/dest/entrypoints/server/utils.js +16 -4
  151. package/dest/error_enriching.d.ts +5 -3
  152. package/dest/error_enriching.d.ts.map +1 -1
  153. package/dest/error_enriching.js +13 -11
  154. package/dest/hooks/execution_hooks.d.ts +31 -11
  155. package/dest/hooks/execution_hooks.d.ts.map +1 -1
  156. package/dest/hooks/execution_hooks.js +3 -3
  157. package/dest/hooks/index.d.ts +4 -3
  158. package/dest/hooks/index.d.ts.map +1 -1
  159. package/dest/hooks/index.js +1 -0
  160. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  161. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  162. package/dest/hooks/resolve_custom_request.js +3 -0
  163. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  164. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  165. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  166. package/dest/logs/log_service.d.ts +8 -6
  167. package/dest/logs/log_service.d.ts.map +1 -1
  168. package/dest/logs/log_service.js +88 -28
  169. package/dest/messages/tx_resolver_service.d.ts +17 -0
  170. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  171. package/dest/messages/{message_context_service.js → tx_resolver_service.js} +13 -8
  172. package/dest/notes/note_service.d.ts +1 -1
  173. package/dest/notes/note_service.js +1 -1
  174. package/dest/oracle_version.d.ts +3 -3
  175. package/dest/oracle_version.js +5 -5
  176. package/dest/private_kernel/batch_planner.d.ts +1 -1
  177. package/dest/private_kernel/batch_planner.d.ts.map +1 -1
  178. package/dest/private_kernel/batch_planner.js +1 -1
  179. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
  180. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  181. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +6 -2
  182. package/dest/private_kernel/hints/test_utils.js +1 -1
  183. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  184. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  185. package/dest/private_kernel/private_kernel_execution_prover.js +61 -40
  186. package/dest/private_kernel/private_kernel_oracle.d.ts +4 -2
  187. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  188. package/dest/private_kernel/private_kernel_oracle.js +17 -5
  189. package/dest/pxe.d.ts +114 -48
  190. package/dest/pxe.d.ts.map +1 -1
  191. package/dest/pxe.js +225 -139
  192. package/dest/storage/allowed_scopes.d.ts +6 -0
  193. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  194. package/dest/storage/allowed_scopes.js +7 -0
  195. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
  196. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  197. package/dest/storage/anchor_block_store/anchor_block_store.js +8 -6
  198. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +1 -1
  199. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -1
  200. package/dest/storage/backwards_compatibility_tests/schema_tests.js +129 -49
  201. package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
  202. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
  203. package/dest/storage/capsule_store/capsule_service.js +6 -9
  204. package/dest/storage/contract_store/contract_store.d.ts +27 -24
  205. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  206. package/dest/storage/contract_store/contract_store.js +64 -75
  207. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  208. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  209. package/dest/storage/fact_store/fact_service.js +45 -0
  210. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  211. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  212. package/dest/storage/fact_store/fact_store.js +408 -0
  213. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  214. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  215. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  216. package/dest/storage/fact_store/index.d.ts +6 -0
  217. package/dest/storage/fact_store/index.d.ts.map +1 -0
  218. package/dest/storage/fact_store/index.js +4 -0
  219. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  220. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  221. package/dest/storage/fact_store/origin_state.js +60 -0
  222. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  223. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  224. package/dest/storage/fact_store/stored_fact.js +64 -0
  225. package/dest/storage/index.d.ts +3 -2
  226. package/dest/storage/index.d.ts.map +1 -1
  227. package/dest/storage/index.js +2 -1
  228. package/dest/storage/metadata.d.ts +2 -2
  229. package/dest/storage/metadata.d.ts.map +1 -1
  230. package/dest/storage/metadata.js +1 -1
  231. package/dest/storage/note_store/note_store.d.ts +42 -33
  232. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  233. package/dest/storage/note_store/note_store.js +197 -168
  234. package/dest/storage/note_store/stored_note.d.ts +3 -8
  235. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  236. package/dest/storage/note_store/stored_note.js +4 -20
  237. package/dest/storage/open_pxe_stores.d.ts +5 -3
  238. package/dest/storage/open_pxe_stores.d.ts.map +1 -1
  239. package/dest/storage/open_pxe_stores.js +5 -3
  240. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  241. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  242. package/dest/storage/private_event_store/private_event_store.js +40 -43
  243. package/dest/storage/store_identity.d.ts +35 -0
  244. package/dest/storage/store_identity.d.ts.map +1 -0
  245. package/dest/storage/store_identity.js +44 -0
  246. package/dest/storage/tagging_store/index.d.ts +2 -2
  247. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  248. package/dest/storage/tagging_store/index.js +1 -1
  249. package/dest/storage/tagging_store/sender_tagging_store.d.ts +19 -3
  250. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  251. package/dest/storage/tagging_store/sender_tagging_store.js +48 -11
  252. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  253. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  254. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  255. package/dest/tagging/constants.d.ts +3 -2
  256. package/dest/tagging/constants.d.ts.map +1 -1
  257. package/dest/tagging/constants.js +28 -10
  258. package/dest/tagging/index.d.ts +2 -2
  259. package/dest/tagging/index.d.ts.map +1 -1
  260. package/dest/tagging/index.js +1 -1
  261. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +26 -8
  262. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -1
  263. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +95 -20
  264. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +1 -1
  265. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +1 -1
  266. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  267. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +6 -2
  268. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  269. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  270. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  271. package/package.json +17 -17
  272. package/src/bin/check_oracle_version.ts +8 -24
  273. package/src/bin/index.ts +1 -1
  274. package/src/bin/oracle_version_helpers.ts +23 -90
  275. package/src/block_synchronizer/block_stream_source.ts +6 -45
  276. package/src/block_synchronizer/block_synchronizer.ts +70 -29
  277. package/src/config/index.ts +1 -0
  278. package/src/contract/contract_class_service.ts +83 -0
  279. package/src/{contract_sync → contract}/contract_sync_service.ts +37 -50
  280. package/src/contract/helpers.ts +35 -0
  281. package/src/contract/skip_sync_contracts.ts +23 -0
  282. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  283. package/src/contract_function_simulator/aztec_node_read_cache.ts +89 -0
  284. package/src/contract_function_simulator/contract_function_simulator.ts +96 -42
  285. package/src/contract_function_simulator/execution_note_cache.ts +7 -28
  286. package/src/contract_function_simulator/index.ts +48 -13
  287. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +12 -24
  288. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  289. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  290. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  291. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  292. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  293. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +20 -46
  294. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +13 -60
  295. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
  296. package/src/contract_function_simulator/noir-structs/option.ts +17 -11
  297. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  298. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  299. package/src/contract_function_simulator/noir-structs/provided_secret.ts +4 -26
  300. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  301. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  302. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  303. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  304. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  305. package/src/contract_function_simulator/oracle/index.ts +1 -15
  306. package/src/contract_function_simulator/oracle/interfaces.ts +1 -2
  307. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  308. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  309. package/src/contract_function_simulator/oracle/oracle_registry.ts +172 -47
  310. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +814 -315
  311. package/src/contract_function_simulator/oracle/private_execution.ts +2 -3
  312. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +167 -30
  313. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +399 -135
  314. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  315. package/src/debug/pxe_debug_utils.ts +1 -1
  316. package/src/entrypoints/client/bundle/index.ts +1 -0
  317. package/src/entrypoints/client/bundle/utils.ts +24 -5
  318. package/src/entrypoints/client/lazy/index.ts +1 -0
  319. package/src/entrypoints/client/lazy/utils.ts +24 -5
  320. package/src/entrypoints/client/store.ts +54 -0
  321. package/src/entrypoints/pxe_creation_options.ts +8 -2
  322. package/src/entrypoints/server/index.ts +6 -2
  323. package/src/entrypoints/server/store.ts +47 -0
  324. package/src/entrypoints/server/utils.ts +31 -9
  325. package/src/error_enriching.ts +27 -11
  326. package/src/hooks/execution_hooks.ts +32 -12
  327. package/src/hooks/index.ts +8 -2
  328. package/src/hooks/resolve_custom_request.ts +24 -0
  329. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  330. package/src/logs/log_service.ts +100 -37
  331. package/src/messages/{message_context_service.ts → tx_resolver_service.ts} +16 -9
  332. package/src/notes/note_service.ts +1 -1
  333. package/src/oracle_version.ts +5 -5
  334. package/src/private_kernel/batch_planner.ts +0 -1
  335. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +11 -1
  336. package/src/private_kernel/hints/test_utils.ts +1 -1
  337. package/src/private_kernel/private_kernel_execution_prover.ts +112 -56
  338. package/src/private_kernel/private_kernel_oracle.ts +23 -4
  339. package/src/pxe.ts +328 -159
  340. package/src/storage/allowed_scopes.ts +14 -0
  341. package/src/storage/anchor_block_store/anchor_block_store.ts +8 -6
  342. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +6 -6
  343. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +1 -1
  344. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  345. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +12 -12
  346. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +9 -15
  347. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +24 -4
  348. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +11 -3
  349. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +12 -4
  350. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  351. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +29 -9
  352. package/src/storage/backwards_compatibility_tests/schema_tests.ts +141 -50
  353. package/src/storage/capsule_store/capsule_service.ts +8 -13
  354. package/src/storage/contract_store/contract_store.ts +86 -93
  355. package/src/storage/fact_store/fact_service.ts +69 -0
  356. package/src/storage/fact_store/fact_store.ts +487 -0
  357. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  358. package/src/storage/fact_store/index.ts +15 -0
  359. package/src/storage/fact_store/origin_state.ts +84 -0
  360. package/src/storage/fact_store/stored_fact.ts +80 -0
  361. package/src/storage/index.ts +2 -1
  362. package/src/storage/metadata.ts +1 -1
  363. package/src/storage/note_store/note_store.ts +226 -187
  364. package/src/storage/note_store/stored_note.ts +5 -27
  365. package/src/storage/open_pxe_stores.ts +6 -3
  366. package/src/storage/private_event_store/private_event_store.ts +49 -55
  367. package/src/storage/store_identity.ts +72 -0
  368. package/src/storage/tagging_store/index.ts +1 -1
  369. package/src/storage/tagging_store/sender_tagging_store.ts +62 -15
  370. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  371. package/src/tagging/constants.ts +30 -10
  372. package/src/tagging/index.ts +1 -1
  373. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +148 -30
  374. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +1 -1
  375. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +6 -2
  376. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  377. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -89
  378. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  379. package/dest/contract_function_simulator/oracle/oracle.js +0 -552
  380. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  381. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  382. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -51
  383. package/dest/contract_sync/contract_sync_service.d.ts +0 -42
  384. package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
  385. package/dest/contract_sync/helpers.d.ts +0 -27
  386. package/dest/contract_sync/helpers.d.ts.map +0 -1
  387. package/dest/contract_sync/helpers.js +0 -53
  388. package/dest/messages/message_context_service.d.ts +0 -17
  389. package/dest/messages/message_context_service.d.ts.map +0 -1
  390. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  391. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  392. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  393. package/src/contract_function_simulator/oracle/oracle.ts +0 -711
  394. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -60
  395. package/src/contract_sync/helpers.ts +0 -86
  396. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +0 -16
  397. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
@@ -1,6 +1,7 @@
1
+ import { CircuitKind } from '@aztec/bb.js';
1
2
  import { MAX_APPS_PER_KERNEL } from '@aztec/constants';
2
3
  import { uniqueBy } from '@aztec/foundation/collection';
3
- import { vkAsFieldsMegaHonk } from '@aztec/foundation/crypto/keys';
4
+ import { vkAsFields } from '@aztec/foundation/crypto/keys';
4
5
  import { Fr } from '@aztec/foundation/curves/bn254';
5
6
  import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
6
7
  import { pushTestData } from '@aztec/foundation/testing';
@@ -20,12 +21,16 @@ import {
20
21
  type PrivateKernelExecutionProofOutput,
21
22
  PrivateKernelInit2CircuitPrivateInputs,
22
23
  PrivateKernelInit3CircuitPrivateInputs,
24
+ PrivateKernelInit4CircuitPrivateInputs,
25
+ PrivateKernelInit5CircuitPrivateInputs,
23
26
  PrivateKernelInitCircuitPrivateInputs,
24
27
  PrivateKernelInner2CircuitPrivateInputs,
25
28
  PrivateKernelInner3CircuitPrivateInputs,
29
+ PrivateKernelInner4CircuitPrivateInputs,
30
+ PrivateKernelInner5CircuitPrivateInputs,
26
31
  PrivateKernelInnerCircuitPrivateInputs,
32
+ PrivateKernelResetTailCircuitPrivateInputs,
27
33
  type PrivateKernelSimulateOutput,
28
- PrivateKernelTailCircuitPrivateInputs,
29
34
  type PrivateKernelTailCircuitPublicInputs,
30
35
  PrivateVerificationKeyHints,
31
36
  type UpdatedClassIdHints,
@@ -145,6 +150,7 @@ export class PrivateKernelExecutionProver {
145
150
  bytecode: output.bytecode,
146
151
  witness: output.outputWitness,
147
152
  vk: output.verificationKey.keyAsBytes,
153
+ kind: CircuitKind.Kernel,
148
154
  timings: {
149
155
  witgen: witgenTimer.ms(),
150
156
  },
@@ -170,7 +176,6 @@ export class PrivateKernelExecutionProver {
170
176
  previousOutput: output,
171
177
  txRequest,
172
178
  isPrivateOnlyTx,
173
- firstNullifierHint: executionResult.firstNullifier,
174
179
  minRevertibleSideEffectCounter,
175
180
  executionSteps,
176
181
  generateWitnesses,
@@ -179,7 +184,8 @@ export class PrivateKernelExecutionProver {
179
184
  firstIteration = false;
180
185
  }
181
186
 
182
- // Final reset: include siloing of note hashes, nullifiers and private logs.
187
+ // Terminal reset+tail. The final reset must be performed exactly once because each tx has at
188
+ // least one nullifier that requires siloing, and siloing cannot be done multiple times.
183
189
  const finalResetBuilder = new PrivateKernelResetPrivateInputsBuilder(
184
190
  output,
185
191
  [],
@@ -187,29 +193,9 @@ export class PrivateKernelExecutionProver {
187
193
  splitCounter,
188
194
  );
189
195
  if (!finalResetBuilder.needsReset()) {
190
- // The final reset must be performed exactly once, because each tx has at least one nullifier that requires
191
- // siloing, and siloing cannot be done multiple times.
192
- // While, in theory, it might be possible to silo note hashes first and then run another reset to silo nullifiers
193
- // and/or private logs, we currently don't have standalone dimensions for the arrays that require siloing. As a
194
- // result, all necessary siloing must be done together in a single reset.
196
+ // Siloing for note hashes, nullifiers, and private logs is dimensioned as one terminal reset.
195
197
  // Refer to the possible combinations of dimensions in private_kernel_reset_config.json.
196
198
  throw new Error('Nothing to reset for the final reset.');
197
- } else {
198
- const witgenTimer = new Timer();
199
- const privateInputs = await finalResetBuilder.build(this.oracle);
200
- output = generateWitnesses
201
- ? await this.proofCreator.generateResetOutput(privateInputs)
202
- : await this.proofCreator.simulateReset(privateInputs);
203
-
204
- executionSteps.push({
205
- functionName: 'private_kernel_reset',
206
- bytecode: output.bytecode,
207
- witness: output.outputWitness,
208
- vk: output.verificationKey.keyAsBytes,
209
- timings: {
210
- witgen: witgenTimer.ms(),
211
- },
212
- });
213
199
  }
214
200
 
215
201
  if (output.publicInputs.feePayer.isZero() && skipFeeEnforcement) {
@@ -218,37 +204,39 @@ export class PrivateKernelExecutionProver {
218
204
  }
219
205
  output.publicInputs.feePayer = new AztecAddress(Fr.MAX_FIELD_VALUE);
220
206
  }
221
- // Private tail.
222
- const vkData = await this.getVkData(output.verificationKey);
223
- const previousKernelData = new PrivateKernelData(output.publicInputs, vkData);
224
-
225
- this.log.debug(
226
- `Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`,
227
- );
228
207
 
229
208
  // TODO: Enable padding once we better understand the final amounts to pad to.
230
209
  const paddedSideEffectAmounts = PaddedSideEffectAmounts.empty();
231
210
 
232
211
  // Round the aggregated expirationTimestamp down to reduce precision and avoid leaking which private
233
212
  // functions were called via their exact expiration offsets.
234
- const expirationTimestampUpperBound = computeTxExpirationTimestamp(previousKernelData.publicInputs);
235
-
236
- const privateInputs = new PrivateKernelTailCircuitPrivateInputs(
237
- previousKernelData,
213
+ const expirationTimestampUpperBound = computeTxExpirationTimestamp(output.publicInputs);
214
+
215
+ const resetInputs = await finalResetBuilder.build(this.oracle);
216
+ const mergedInputs = new PrivateKernelResetTailCircuitPrivateInputs(
217
+ resetInputs.previousKernel,
218
+ resetInputs.paddedSideEffects,
219
+ resetInputs.hints,
220
+ resetInputs.dimensions,
238
221
  paddedSideEffectAmounts,
239
222
  expirationTimestampUpperBound,
240
223
  );
241
224
 
225
+ this.log.debug(
226
+ `Calling terminal private kernel reset+tail (${mergedInputs.isForPublic() ? 'to-public' : 'to-rollup'}) with hwm ${output.publicInputs.minRevertibleSideEffectCounter}`,
227
+ );
228
+
242
229
  const witgenTimer = new Timer();
243
230
  const tailOutput = generateWitnesses
244
- ? await this.proofCreator.generateTailOutput(privateInputs)
245
- : await this.proofCreator.simulateTail(privateInputs);
231
+ ? await this.proofCreator.generateResetTailOutput(mergedInputs)
232
+ : await this.proofCreator.simulateResetTail(mergedInputs);
246
233
 
247
234
  executionSteps.push({
248
- functionName: 'private_kernel_tail',
235
+ functionName: mergedInputs.isForPublic() ? 'private_kernel_reset_tail_to_public' : 'private_kernel_reset_tail',
249
236
  bytecode: tailOutput.bytecode,
250
237
  witness: tailOutput.outputWitness,
251
238
  vk: tailOutput.verificationKey.keyAsBytes,
239
+ kind: CircuitKind.Kernel,
252
240
  timings: {
253
241
  witgen: witgenTimer.ms(),
254
242
  },
@@ -280,6 +268,7 @@ export class PrivateKernelExecutionProver {
280
268
  bytecode: hidingOutput.bytecode,
281
269
  witness: hidingOutput.outputWitness,
282
270
  vk: hidingOutput.verificationKey.keyAsBytes,
271
+ kind: CircuitKind.HidingKernel,
283
272
  timings: {
284
273
  witgen: witgenTimer.ms(),
285
274
  },
@@ -289,7 +278,11 @@ export class PrivateKernelExecutionProver {
289
278
  if (profileMode == 'gates' || profileMode == 'full') {
290
279
  for (const entry of executionSteps) {
291
280
  const gateCountTimer = new Timer();
292
- const gateCount = await this.proofCreator.computeGateCountForCircuit(entry.bytecode, entry.functionName);
281
+ const gateCount = await this.proofCreator.computeGateCountForCircuit(
282
+ entry.bytecode,
283
+ entry.functionName,
284
+ entry.kind,
285
+ );
293
286
  entry.gateCount = gateCount;
294
287
  entry.timings.gateCount = gateCountTimer.ms();
295
288
  }
@@ -385,6 +378,7 @@ export class PrivateKernelExecutionProver {
385
378
  bytecode: next.acir,
386
379
  witness: next.partialWitness,
387
380
  vk: next.vk,
381
+ kind: CircuitKind.App,
388
382
  timings: {
389
383
  witgen: next.profileResult?.timings.witgen ?? 0,
390
384
  oracles: next.profileResult?.timings.oracles,
@@ -418,8 +412,8 @@ export class PrivateKernelExecutionProver {
418
412
  ) {
419
413
  const { contractAddress, functionSelector } = publicInputs.callContext;
420
414
 
421
- const vkAsFields = await vkAsFieldsMegaHonk(vkAsBuffer);
422
- const vk = await VerificationKeyAsFields.fromKey(vkAsFields);
415
+ const vkFields = await vkAsFields(vkAsBuffer, CircuitKind.App);
416
+ const vk = await VerificationKeyAsFields.fromKey(vkFields);
423
417
 
424
418
  const { currentContractClassId, publicKeys, saltedInitializationHash } =
425
419
  await this.oracle.getContractAddressPreimage(contractAddress);
@@ -457,7 +451,6 @@ export class PrivateKernelExecutionProver {
457
451
  previousOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>;
458
452
  txRequest: TxRequest;
459
453
  isPrivateOnlyTx: boolean;
460
- firstNullifierHint: Fr;
461
454
  minRevertibleSideEffectCounter: number;
462
455
  executionSteps: PrivateExecutionStep[];
463
456
  generateWitnesses: boolean;
@@ -468,7 +461,6 @@ export class PrivateKernelExecutionProver {
468
461
  previousOutput,
469
462
  txRequest,
470
463
  isPrivateOnlyTx,
471
- firstNullifierHint,
472
464
  minRevertibleSideEffectCounter,
473
465
  executionSteps,
474
466
  generateWitnesses,
@@ -488,12 +480,9 @@ export class PrivateKernelExecutionProver {
488
480
  ProtocolContractsList,
489
481
  apps[0],
490
482
  isPrivateOnlyTx,
491
- firstNullifierHint,
492
483
  minRevertibleSideEffectCounter,
493
484
  );
494
- this.log.debug(
495
- `Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`,
496
- );
485
+ this.log.debug(`Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx}`);
497
486
  pushTestData('private-kernel-inputs-init', proofInput);
498
487
  output = generateWitnesses
499
488
  ? await this.proofCreator.generateInitOutput(proofInput)
@@ -509,12 +498,9 @@ export class PrivateKernelExecutionProver {
509
498
  apps[0],
510
499
  apps[1],
511
500
  isPrivateOnlyTx,
512
- firstNullifierHint,
513
501
  minRevertibleSideEffectCounter,
514
502
  );
515
- this.log.debug(
516
- `Calling private kernel init_2 with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`,
517
- );
503
+ this.log.debug(`Calling private kernel init_2 with isPrivateOnly ${isPrivateOnlyTx}`);
518
504
  pushTestData('private-kernel-inputs-init-2', proofInput);
519
505
  output = generateWitnesses
520
506
  ? await this.proofCreator.generateInit2Output(proofInput)
@@ -531,12 +517,9 @@ export class PrivateKernelExecutionProver {
531
517
  apps[1],
532
518
  apps[2],
533
519
  isPrivateOnlyTx,
534
- firstNullifierHint,
535
520
  minRevertibleSideEffectCounter,
536
521
  );
537
- this.log.debug(
538
- `Calling private kernel init_3 with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`,
539
- );
522
+ this.log.debug(`Calling private kernel init_3 with isPrivateOnly ${isPrivateOnlyTx}`);
540
523
  pushTestData('private-kernel-inputs-init-3', proofInput);
541
524
  output = generateWitnesses
542
525
  ? await this.proofCreator.generateInit3Output(proofInput)
@@ -544,6 +527,47 @@ export class PrivateKernelExecutionProver {
544
527
  functionName = 'private_kernel_init_3';
545
528
  break;
546
529
  }
530
+ case 4: {
531
+ const proofInput = new PrivateKernelInit4CircuitPrivateInputs(
532
+ txRequest,
533
+ vkTreeRoot,
534
+ ProtocolContractsList,
535
+ apps[0],
536
+ apps[1],
537
+ apps[2],
538
+ apps[3],
539
+ isPrivateOnlyTx,
540
+ minRevertibleSideEffectCounter,
541
+ );
542
+ this.log.debug(`Calling private kernel init_4 with isPrivateOnly ${isPrivateOnlyTx}`);
543
+ pushTestData('private-kernel-inputs-init-4', proofInput);
544
+ output = generateWitnesses
545
+ ? await this.proofCreator.generateInit4Output(proofInput)
546
+ : await this.proofCreator.simulateInit4(proofInput);
547
+ functionName = 'private_kernel_init_4';
548
+ break;
549
+ }
550
+ case 5: {
551
+ const proofInput = new PrivateKernelInit5CircuitPrivateInputs(
552
+ txRequest,
553
+ vkTreeRoot,
554
+ ProtocolContractsList,
555
+ apps[0],
556
+ apps[1],
557
+ apps[2],
558
+ apps[3],
559
+ apps[4],
560
+ isPrivateOnlyTx,
561
+ minRevertibleSideEffectCounter,
562
+ );
563
+ this.log.debug(`Calling private kernel init_5 with isPrivateOnly ${isPrivateOnlyTx}`);
564
+ pushTestData('private-kernel-inputs-init-5', proofInput);
565
+ output = generateWitnesses
566
+ ? await this.proofCreator.generateInit5Output(proofInput)
567
+ : await this.proofCreator.simulateInit5(proofInput);
568
+ functionName = 'private_kernel_init_5';
569
+ break;
570
+ }
547
571
  default:
548
572
  throw new Error(`Unsupported init kernel batch size: ${apps.length}`);
549
573
  }
@@ -578,6 +602,37 @@ export class PrivateKernelExecutionProver {
578
602
  functionName = 'private_kernel_inner_3';
579
603
  break;
580
604
  }
605
+ case 4: {
606
+ const proofInput = new PrivateKernelInner4CircuitPrivateInputs(
607
+ previousKernelData,
608
+ apps[0],
609
+ apps[1],
610
+ apps[2],
611
+ apps[3],
612
+ );
613
+ pushTestData('private-kernel-inputs-inner-4', proofInput);
614
+ output = generateWitnesses
615
+ ? await this.proofCreator.generateInner4Output(proofInput)
616
+ : await this.proofCreator.simulateInner4(proofInput);
617
+ functionName = 'private_kernel_inner_4';
618
+ break;
619
+ }
620
+ case 5: {
621
+ const proofInput = new PrivateKernelInner5CircuitPrivateInputs(
622
+ previousKernelData,
623
+ apps[0],
624
+ apps[1],
625
+ apps[2],
626
+ apps[3],
627
+ apps[4],
628
+ );
629
+ pushTestData('private-kernel-inputs-inner-5', proofInput);
630
+ output = generateWitnesses
631
+ ? await this.proofCreator.generateInner5Output(proofInput)
632
+ : await this.proofCreator.simulateInner5(proofInput);
633
+ functionName = 'private_kernel_inner_5';
634
+ break;
635
+ }
581
636
  default:
582
637
  throw new Error(`Unsupported inner kernel batch size: ${apps.length}`);
583
638
  }
@@ -588,6 +643,7 @@ export class PrivateKernelExecutionProver {
588
643
  bytecode: output.bytecode,
589
644
  witness: output.outputWitness,
590
645
  vk: output.verificationKey.keyAsBytes,
646
+ kind: CircuitKind.Kernel,
591
647
  timings: {
592
648
  witgen: witgenTimer.ms(),
593
649
  },
@@ -22,30 +22,45 @@ import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
22
22
  import type { BlockHeader } from '@aztec/stdlib/tx';
23
23
  import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
24
24
 
25
+ import type { ContractClassService } from '../contract/contract_class_service.js';
26
+ import { AnchoredContractData } from '../contract_function_simulator/anchored_contract_data.js';
25
27
  import type { ContractStore } from '../storage/contract_store/contract_store.js';
26
28
 
27
29
  /**
28
30
  * Provides functionality needed by the private kernel for interacting with our state trees.
29
31
  */
30
32
  export class PrivateKernelOracle {
33
+ private readonly anchoredContractData: AnchoredContractData;
34
+
31
35
  constructor(
32
36
  private contractStore: ContractStore,
37
+ contractClassService: ContractClassService,
33
38
  private keyStore: KeyStore,
34
39
  private node: AztecNode,
35
40
  private blockHeader: BlockHeader,
36
- ) {}
41
+ ) {
42
+ // Kernels never use contract overrides (those are confined to simulations, which skip proving), so this view is
43
+ // built without them.
44
+ this.anchoredContractData = new AnchoredContractData(contractStore, contractClassService, blockHeader);
45
+ }
37
46
 
38
47
  /** Retrieves the preimage of a contract address from the registered contract instances db. */
39
48
  public async getContractAddressPreimage(
40
49
  address: AztecAddress,
41
50
  ): Promise<ContractInstanceWithAddress & { saltedInitializationHash: Fr }> {
42
- const instance = await this.contractStore.getContractInstance(address);
51
+ const instance = await this.anchoredContractData.getContractInstance(address);
43
52
  if (!instance) {
44
53
  throw new Error(`Contract instance not found when getting address preimage. Contract address: ${address}.`);
45
54
  }
55
+ // Local instance existence was checked above, so resolution below cannot come back empty.
56
+ const currentContractClassId = await this.anchoredContractData.getCurrentClassId(address);
57
+ if (!currentContractClassId) {
58
+ throw new Error(`Could not resolve the current class id for registered contract ${address}.`);
59
+ }
46
60
  return {
47
61
  saltedInitializationHash: await computeSaltedInitializationHash(instance),
48
62
  ...instance,
63
+ currentContractClassId,
49
64
  };
50
65
  }
51
66
 
@@ -114,8 +129,12 @@ export class PrivateKernelOracle {
114
129
  }
115
130
 
116
131
  /** Use debug data to get the function name corresponding to a selector. */
117
- public getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string | undefined> {
118
- return this.contractStore.getDebugFunctionName(contractAddress, selector);
132
+ public async getDebugFunctionName(
133
+ contractAddress: AztecAddress,
134
+ selector: FunctionSelector,
135
+ ): Promise<string | undefined> {
136
+ const classId = await this.anchoredContractData.getCurrentClassId(contractAddress);
137
+ return classId ? this.contractStore.getDebugFunctionName(classId, selector) : undefined;
119
138
  }
120
139
 
121
140
  /**