@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx_resolver_service.d.ts","sourceRoot":"","sources":["../../src/messages/tx_resolver_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4DAA4D,CAAC;AAE7F,+GAA+G;AAC/G,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAtC,YAA6B,SAAS,EAAE,SAAS,EAAI;IAErD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAiD1F;CACF"}
@@ -1,18 +1,17 @@
1
1
  import { uniqueBy } from '@aztec/foundation/collection';
2
- import { MessageContext } from '@aztec/stdlib/logs';
3
2
  import { TxHash } from '@aztec/stdlib/tx';
4
- /** Resolves transaction hashes into the context needed to process messages. */ export class MessageContextService {
3
+ /** Resolves transaction hashes into their on-chain context (note hashes, first nullifier, and mined block). */ export class TxResolverService {
5
4
  aztecNode;
6
5
  constructor(aztecNode){
7
6
  this.aztecNode = aztecNode;
8
7
  }
9
8
  /**
10
- * Resolves a list of tx hashes into their message contexts.
9
+ * Resolves a list of tx hashes into their on-chain context.
11
10
  *
12
- * For each tx hash, looks up the corresponding tx effect and extracts the note hashes and first nullifier needed to
13
- * process messages that originated from that transaction. Returns `null` for tx hashes that are zero, not yet
14
- * available, or in blocks beyond the anchor block.
15
- */ async getMessageContextsByTxHash(txHashes, anchorBlockNumber) {
11
+ * For each tx hash, looks up the corresponding tx effect and extracts the note hashes, first nullifier, and the
12
+ * number and hash of the block it was mined in. Returns `null` for tx hashes that are zero, not yet available, or in
13
+ * blocks beyond the anchor block.
14
+ */ async resolveTxs(txHashes, anchorBlockNumber) {
16
15
  const nonZeroTxHashes = txHashes.filter((h)=>!h.isZero()).map((h)=>TxHash.fromField(h));
17
16
  const uniqueTxHashes = uniqueBy(nonZeroTxHashes, (h)=>h.toString());
18
17
  const fetched = await Promise.all(uniqueTxHashes.map((h)=>this.aztecNode.getTxReceipt(h, {
@@ -49,7 +48,13 @@ import { TxHash } from '@aztec/stdlib/tx';
49
48
  if (data.nullifiers.length === 0) {
50
49
  throw new Error(`Tx effect for ${txHash} has no nullifiers`);
51
50
  }
52
- return new MessageContext(data.txHash, data.noteHashes, data.nullifiers[0]);
51
+ return {
52
+ txHash: data.txHash,
53
+ uniqueNoteHashesInTx: data.noteHashes,
54
+ firstNullifierInTx: data.nullifiers[0],
55
+ blockNumber: txEffect.l2BlockNumber,
56
+ blockHash: txEffect.l2BlockHash.toFr()
57
+ };
53
58
  });
54
59
  }
55
60
  }
@@ -19,7 +19,7 @@ export declare class NoteService {
19
19
  *
20
20
  * @param owner - The owner of the notes. If undefined, returns notes for all known owners.
21
21
  * @param status - The status of notes to fetch.
22
- * @param scopes - The accounts whose notes we can access in this call. Currently optional and will default to all.
22
+ * @param scopes - The accounts whose notes we can access in this call. An empty list matches no notes.
23
23
  */
24
24
  getNotes(contractAddress: AztecAddress, owner: AztecAddress | undefined, storageSlot: Fr, status: NoteStatus, scopes: AztecAddress[]): Promise<{
25
25
  contractAddress: AztecAddress;
@@ -21,7 +21,7 @@ export class NoteService {
21
21
  *
22
22
  * @param owner - The owner of the notes. If undefined, returns notes for all known owners.
23
23
  * @param status - The status of notes to fetch.
24
- * @param scopes - The accounts whose notes we can access in this call. Currently optional and will default to all.
24
+ * @param scopes - The accounts whose notes we can access in this call. An empty list matches no notes.
25
25
  */ async getNotes(contractAddress, owner, storageSlot, status, scopes) {
26
26
  const noteDaos = await this.noteStore.getNotes({
27
27
  contractAddress,
@@ -1,4 +1,4 @@
1
- export declare const ORACLE_VERSION_MAJOR = 29;
2
- export declare const ORACLE_VERSION_MINOR = 0;
3
- export declare const ORACLE_INTERFACE_HASH = "157fe8fa79f0e5a25db3d61341f9bcf5b43cb68367bea497204006daa48751b6";
1
+ export declare const ORACLE_VERSION_MAJOR = 30;
2
+ export declare const ORACLE_VERSION_MINOR = 8;
3
+ export declare const ORACLE_INTERFACE_HASH = "fec4d3a95fc57a62a20bfeb659bb3bfd91b31cd93e07f8cf97b368f9f55cc67b";
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JhY2xlX3ZlcnNpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcmFjbGVfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxlQUFPLE1BQU0sb0JBQW9CLEtBQUssQ0FBQztBQUN2QyxlQUFPLE1BQU0sb0JBQW9CLElBQUksQ0FBQztBQVF0QyxlQUFPLE1BQU0scUJBQXFCLHFFQUFxRSxDQUFDIn0=
@@ -10,12 +10,12 @@
10
10
  /// used to provide helpful error messages if a contract calls an oracle that doesn't exist. We don't throw immediately
11
11
  /// if AZTEC_NR_MINOR > PXE_MINOR because if a contract is updated to use a newer Aztec.nr dependency without actually
12
12
  /// using any of the new oracles then there is no reason to throw.
13
- export const ORACLE_VERSION_MAJOR = 29;
14
- export const ORACLE_VERSION_MINOR = 0;
15
- /// This hash is computed from the Oracle interface and is used to detect when that interface changes. When it does,
16
- /// you need to either:
13
+ export const ORACLE_VERSION_MAJOR = 30;
14
+ export const ORACLE_VERSION_MINOR = 8;
15
+ /// This hash is computed from `ORACLE_REGISTRY` (each oracle's name, ordered parameter names and
16
+ /// types, and return type) and is used to detect when the oracle interface changes. When it does, you need to either:
17
17
  /// - increment `ORACLE_VERSION_MAJOR` and reset `ORACLE_VERSION_MINOR` to zero if the change is breaking, or
18
18
  /// - increment only `ORACLE_VERSION_MINOR` if the change is additive (a new oracle was added).
19
19
  ///
20
20
  /// These constants must be kept in sync between this file and `noir-projects/aztec-nr/aztec/src/oracle/version.nr`.
21
- export const ORACLE_INTERFACE_HASH = '157fe8fa79f0e5a25db3d61341f9bcf5b43cb68367bea497204006daa48751b6';
21
+ export const ORACLE_INTERFACE_HASH = 'fec4d3a95fc57a62a20bfeb659bb3bfd91b31cd93e07f8cf97b368f9f55cc67b';
@@ -44,4 +44,4 @@ export declare class BatchPlanner {
44
44
  * `needsReset()` and are carried over unchanged from `acc`.
45
45
  */
46
46
  export declare function appendApp(acc: PrivateKernelCircuitPublicInputs, app: PrivateCallExecutionResult): PrivateKernelCircuitPublicInputs;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfcGxhbm5lci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL2JhdGNoX3BsYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLGdDQUFnQyxFQUlqQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLbkU7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsWUFBWTtJQUVyQixPQUFPLENBQUMsMkJBQTJCO0lBQ25DLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxZQUFZO0lBSHRCLFlBQ1UsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFDaEQsWUFBWSxFQUFFLE1BQU0sRUFDcEIsWUFBWSxFQUFFLE1BQU0sRUFDMUI7SUFFSjs7Ozs7Ozs7T0FRRztJQUNILGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxNQUFNLENBNEJqSDtDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCx3QkFBZ0IsU0FBUyxDQUN2QixHQUFHLEVBQUUsZ0NBQWdDLEVBQ3JDLEdBQUcsRUFBRSwwQkFBMEIsR0FDOUIsZ0NBQWdDLENBZ0VsQyJ9
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfcGxhbm5lci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL2JhdGNoX3BsYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLGdDQUFnQyxFQUlqQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLbkU7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsWUFBWTtJQUVyQixPQUFPLENBQUMsMkJBQTJCO0lBQ25DLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxZQUFZO0lBSHRCLFlBQ1UsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFDaEQsWUFBWSxFQUFFLE1BQU0sRUFDcEIsWUFBWSxFQUFFLE1BQU0sRUFDMUI7SUFFSjs7Ozs7Ozs7T0FRRztJQUNILGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxNQUFNLENBNEJqSDtDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCx3QkFBZ0IsU0FBUyxDQUN2QixHQUFHLEVBQUUsZ0NBQWdDLEVBQ3JDLEdBQUcsRUFBRSwwQkFBMEIsR0FDOUIsZ0NBQWdDLENBK0RsQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"batch_planner.d.ts","sourceRoot":"","sources":["../../src/private_kernel/batch_planner.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,gCAAgC,EAIjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAKnE;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAHtB,YACU,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAC1B;IAEJ;;;;;;;;OAQG;IACH,eAAe,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,KAAK,EAAE,0BAA0B,EAAE,GAAG,MAAM,CA4BjH;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,gCAAgC,EACrC,GAAG,EAAE,0BAA0B,GAC9B,gCAAgC,CAgElC"}
1
+ {"version":3,"file":"batch_planner.d.ts","sourceRoot":"","sources":["../../src/private_kernel/batch_planner.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,gCAAgC,EAIjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAKnE;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAHtB,YACU,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAC1B;IAEJ;;;;;;;;OAQG;IACH,eAAe,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,KAAK,EAAE,0BAA0B,EAAE,GAAG,MAAM,CA4BjH;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,gCAAgC,EACrC,GAAG,EAAE,0BAA0B,GAC9B,gCAAgC,CA+DlC"}
@@ -89,7 +89,7 @@ import { PrivateKernelResetPrivateInputsBuilder } from './hints/private_kernel_r
89
89
  pushAll(newPrivateLogs, appPi.privateLogs.getActiveItems().map((pl)=>new ScopedPrivateLogData(pl, ca)));
90
90
  const validationRequests = new PrivateValidationRequests(newNoteHashReadRequests, newNullifierReadRequests, newScopedKvrs);
91
91
  const end = new PrivateAccumulatedData(newNoteHashes, newNullifiers, acc.end.l2ToL1Msgs, newPrivateLogs, acc.end.contractClassLogsHashes, acc.end.publicCallRequests, acc.end.privateCallStack);
92
- return new PrivateKernelCircuitPublicInputs(acc.constants, acc.minRevertibleSideEffectCounter, validationRequests, end, acc.publicTeardownCallRequest, acc.feePayer, acc.expirationTimestamp, acc.isPrivateOnly, acc.claimedFirstNullifier, acc.claimedRevertibleCounter);
92
+ return new PrivateKernelCircuitPublicInputs(acc.constants, acc.minRevertibleSideEffectCounter, validationRequests, end, acc.publicTeardownCallRequest, acc.feePayer, acc.expirationTimestamp, acc.isPrivateOnly, acc.claimedRevertibleCounter);
93
93
  }
94
94
  function cloneClaimedLengthArray(src) {
95
95
  return new ClaimedLengthArray([
@@ -26,4 +26,4 @@ export declare class PrivateKernelResetPrivateInputsBuilder {
26
26
  private needsSiloNullifiers;
27
27
  private needsSiloPrivateLogs;
28
28
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcmVzZXRfcHJpdmF0ZV9pbnB1dHNfYnVpbGRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL2hpbnRzL3ByaXZhdGVfa2VybmVsX3Jlc2V0X3ByaXZhdGVfaW5wdXRzX2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUtMLEtBQUssZ0NBQWdDLEVBRXJDLHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFFNUIsS0FBSywyQkFBMkIsRUFhakMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSywwQkFBMEIsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBbUN2RSxxQkFBYSxzQ0FBc0M7SUFlL0MsT0FBTyxDQUFDLG9CQUFvQjtJQUM1QixPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsMkJBQTJCO0lBQ25DLE9BQU8sQ0FBQyxZQUFZO0lBakJ0QixPQUFPLENBQUMsY0FBYyxDQUFtQztJQUV6RCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQTZCO0lBRW5ELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBcUU7SUFDakcsT0FBTyxDQUFDLHFCQUFxQixDQUFxRTtJQUNsRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBUztJQUNsQyxPQUFPLENBQUMsMkJBQTJCLENBR2pDO0lBQ0YsT0FBTyxDQUFDLG1CQUFtQixDQUF3QztJQUVuRSxZQUNVLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDLGdDQUFnQyxDQUFDLEVBQ25GLGNBQWMsRUFBRSwwQkFBMEIsRUFBRSxFQUM1QywyQkFBMkIsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUNoRCxZQUFZLEVBQUUsTUFBTSxFQUk3QjtJQUVELHNCQUFzQixJQUFJLDRCQUE0QixDQUVyRDtJQUVELFVBQVUsSUFBSSxPQUFPLENBc0JwQjtJQUVLLEtBQUssQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLG1EQThFdEM7SUFFRCxPQUFPLENBQUMsd0JBQXdCO0lBMkJoQyxPQUFPLENBQUMsOEJBQThCO0lBMEV0QyxPQUFPLENBQUMsK0JBQStCO0lBeUV2QyxPQUFPLENBQUMsK0JBQStCO0lBYXZDLE9BQU8sQ0FBQyx1QkFBdUI7SUEwRi9CLE9BQU8sQ0FBQyxtQkFBbUI7SUFpQjNCLE9BQU8sQ0FBQyxtQkFBbUI7SUFpQjNCLE9BQU8sQ0FBQyxvQkFBb0I7Q0FxQjdCIn0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcmVzZXRfcHJpdmF0ZV9pbnB1dHNfYnVpbGRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL2hpbnRzL3ByaXZhdGVfa2VybmVsX3Jlc2V0X3ByaXZhdGVfaW5wdXRzX2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUtMLEtBQUssZ0NBQWdDLEVBRXJDLHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFFNUIsS0FBSywyQkFBMkIsRUFjakMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSywwQkFBMEIsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBbUN2RSxxQkFBYSxzQ0FBc0M7SUFlL0MsT0FBTyxDQUFDLG9CQUFvQjtJQUM1QixPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsMkJBQTJCO0lBQ25DLE9BQU8sQ0FBQyxZQUFZO0lBakJ0QixPQUFPLENBQUMsY0FBYyxDQUFtQztJQUV6RCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQTZCO0lBRW5ELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBcUU7SUFDakcsT0FBTyxDQUFDLHFCQUFxQixDQUFxRTtJQUNsRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBUztJQUNsQyxPQUFPLENBQUMsMkJBQTJCLENBR2pDO0lBQ0YsT0FBTyxDQUFDLG1CQUFtQixDQUF3QztJQUVuRSxZQUNVLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDLGdDQUFnQyxDQUFDLEVBQ25GLGNBQWMsRUFBRSwwQkFBMEIsRUFBRSxFQUM1QywyQkFBMkIsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUNoRCxZQUFZLEVBQUUsTUFBTSxFQUk3QjtJQUVELHNCQUFzQixJQUFJLDRCQUE0QixDQUVyRDtJQUVELFVBQVUsSUFBSSxPQUFPLENBc0JwQjtJQUVLLEtBQUssQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLG1EQXVGdEM7SUFFRCxPQUFPLENBQUMsd0JBQXdCO0lBMkJoQyxPQUFPLENBQUMsOEJBQThCO0lBMEV0QyxPQUFPLENBQUMsK0JBQStCO0lBeUV2QyxPQUFPLENBQUMsK0JBQStCO0lBYXZDLE9BQU8sQ0FBQyx1QkFBdUI7SUEwRi9CLE9BQU8sQ0FBQyxtQkFBbUI7SUFpQjNCLE9BQU8sQ0FBQyxtQkFBbUI7SUFpQjNCLE9BQU8sQ0FBQyxvQkFBb0I7Q0FxQjdCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_reset_private_inputs_builder.d.ts","sourceRoot":"","sources":["../../../src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts"],"names":[],"mappings":"AAeA,OAAO,EAKL,KAAK,gCAAgC,EAErC,sCAAsC,EACtC,4BAA4B,EAE5B,KAAK,2BAA2B,EAajC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,kBAAkB,CAAC;AAGlF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAmCvE,qBAAa,sCAAsC;IAe/C,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,YAAY;IAjBtB,OAAO,CAAC,cAAc,CAAmC;IAEzD,OAAO,CAAC,aAAa,CAAC,CAA6B;IAEnD,OAAO,CAAC,oBAAoB,CAAqE;IACjG,OAAO,CAAC,qBAAqB,CAAqE;IAClG,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,2BAA2B,CAGjC;IACF,OAAO,CAAC,mBAAmB,CAAwC;IAEnE,YACU,oBAAoB,EAAE,2BAA2B,CAAC,gCAAgC,CAAC,EACnF,cAAc,EAAE,0BAA0B,EAAE,EAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,YAAY,EAAE,MAAM,EAI7B;IAED,sBAAsB,IAAI,4BAA4B,CAErD;IAED,UAAU,IAAI,OAAO,CAsBpB;IAEK,KAAK,CAAC,MAAM,EAAE,mBAAmB,mDA8EtC;IAED,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,8BAA8B;IA0EtC,OAAO,CAAC,+BAA+B;IAyEvC,OAAO,CAAC,+BAA+B;IAavC,OAAO,CAAC,uBAAuB;IA0F/B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,oBAAoB;CAqB7B"}
1
+ {"version":3,"file":"private_kernel_reset_private_inputs_builder.d.ts","sourceRoot":"","sources":["../../../src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts"],"names":[],"mappings":"AAeA,OAAO,EAKL,KAAK,gCAAgC,EAErC,sCAAsC,EACtC,4BAA4B,EAE5B,KAAK,2BAA2B,EAcjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,kBAAkB,CAAC;AAGlF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAmCvE,qBAAa,sCAAsC;IAe/C,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,YAAY;IAjBtB,OAAO,CAAC,cAAc,CAAmC;IAEzD,OAAO,CAAC,aAAa,CAAC,CAA6B;IAEnD,OAAO,CAAC,oBAAoB,CAAqE;IACjG,OAAO,CAAC,qBAAqB,CAAqE;IAClG,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,2BAA2B,CAGjC;IACF,OAAO,CAAC,mBAAmB,CAAwC;IAEnE,YACU,oBAAoB,EAAE,2BAA2B,CAAC,gCAAgC,CAAC,EACnF,cAAc,EAAE,0BAA0B,EAAE,EAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,YAAY,EAAE,MAAM,EAI7B;IAED,sBAAsB,IAAI,4BAA4B,CAErD;IAED,UAAU,IAAI,OAAO,CAsBpB;IAEK,KAAK,CAAC,MAAM,EAAE,mBAAmB,mDAuFtC;IAED,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,8BAA8B;IA0EtC,OAAO,CAAC,+BAA+B;IAyEvC,OAAO,CAAC,+BAA+B;IAavC,OAAO,CAAC,uBAAuB;IA0F/B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,oBAAoB;CAqB7B"}
@@ -4,7 +4,7 @@ import { padArrayEnd } from '@aztec/foundation/collection';
4
4
  import { assertLength } from '@aztec/foundation/serialize';
5
5
  import { MembershipWitness } from '@aztec/foundation/trees';
6
6
  import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
7
- import { KeyValidationHint, PaddedSideEffects, PrivateKernelData, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetDimensions, PrivateKernelResetHints, ReadRequestActionEnum, ReadRequestResetActions, TransientDataSquashingHint, buildNoteHashReadRequestHintsFromResetActions, buildNullifierReadRequestHintsFromResetActions, buildTransientDataHints, countSquashedLogs, findPrivateKernelResetDimensions, getNoteHashReadRequestResetActions, getNullifierReadRequestResetActions, privateKernelResetDimensionNames } from '@aztec/stdlib/kernel';
7
+ import { KeyValidationHint, PaddedSideEffects, PrivateKernelData, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetDimensions, PrivateKernelResetHints, ReadRequestActionEnum, ReadRequestResetActions, TransientDataSquashingHint, buildNoteHashReadRequestHintsFromResetActions, buildNullifierReadRequestHintsFromResetActions, buildTransientDataHints, countSquashedLogs, findPrivateKernelResetDimensions, getNoteHashReadRequestResetActions, getNullifierReadRequestResetActions, kernelStateIsForPublic, privateKernelResetDimensionNames } from '@aztec/stdlib/kernel';
8
8
  import { collectNested } from '@aztec/stdlib/tx';
9
9
  import { VkData } from '@aztec/stdlib/vks';
10
10
  function getNullifierMembershipWitnessResolver(oracle) {
@@ -88,7 +88,11 @@ export class PrivateKernelResetPrivateInputsBuilder {
88
88
  // "final" reset must be done exactly once, because siloing can't be run repeatedly.
89
89
  // The dimensions found must be big enough to reset all values, i.e. empty remainder.
90
90
  const allowRemainder = isInner;
91
- const dimensions = findPrivateKernelResetDimensions(this.requestedDimensions, privateKernelResetDimensionsConfig, isInner, allowRemainder);
91
+ // Terminal reset picks from the finalTail / finalTailToPublic catalogs; mid-tx resets always
92
+ // use the inner catalog. The public/private decision must match `kernelStateIsForPublic` - the
93
+ // same predicate the circuit inputs and the orchestrator use.
94
+ const mode = isInner ? 'inner' : kernelStateIsForPublic(this.previousKernel) ? 'finalTailToPublic' : 'finalTail';
95
+ const dimensions = findPrivateKernelResetDimensions(this.requestedDimensions, privateKernelResetDimensionsConfig, mode, allowRemainder);
92
96
  this.reduceReadRequestActions(this.noteHashResetActions, dimensions.NOTE_HASH_PENDING_READ, dimensions.NOTE_HASH_SETTLED_READ);
93
97
  this.reduceReadRequestActions(this.nullifierResetActions, dimensions.NULLIFIER_PENDING_READ, dimensions.NULLIFIER_SETTLED_READ);
94
98
  // Execute all the expensive node querying operations in parallel.
@@ -7,7 +7,7 @@ import { PrivateLogData, ScopedPrivateLogData } from '@aztec/stdlib/kernel';
7
7
  import { PrivateLog } from '@aztec/stdlib/logs';
8
8
  import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
9
9
  import { VerificationKeyData } from '@aztec/stdlib/vks';
10
- const DEFAULT_CONTRACT_ADDRESS = AztecAddress.fromBigInt(987654n);
10
+ const DEFAULT_CONTRACT_ADDRESS = AztecAddress.fromBigIntUnsafe(987654n);
11
11
  /**
12
12
  * Builds a ClaimedLengthArray from a list of items, padding to the required size.
13
13
  */ function makeClaimed(items, emptyFactory, maxSize) {
@@ -46,4 +46,4 @@ export declare class PrivateKernelExecutionProver {
46
46
  private createPrivateCallData;
47
47
  private runBatchedKernel;
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfZXhlY3V0aW9uX3Byb3Zlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL3ByaXZhdGVfa2VybmVsX2V4ZWN1dGlvbl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTXZGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQVFMLEtBQUssaUNBQWlDLEVBU3RDLEtBQUssb0NBQW9DLEVBRzFDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUVMLEtBQUssc0JBQXNCLEVBQzNCLFNBQVMsRUFJVixNQUFNLGtCQUFrQixDQUFDO0FBTTFCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFTdEUsTUFBTSxXQUFXLGtDQUFrQztJQUNqRCxRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQztJQUM1QixXQUFXLEVBQUUsT0FBTyxHQUFHLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDNUQ7QUFFRDs7Ozs7R0FLRztBQUNILHFCQUFhLDRCQUE0QjtJQUlyQyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxVQUFVO0lBRWxCLE9BQU8sQ0FBQyxZQUFZO0lBUHRCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLFlBQVksRUFBRSxtQkFBbUIsRUFDakMsVUFBVSxVQUFRLEVBQzFCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFDakIsWUFBWSxHQUFFLE1BQTRCLEVBR25EO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNHLGdCQUFnQixDQUNwQixTQUFTLEVBQUUsU0FBUyxFQUNwQixlQUFlLEVBQUUsc0JBQXNCLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxHQUFFLGtDQUk5QyxHQUNBLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBb09sRjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLHVCQUF1QjtZQW9CakIsU0FBUztZQWNULGNBQWM7WUE0QmQsMkJBQTJCO1lBaUIzQixxQkFBcUI7WUF1Q3JCLGdCQUFnQjtDQWdKL0IifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfZXhlY3V0aW9uX3Byb3Zlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL3ByaXZhdGVfa2VybmVsX2V4ZWN1dGlvbl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTXZGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQVFMLEtBQUssaUNBQWlDLEVBYXRDLEtBQUssb0NBQW9DLEVBRzFDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUVMLEtBQUssc0JBQXNCLEVBQzNCLFNBQVMsRUFJVixNQUFNLGtCQUFrQixDQUFDO0FBTTFCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFTdEUsTUFBTSxXQUFXLGtDQUFrQztJQUNqRCxRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQztJQUM1QixXQUFXLEVBQUUsT0FBTyxHQUFHLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDNUQ7QUFFRDs7Ozs7R0FLRztBQUNILHFCQUFhLDRCQUE0QjtJQUlyQyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxVQUFVO0lBRWxCLE9BQU8sQ0FBQyxZQUFZO0lBUHRCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLFlBQVksRUFBRSxtQkFBbUIsRUFDakMsVUFBVSxVQUFRLEVBQzFCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFDakIsWUFBWSxHQUFFLE1BQTRCLEVBR25EO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNHLGdCQUFnQixDQUNwQixTQUFTLEVBQUUsU0FBUyxFQUNwQixlQUFlLEVBQUUsc0JBQXNCLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxHQUFFLGtDQUk5QyxHQUNBLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBd05sRjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLHVCQUF1QjtZQW9CakIsU0FBUztZQWNULGNBQWM7WUE2QmQsMkJBQTJCO1lBaUIzQixxQkFBcUI7WUF1Q3JCLGdCQUFnQjtDQThNL0IifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAMvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAQL,KAAK,iCAAiC,EAStC,KAAK,oCAAoC,EAG1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,YAAY;IAPtB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ,EAC1B,QAAQ,CAAC,EAAE,cAAc,EACjB,YAAY,GAAE,MAA4B,EAGnD;IAED;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAE,kCAI9C,GACA,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CAoOlF;IAED;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;YAoBjB,SAAS;YAcT,cAAc;YA4Bd,2BAA2B;YAiB3B,qBAAqB;YAuCrB,gBAAgB;CAgJ/B"}
1
+ {"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAMvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAQL,KAAK,iCAAiC,EAatC,KAAK,oCAAoC,EAG1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,YAAY;IAPtB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ,EAC1B,QAAQ,CAAC,EAAE,cAAc,EACjB,YAAY,GAAE,MAA4B,EAGnD;IAED;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAE,kCAI9C,GACA,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CAwNlF;IAED;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;YAoBjB,SAAS;YAcT,cAAc;YA6Bd,2BAA2B;YAiB3B,qBAAqB;YAuCrB,gBAAgB;CA8M/B"}
@@ -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 { createLogger } from '@aztec/foundation/log';
6
7
  import { pushTestData } from '@aztec/foundation/testing';
@@ -8,7 +9,7 @@ import { Timer } from '@aztec/foundation/timer';
8
9
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
9
10
  import { ProtocolContractsList } from '@aztec/protocol-contracts';
10
11
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
11
- import { HidingKernelToPublicPrivateInputs, HidingKernelToRollupPrivateInputs, PaddedSideEffectAmounts, PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInit2CircuitPrivateInputs, PrivateKernelInit3CircuitPrivateInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInner2CircuitPrivateInputs, PrivateKernelInner3CircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelTailCircuitPrivateInputs, PrivateVerificationKeyHints } from '@aztec/stdlib/kernel';
12
+ import { HidingKernelToPublicPrivateInputs, HidingKernelToRollupPrivateInputs, PaddedSideEffectAmounts, PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInit2CircuitPrivateInputs, PrivateKernelInit3CircuitPrivateInputs, PrivateKernelInit4CircuitPrivateInputs, PrivateKernelInit5CircuitPrivateInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInner2CircuitPrivateInputs, PrivateKernelInner3CircuitPrivateInputs, PrivateKernelInner4CircuitPrivateInputs, PrivateKernelInner5CircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetTailCircuitPrivateInputs, PrivateVerificationKeyHints } from '@aztec/stdlib/kernel';
12
13
  import { ChonkProof } from '@aztec/stdlib/proofs';
13
14
  import { collectNested, collectNoteHashNullifierCounterMap, getFinalMinRevertibleSideEffectCounter } from '@aztec/stdlib/tx';
14
15
  import { VerificationKeyAsFields, VerificationKeyData, VkData } from '@aztec/stdlib/vks';
@@ -87,6 +88,7 @@ const NULL_SIMULATE_OUTPUT = {
87
88
  bytecode: output.bytecode,
88
89
  witness: output.outputWitness,
89
90
  vk: output.verificationKey.keyAsBytes,
91
+ kind: CircuitKind.Kernel,
90
92
  timings: {
91
93
  witgen: witgenTimer.ms()
92
94
  }
@@ -105,36 +107,19 @@ const NULL_SIMULATE_OUTPUT = {
105
107
  previousOutput: output,
106
108
  txRequest,
107
109
  isPrivateOnlyTx,
108
- firstNullifierHint: executionResult.firstNullifier,
109
110
  minRevertibleSideEffectCounter,
110
111
  executionSteps,
111
112
  generateWitnesses
112
113
  });
113
114
  firstIteration = false;
114
115
  }
115
- // Final reset: include siloing of note hashes, nullifiers and private logs.
116
+ // Terminal reset+tail. The final reset must be performed exactly once because each tx has at
117
+ // least one nullifier that requires siloing, and siloing cannot be done multiple times.
116
118
  const finalResetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, splitCounter);
117
119
  if (!finalResetBuilder.needsReset()) {
118
- // The final reset must be performed exactly once, because each tx has at least one nullifier that requires
119
- // siloing, and siloing cannot be done multiple times.
120
- // While, in theory, it might be possible to silo note hashes first and then run another reset to silo nullifiers
121
- // and/or private logs, we currently don't have standalone dimensions for the arrays that require siloing. As a
122
- // result, all necessary siloing must be done together in a single reset.
120
+ // Siloing for note hashes, nullifiers, and private logs is dimensioned as one terminal reset.
123
121
  // Refer to the possible combinations of dimensions in private_kernel_reset_config.json.
124
122
  throw new Error('Nothing to reset for the final reset.');
125
- } else {
126
- const witgenTimer = new Timer();
127
- const privateInputs = await finalResetBuilder.build(this.oracle);
128
- output = generateWitnesses ? await this.proofCreator.generateResetOutput(privateInputs) : await this.proofCreator.simulateReset(privateInputs);
129
- executionSteps.push({
130
- functionName: 'private_kernel_reset',
131
- bytecode: output.bytecode,
132
- witness: output.outputWitness,
133
- vk: output.verificationKey.keyAsBytes,
134
- timings: {
135
- witgen: witgenTimer.ms()
136
- }
137
- });
138
123
  }
139
124
  if (output.publicInputs.feePayer.isZero() && skipFeeEnforcement) {
140
125
  if (!skipProofGeneration) {
@@ -142,23 +127,22 @@ const NULL_SIMULATE_OUTPUT = {
142
127
  }
143
128
  output.publicInputs.feePayer = new AztecAddress(Fr.MAX_FIELD_VALUE);
144
129
  }
145
- // Private tail.
146
- const vkData = await this.getVkData(output.verificationKey);
147
- const previousKernelData = new PrivateKernelData(output.publicInputs, vkData);
148
- this.log.debug(`Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`);
149
130
  // TODO: Enable padding once we better understand the final amounts to pad to.
150
131
  const paddedSideEffectAmounts = PaddedSideEffectAmounts.empty();
151
132
  // Round the aggregated expirationTimestamp down to reduce precision and avoid leaking which private
152
133
  // functions were called via their exact expiration offsets.
153
- const expirationTimestampUpperBound = computeTxExpirationTimestamp(previousKernelData.publicInputs);
154
- const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData, paddedSideEffectAmounts, expirationTimestampUpperBound);
134
+ const expirationTimestampUpperBound = computeTxExpirationTimestamp(output.publicInputs);
135
+ const resetInputs = await finalResetBuilder.build(this.oracle);
136
+ const mergedInputs = new PrivateKernelResetTailCircuitPrivateInputs(resetInputs.previousKernel, resetInputs.paddedSideEffects, resetInputs.hints, resetInputs.dimensions, paddedSideEffectAmounts, expirationTimestampUpperBound);
137
+ this.log.debug(`Calling terminal private kernel reset+tail (${mergedInputs.isForPublic() ? 'to-public' : 'to-rollup'}) with hwm ${output.publicInputs.minRevertibleSideEffectCounter}`);
155
138
  const witgenTimer = new Timer();
156
- const tailOutput = generateWitnesses ? await this.proofCreator.generateTailOutput(privateInputs) : await this.proofCreator.simulateTail(privateInputs);
139
+ const tailOutput = generateWitnesses ? await this.proofCreator.generateResetTailOutput(mergedInputs) : await this.proofCreator.simulateResetTail(mergedInputs);
157
140
  executionSteps.push({
158
- functionName: 'private_kernel_tail',
141
+ functionName: mergedInputs.isForPublic() ? 'private_kernel_reset_tail_to_public' : 'private_kernel_reset_tail',
159
142
  bytecode: tailOutput.bytecode,
160
143
  witness: tailOutput.outputWitness,
161
144
  vk: tailOutput.verificationKey.keyAsBytes,
145
+ kind: CircuitKind.Kernel,
162
146
  timings: {
163
147
  witgen: witgenTimer.ms()
164
148
  }
@@ -181,6 +165,7 @@ const NULL_SIMULATE_OUTPUT = {
181
165
  bytecode: hidingOutput.bytecode,
182
166
  witness: hidingOutput.outputWitness,
183
167
  vk: hidingOutput.verificationKey.keyAsBytes,
168
+ kind: CircuitKind.HidingKernel,
184
169
  timings: {
185
170
  witgen: witgenTimer.ms()
186
171
  }
@@ -189,7 +174,7 @@ const NULL_SIMULATE_OUTPUT = {
189
174
  if (profileMode == 'gates' || profileMode == 'full') {
190
175
  for (const entry of executionSteps){
191
176
  const gateCountTimer = new Timer();
192
- const gateCount = await this.proofCreator.computeGateCountForCircuit(entry.bytecode, entry.functionName);
177
+ const gateCount = await this.proofCreator.computeGateCountForCircuit(entry.bytecode, entry.functionName, entry.kind);
193
178
  entry.gateCount = gateCount;
194
179
  entry.timings.gateCount = gateCountTimer.ms();
195
180
  }
@@ -259,6 +244,7 @@ const NULL_SIMULATE_OUTPUT = {
259
244
  bytecode: next.acir,
260
245
  witness: next.partialWitness,
261
246
  vk: next.vk,
247
+ kind: CircuitKind.App,
262
248
  timings: {
263
249
  witgen: next.profileResult?.timings.witgen ?? 0,
264
250
  oracles: next.profileResult?.timings.oracles
@@ -280,8 +266,8 @@ const NULL_SIMULATE_OUTPUT = {
280
266
  }
281
267
  async createPrivateCallData({ publicInputs, vk: vkAsBuffer }, updatedClassIdHintsMap) {
282
268
  const { contractAddress, functionSelector } = publicInputs.callContext;
283
- const vkAsFields = await vkAsFieldsMegaHonk(vkAsBuffer);
284
- const vk = await VerificationKeyAsFields.fromKey(vkAsFields);
269
+ const vkFields = await vkAsFields(vkAsBuffer, CircuitKind.App);
270
+ const vk = await VerificationKeyAsFields.fromKey(vkFields);
285
271
  const { currentContractClassId, publicKeys, saltedInitializationHash } = await this.oracle.getContractAddressPreimage(contractAddress);
286
272
  const functionLeafMembershipWitness = await this.oracle.getFunctionMembershipWitness(currentContractClassId, functionSelector);
287
273
  const { artifactHash: contractClassArtifactHash, publicBytecodeCommitment: contractClassPublicBytecodeCommitment } = await this.oracle.getContractClassIdPreimage(currentContractClassId);
@@ -303,7 +289,7 @@ const NULL_SIMULATE_OUTPUT = {
303
289
  * Runs one batched kernel iteration. Picks the right circuit variant based on whether this is
304
290
  * the first iteration or a later one and the size of the batch.
305
291
  */ async runBatchedKernel(args) {
306
- const { apps, firstIteration, previousOutput, txRequest, isPrivateOnlyTx, firstNullifierHint, minRevertibleSideEffectCounter, executionSteps, generateWitnesses } = args;
292
+ const { apps, firstIteration, previousOutput, txRequest, isPrivateOnlyTx, minRevertibleSideEffectCounter, executionSteps, generateWitnesses } = args;
307
293
  const witgenTimer = new Timer();
308
294
  let output;
309
295
  let functionName;
@@ -312,8 +298,8 @@ const NULL_SIMULATE_OUTPUT = {
312
298
  switch(apps.length){
313
299
  case 1:
314
300
  {
315
- const proofInput = new PrivateKernelInitCircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], isPrivateOnlyTx, firstNullifierHint, minRevertibleSideEffectCounter);
316
- this.log.debug(`Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`);
301
+ const proofInput = new PrivateKernelInitCircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], isPrivateOnlyTx, minRevertibleSideEffectCounter);
302
+ this.log.debug(`Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx}`);
317
303
  pushTestData('private-kernel-inputs-init', proofInput);
318
304
  output = generateWitnesses ? await this.proofCreator.generateInitOutput(proofInput) : await this.proofCreator.simulateInit(proofInput);
319
305
  functionName = 'private_kernel_init';
@@ -321,8 +307,8 @@ const NULL_SIMULATE_OUTPUT = {
321
307
  }
322
308
  case 2:
323
309
  {
324
- const proofInput = new PrivateKernelInit2CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], isPrivateOnlyTx, firstNullifierHint, minRevertibleSideEffectCounter);
325
- this.log.debug(`Calling private kernel init_2 with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`);
310
+ const proofInput = new PrivateKernelInit2CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], isPrivateOnlyTx, minRevertibleSideEffectCounter);
311
+ this.log.debug(`Calling private kernel init_2 with isPrivateOnly ${isPrivateOnlyTx}`);
326
312
  pushTestData('private-kernel-inputs-init-2', proofInput);
327
313
  output = generateWitnesses ? await this.proofCreator.generateInit2Output(proofInput) : await this.proofCreator.simulateInit2(proofInput);
328
314
  functionName = 'private_kernel_init_2';
@@ -330,13 +316,31 @@ const NULL_SIMULATE_OUTPUT = {
330
316
  }
331
317
  case 3:
332
318
  {
333
- const proofInput = new PrivateKernelInit3CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], apps[2], isPrivateOnlyTx, firstNullifierHint, minRevertibleSideEffectCounter);
334
- this.log.debug(`Calling private kernel init_3 with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`);
319
+ const proofInput = new PrivateKernelInit3CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], apps[2], isPrivateOnlyTx, minRevertibleSideEffectCounter);
320
+ this.log.debug(`Calling private kernel init_3 with isPrivateOnly ${isPrivateOnlyTx}`);
335
321
  pushTestData('private-kernel-inputs-init-3', proofInput);
336
322
  output = generateWitnesses ? await this.proofCreator.generateInit3Output(proofInput) : await this.proofCreator.simulateInit3(proofInput);
337
323
  functionName = 'private_kernel_init_3';
338
324
  break;
339
325
  }
326
+ case 4:
327
+ {
328
+ const proofInput = new PrivateKernelInit4CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], apps[2], apps[3], isPrivateOnlyTx, minRevertibleSideEffectCounter);
329
+ this.log.debug(`Calling private kernel init_4 with isPrivateOnly ${isPrivateOnlyTx}`);
330
+ pushTestData('private-kernel-inputs-init-4', proofInput);
331
+ output = generateWitnesses ? await this.proofCreator.generateInit4Output(proofInput) : await this.proofCreator.simulateInit4(proofInput);
332
+ functionName = 'private_kernel_init_4';
333
+ break;
334
+ }
335
+ case 5:
336
+ {
337
+ const proofInput = new PrivateKernelInit5CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], apps[2], apps[3], apps[4], isPrivateOnlyTx, minRevertibleSideEffectCounter);
338
+ this.log.debug(`Calling private kernel init_5 with isPrivateOnly ${isPrivateOnlyTx}`);
339
+ pushTestData('private-kernel-inputs-init-5', proofInput);
340
+ output = generateWitnesses ? await this.proofCreator.generateInit5Output(proofInput) : await this.proofCreator.simulateInit5(proofInput);
341
+ functionName = 'private_kernel_init_5';
342
+ break;
343
+ }
340
344
  default:
341
345
  throw new Error(`Unsupported init kernel batch size: ${apps.length}`);
342
346
  }
@@ -368,6 +372,22 @@ const NULL_SIMULATE_OUTPUT = {
368
372
  functionName = 'private_kernel_inner_3';
369
373
  break;
370
374
  }
375
+ case 4:
376
+ {
377
+ const proofInput = new PrivateKernelInner4CircuitPrivateInputs(previousKernelData, apps[0], apps[1], apps[2], apps[3]);
378
+ pushTestData('private-kernel-inputs-inner-4', proofInput);
379
+ output = generateWitnesses ? await this.proofCreator.generateInner4Output(proofInput) : await this.proofCreator.simulateInner4(proofInput);
380
+ functionName = 'private_kernel_inner_4';
381
+ break;
382
+ }
383
+ case 5:
384
+ {
385
+ const proofInput = new PrivateKernelInner5CircuitPrivateInputs(previousKernelData, apps[0], apps[1], apps[2], apps[3], apps[4]);
386
+ pushTestData('private-kernel-inputs-inner-5', proofInput);
387
+ output = generateWitnesses ? await this.proofCreator.generateInner5Output(proofInput) : await this.proofCreator.simulateInner5(proofInput);
388
+ functionName = 'private_kernel_inner_5';
389
+ break;
390
+ }
371
391
  default:
372
392
  throw new Error(`Unsupported inner kernel batch size: ${apps.length}`);
373
393
  }
@@ -377,6 +397,7 @@ const NULL_SIMULATE_OUTPUT = {
377
397
  bytecode: output.bytecode,
378
398
  witness: output.outputWitness,
379
399
  vk: output.verificationKey.keyAsBytes,
400
+ kind: CircuitKind.Kernel,
380
401
  timings: {
381
402
  witgen: witgenTimer.ms()
382
403
  }
@@ -11,6 +11,7 @@ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
11
11
  import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
12
12
  import type { BlockHeader } from '@aztec/stdlib/tx';
13
13
  import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
14
+ import type { ContractClassService } from '../contract/contract_class_service.js';
14
15
  import type { ContractStore } from '../storage/contract_store/contract_store.js';
15
16
  /**
16
17
  * Provides functionality needed by the private kernel for interacting with our state trees.
@@ -20,7 +21,8 @@ export declare class PrivateKernelOracle {
20
21
  private keyStore;
21
22
  private node;
22
23
  private blockHeader;
23
- constructor(contractStore: ContractStore, keyStore: KeyStore, node: AztecNode, blockHeader: BlockHeader);
24
+ private readonly anchoredContractData;
25
+ constructor(contractStore: ContractStore, contractClassService: ContractClassService, keyStore: KeyStore, node: AztecNode, blockHeader: BlockHeader);
24
26
  /** Retrieves the preimage of a contract address from the registered contract instances db. */
25
27
  getContractAddressPreimage(address: AztecAddress): Promise<ContractInstanceWithAddress & {
26
28
  saltedInitializationHash: Fr;
@@ -60,4 +62,4 @@ export declare class PrivateKernelOracle {
60
62
  */
61
63
  getUpdatedClassIdHints(contractAddress: AztecAddress): Promise<UpdatedClassIdHints>;
62
64
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZV9rZXJuZWwvcHJpdmF0ZV9rZXJuZWxfb3JhY2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBR3JCLGNBQWMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssMkJBQTJCLEVBQW1DLE1BQU0sd0JBQXdCLENBQUM7QUFHM0csT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWpGOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CO0lBRTVCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxJQUFJO0lBQ1osT0FBTyxDQUFDLFdBQVc7SUFKckIsWUFDVSxhQUFhLEVBQUUsYUFBYSxFQUM1QixRQUFRLEVBQUUsUUFBUSxFQUNsQixJQUFJLEVBQUUsU0FBUyxFQUNmLFdBQVcsRUFBRSxXQUFXLEVBQzlCO0lBRUosOEZBQThGO0lBQ2pGLDBCQUEwQixDQUNyQyxPQUFPLEVBQUUsWUFBWSxHQUNwQixPQUFPLENBQUMsMkJBQTJCLEdBQUc7UUFBRSx3QkFBd0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBU3pFO0lBRUQsa0ZBQWtGO0lBQ3JFLDBCQUEwQixDQUFDLGVBQWUsRUFBRSxFQUFFOzs7O09BVTFEO0lBRUQsdUdBQXVHO0lBQzFGLDRCQUE0QixDQUN2QyxlQUFlLEVBQUUsRUFBRSxFQUNuQixRQUFRLEVBQUUsZ0JBQWdCLEdBQ3pCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLG9CQUFvQixDQUFDLENBQUMsQ0FRekQ7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FHNUc7SUFFRCwrRkFBK0Y7SUFDekYsNEJBQTRCLENBQ2hDLFFBQVEsRUFBRSxFQUFFLEdBQ1gsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8scUJBQXFCLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FFdEU7SUFFRCw4R0FBOEc7SUFDeEcsNkJBQTZCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDLENBRWxHO0lBRUQscURBQXFEO0lBQ3JELG1CQUFtQixJQUFJLEVBQUUsQ0FFeEI7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUUxRTtJQUVELDJFQUEyRTtJQUNwRSxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVsSDtJQUVEOzs7T0FHRztJQUNVLHNCQUFzQixDQUFDLGVBQWUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBb0MvRjtDQUNGIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZV9rZXJuZWwvcHJpdmF0ZV9rZXJuZWxfb3JhY2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBR3JCLGNBQWMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssMkJBQTJCLEVBQW1DLE1BQU0sd0JBQXdCLENBQUM7QUFHM0csT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFbEYsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFakY7O0dBRUc7QUFDSCxxQkFBYSxtQkFBbUI7SUFJNUIsT0FBTyxDQUFDLGFBQWE7SUFFckIsT0FBTyxDQUFDLFFBQVE7SUFDaEIsT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsV0FBVztJQVByQixPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUF1QjtJQUU1RCxZQUNVLGFBQWEsRUFBRSxhQUFhLEVBQ3BDLG9CQUFvQixFQUFFLG9CQUFvQixFQUNsQyxRQUFRLEVBQUUsUUFBUSxFQUNsQixJQUFJLEVBQUUsU0FBUyxFQUNmLFdBQVcsRUFBRSxXQUFXLEVBS2pDO0lBRUQsOEZBQThGO0lBQ2pGLDBCQUEwQixDQUNyQyxPQUFPLEVBQUUsWUFBWSxHQUNwQixPQUFPLENBQUMsMkJBQTJCLEdBQUc7UUFBRSx3QkFBd0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBZXpFO0lBRUQsa0ZBQWtGO0lBQ3JFLDBCQUEwQixDQUFDLGVBQWUsRUFBRSxFQUFFOzs7O09BVTFEO0lBRUQsdUdBQXVHO0lBQzFGLDRCQUE0QixDQUN2QyxlQUFlLEVBQUUsRUFBRSxFQUNuQixRQUFRLEVBQUUsZ0JBQWdCLEdBQ3pCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLG9CQUFvQixDQUFDLENBQUMsQ0FRekQ7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FHNUc7SUFFRCwrRkFBK0Y7SUFDekYsNEJBQTRCLENBQ2hDLFFBQVEsRUFBRSxFQUFFLEdBQ1gsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8scUJBQXFCLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FFdEU7SUFFRCw4R0FBOEc7SUFDeEcsNkJBQTZCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDLENBRWxHO0lBRUQscURBQXFEO0lBQ3JELG1CQUFtQixJQUFJLEVBQUUsQ0FFeEI7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUUxRTtJQUVELDJFQUEyRTtJQUM5RCxvQkFBb0IsQ0FDL0IsZUFBZSxFQUFFLFlBQVksRUFDN0IsUUFBUSxFQUFFLGdCQUFnQixHQUN6QixPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUc3QjtJQUVEOzs7T0FHRztJQUNVLHNCQUFzQixDQUFDLGVBQWUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBb0MvRjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_oracle.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAGrB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,2BAA2B,EAAmC,MAAM,wBAAwB,CAAC;AAG3G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAEjF;;GAEG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IAJrB,YACU,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,WAAW,EAC9B;IAEJ,8FAA8F;IACjF,0BAA0B,CACrC,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,2BAA2B,GAAG;QAAE,wBAAwB,EAAE,EAAE,CAAA;KAAE,CAAC,CASzE;IAED,kFAAkF;IACrE,0BAA0B,CAAC,eAAe,EAAE,EAAE;;;;OAU1D;IAED,uGAAuG;IAC1F,4BAA4B,CACvC,eAAe,EAAE,EAAE,EACnB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAQzD;IAED;;;OAGG;IACI,sBAAsB,CAAC,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,CAAC,CAG5G;IAED,+FAA+F;IACzF,4BAA4B,CAChC,QAAQ,EAAE,EAAE,GACX,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,GAAG,SAAS,CAAC,CAEtE;IAED,8GAA8G;IACxG,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAElG;IAED,qDAAqD;IACrD,mBAAmB,IAAI,EAAE,CAExB;IAED;;;;;;OAMG;IACI,kBAAkB,CAAC,mBAAmB,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAE1E;IAED,2EAA2E;IACpE,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElH;IAED;;;OAGG;IACU,sBAAsB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoC/F;CACF"}
1
+ {"version":3,"file":"private_kernel_oracle.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAGrB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,2BAA2B,EAAmC,MAAM,wBAAwB,CAAC;AAG3G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAEjF;;GAEG;AACH,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IAPrB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAE5D,YACU,aAAa,EAAE,aAAa,EACpC,oBAAoB,EAAE,oBAAoB,EAClC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,WAAW,EAKjC;IAED,8FAA8F;IACjF,0BAA0B,CACrC,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,2BAA2B,GAAG;QAAE,wBAAwB,EAAE,EAAE,CAAA;KAAE,CAAC,CAezE;IAED,kFAAkF;IACrE,0BAA0B,CAAC,eAAe,EAAE,EAAE;;;;OAU1D;IAED,uGAAuG;IAC1F,4BAA4B,CACvC,eAAe,EAAE,EAAE,EACnB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAQzD;IAED;;;OAGG;IACI,sBAAsB,CAAC,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,CAAC,CAG5G;IAED,+FAA+F;IACzF,4BAA4B,CAChC,QAAQ,EAAE,EAAE,GACX,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,GAAG,SAAS,CAAC,CAEtE;IAED,8GAA8G;IACxG,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAElG;IAED,qDAAqD;IACrD,mBAAmB,IAAI,EAAE,CAExB;IAED;;;;;;OAMG;IACI,kBAAkB,CAAC,mBAAmB,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAE1E;IAED,2EAA2E;IAC9D,oBAAoB,CAC/B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG7B;IAED;;;OAGG;IACU,sBAAsB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoC/F;CACF"}
@@ -6,6 +6,7 @@ import { computeSaltedInitializationHash } from '@aztec/stdlib/contract';
6
6
  import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
7
7
  import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
8
8
  import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
9
+ import { AnchoredContractData } from '../contract_function_simulator/anchored_contract_data.js';
9
10
  /**
10
11
  * Provides functionality needed by the private kernel for interacting with our state trees.
11
12
  */ export class PrivateKernelOracle {
@@ -13,20 +14,30 @@ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
13
14
  keyStore;
14
15
  node;
15
16
  blockHeader;
16
- constructor(contractStore, keyStore, node, blockHeader){
17
+ anchoredContractData;
18
+ constructor(contractStore, contractClassService, keyStore, node, blockHeader){
17
19
  this.contractStore = contractStore;
18
20
  this.keyStore = keyStore;
19
21
  this.node = node;
20
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);
21
26
  }
22
27
  /** Retrieves the preimage of a contract address from the registered contract instances db. */ async getContractAddressPreimage(address) {
23
- const instance = await this.contractStore.getContractInstance(address);
28
+ const instance = await this.anchoredContractData.getContractInstance(address);
24
29
  if (!instance) {
25
30
  throw new Error(`Contract instance not found when getting address preimage. Contract address: ${address}.`);
26
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
+ }
27
37
  return {
28
38
  saltedInitializationHash: await computeSaltedInitializationHash(instance),
29
- ...instance
39
+ ...instance,
40
+ currentContractClassId
30
41
  };
31
42
  }
32
43
  /** Retrieves the preimage of a contract class id from the contract classes db. */ async getContractClassIdPreimage(contractClassId) {
@@ -72,8 +83,9 @@ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
72
83
  */ getMasterSecretKey(masterPublicKeyHash) {
73
84
  return this.keyStore.getMasterSecretKey(masterPublicKeyHash);
74
85
  }
75
- /** Use debug data to get the function name corresponding to a selector. */ getDebugFunctionName(contractAddress, selector) {
76
- return this.contractStore.getDebugFunctionName(contractAddress, selector);
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;
77
89
  }
78
90
  /**
79
91
  * Returns a membership witness and leaf index to our public data indexed merkle tree,