@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,21 +1,29 @@
1
1
  {
2
2
  "pending_indexes": [
3
3
  {
4
- "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000002:0x0000000000000000000000000000000000000000000000000000000000000003",
4
+ "key": "utf8:constrained:0x0000000000000000000000000000000000000000000000000000000000000013:0x0000000000000000000000000000000000000000000000000000000000000017",
5
+ "value": "[{\"lowestIndex\":4,\"highestIndex\":7,\"txHash\":\"0x0000000000000000000000000000000000000000000000000000000000000025\"}]"
6
+ },
7
+ {
8
+ "key": "utf8:unconstrained:0x0000000000000000000000000000000000000000000000000000000000000002:0x0000000000000000000000000000000000000000000000000000000000000003",
5
9
  "value": "[{\"lowestIndex\":4,\"highestIndex\":7,\"txHash\":\"0x0000000000000000000000000000000000000000000000000000000000000013\"},{\"lowestIndex\":8,\"highestIndex\":11,\"txHash\":\"0x0000000000000000000000000000000000000000000000000000000000000017\"}]"
6
10
  },
7
11
  {
8
- "key": "utf8:0x000000000000000000000000000000000000000000000000000000000000000b:0x000000000000000000000000000000000000000000000000000000000000000d",
12
+ "key": "utf8:unconstrained:0x000000000000000000000000000000000000000000000000000000000000000b:0x000000000000000000000000000000000000000000000000000000000000000d",
9
13
  "value": "[{\"lowestIndex\":1,\"highestIndex\":9,\"txHash\":\"0x000000000000000000000000000000000000000000000000000000000000001d\"}]"
10
14
  }
11
15
  ],
12
16
  "last_finalized_indexes": [
13
17
  {
14
- "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000002:0x0000000000000000000000000000000000000000000000000000000000000003",
18
+ "key": "utf8:constrained:0x0000000000000000000000000000000000000000000000000000000000000013:0x0000000000000000000000000000000000000000000000000000000000000017",
19
+ "value": "num:3"
20
+ },
21
+ {
22
+ "key": "utf8:unconstrained:0x0000000000000000000000000000000000000000000000000000000000000002:0x0000000000000000000000000000000000000000000000000000000000000003",
15
23
  "value": "num:3"
16
24
  },
17
25
  {
18
- "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000005:0x0000000000000000000000000000000000000000000000000000000000000007",
26
+ "key": "utf8:unconstrained:0x0000000000000000000000000000000000000000000000000000000000000005:0x0000000000000000000000000000000000000000000000000000000000000007",
19
27
  "value": "num:5"
20
28
  }
21
29
  ]
@@ -0,0 +1,30 @@
1
+ {
2
+ "senders": [
3
+ {
4
+ "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000002",
5
+ "value": "true"
6
+ },
7
+ {
8
+ "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000003",
9
+ "value": "true"
10
+ },
11
+ {
12
+ "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000005",
13
+ "value": "true"
14
+ }
15
+ ],
16
+ "recipient_shared_secrets": [
17
+ {
18
+ "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000007",
19
+ "value": "{\"kind\":\"arbitrary-secret\",\"secret\":\"0x00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003\"}"
20
+ },
21
+ {
22
+ "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000007",
23
+ "value": "{\"kind\":\"handshake\",\"secret\":\"0x00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000007\"}"
24
+ },
25
+ {
26
+ "key": "utf8:0x000000000000000000000000000000000000000000000000000000000000000b",
27
+ "value": "{\"kind\":\"arbitrary-secret\",\"secret\":\"0x000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000011\"}"
28
+ }
29
+ ]
30
+ }
@@ -1,10 +1,6 @@
1
1
  {
2
- "schemaVersion": 6,
2
+ "schemaVersion": 13,
3
3
  "stores": [
4
- {
5
- "name": "address_book",
6
- "kind": "map"
7
- },
8
4
  {
9
5
  "name": "capsules",
10
6
  "kind": "map"
@@ -37,6 +33,18 @@
37
33
  "name": "events_by_contract_selector",
38
34
  "kind": "multimap"
39
35
  },
36
+ {
37
+ "name": "facts",
38
+ "kind": "map"
39
+ },
40
+ {
41
+ "name": "facts_by_block",
42
+ "kind": "multimap"
43
+ },
44
+ {
45
+ "name": "facts_by_collection",
46
+ "kind": "multimap"
47
+ },
40
48
  {
41
49
  "name": "header",
42
50
  "kind": "singleton"
@@ -58,7 +66,15 @@
58
66
  "kind": "map"
59
67
  },
60
68
  {
61
- "name": "note_block_number_to_nullifier",
69
+ "name": "note_nullifications_by_block",
70
+ "kind": "multimap"
71
+ },
72
+ {
73
+ "name": "note_nullifications_by_nullifier",
74
+ "kind": "map"
75
+ },
76
+ {
77
+ "name": "note_nullifiers_by_block",
62
78
  "kind": "multimap"
63
79
  },
64
80
  {
@@ -82,15 +98,19 @@
82
98
  "kind": "map"
83
99
  },
84
100
  {
85
- "name": "pxe_l2_block_number_to_checkpoint_number",
101
+ "name": "pxe_l2_tip_checkpoints",
86
102
  "kind": "map"
87
103
  },
88
104
  {
89
- "name": "pxe_l2_checkpoint_store",
105
+ "name": "pxe_l2_tips",
90
106
  "kind": "map"
91
107
  },
92
108
  {
93
- "name": "pxe_l2_tips",
109
+ "name": "recipient_shared_secrets",
110
+ "kind": "multimap"
111
+ },
112
+ {
113
+ "name": "senders",
94
114
  "kind": "map"
95
115
  }
96
116
  ]
@@ -2,6 +2,7 @@
2
2
  import { CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
3
3
  import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
+ import { Point } from '@aztec/foundation/curves/grumpkin';
5
6
  import { EthAddress } from '@aztec/foundation/eth-address';
6
7
  import type { Tuple } from '@aztec/foundation/serialize';
7
8
  import { KeyStore } from '@aztec/key-store';
@@ -14,9 +15,10 @@ import { BlockHash, Body, GENESIS_BLOCK_HEADER_HASH, L2Block } from '@aztec/stdl
14
15
  import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
15
16
  import { CompleteAddress, SerializableContractInstance } from '@aztec/stdlib/contract';
16
17
  import { GasFees } from '@aztec/stdlib/gas';
17
- import { PublicKey, PublicKeys } from '@aztec/stdlib/keys';
18
+ import { PublicKey, PublicKeys, deriveKeys } from '@aztec/stdlib/keys';
18
19
  import {
19
20
  AppTaggingSecret,
21
+ AppTaggingSecretKind,
20
22
  ContractClassLog,
21
23
  ContractClassLogFields,
22
24
  PrivateLog,
@@ -36,12 +38,14 @@ import {
36
38
  } from '@aztec/stdlib/tx';
37
39
 
38
40
  import { AddressStore } from '../address_store/address_store.js';
39
- import { AnchorBlockStore } from '../anchor_block_store/anchor_block_store.js';
41
+ import { AnchorBlockStore } from '../anchor_block_store/index.js';
40
42
  import { CapsuleStore } from '../capsule_store/capsule_store.js';
41
43
  import { ContractStore } from '../contract_store/contract_store.js';
44
+ import { FactStore } from '../fact_store/fact_store.js';
45
+ import { FactCollectionKey } from '../fact_store/fact_store_keys.js';
42
46
  import { NoteStore } from '../note_store/note_store.js';
43
47
  import { PrivateEventStore } from '../private_event_store/private_event_store.js';
44
- import { RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '../tagging_store/index.js';
48
+ import { RecipientTaggingStore, SenderTaggingStore, TaggingSecretSourcesStore } from '../tagging_store/index.js';
45
49
  import { snapshotArray, snapshotMap, snapshotSingleton } from './kv_store_snapshot.js';
46
50
 
47
51
  /**
@@ -106,7 +110,7 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
106
110
  SlotNumber(47),
107
111
  53n,
108
112
  EthAddress.fromField(new Fr(59n)),
109
- AztecAddress.fromBigInt(61n),
113
+ AztecAddress.fromBigIntUnsafe(61n),
110
114
  new GasFees(67n, 71n),
111
115
  ),
112
116
  new Fr(73n),
@@ -125,8 +129,8 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
125
129
  const capsuleStore = new CapsuleStore(kvStore);
126
130
 
127
131
  const jobId = 'fixture-job';
128
- const contractAddress = AztecAddress.fromBigInt(2n);
129
- const scope = AztecAddress.fromBigInt(3n);
132
+ const contractAddress = AztecAddress.fromBigIntUnsafe(2n);
133
+ const scope = AztecAddress.fromBigIntUnsafe(3n);
130
134
 
131
135
  // Three setCapsule calls (2-element, 1-element, 0-element value vector) pin every value-encoding length case.
132
136
  capsuleStore.setCapsule(contractAddress, new Fr(5n), [new Fr(7n), new Fr(11n)], jobId, scope);
@@ -188,7 +192,7 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
188
192
  new SerializableContractInstance({
189
193
  version: 2,
190
194
  salt: new Fr(73n),
191
- deployer: AztecAddress.fromBigInt(79n),
195
+ deployer: AztecAddress.fromBigIntUnsafe(79n),
192
196
  currentContractClassId: new Fr(83n),
193
197
  originalContractClassId: new Fr(89n),
194
198
  initializationHash: new Fr(97n),
@@ -204,7 +208,7 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
204
208
  new Fr(71n),
205
209
  new Fr(73n),
206
210
  ),
207
- }).withAddress(AztecAddress.fromBigInt(101n)),
211
+ }).withAddress(AztecAddress.fromBigIntUnsafe(101n)),
208
212
  );
209
213
  },
210
214
  snapshotStore: async kvStore => ({
@@ -214,11 +218,45 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
214
218
  }),
215
219
  },
216
220
 
221
+ {
222
+ name: 'FactStore',
223
+ writeToStore: async kvStore => {
224
+ const factStore = new FactStore(kvStore);
225
+ const jobId = 'fixture-job';
226
+ const contract = AztecAddress.fromBigIntUnsafe(100n);
227
+ const scope = AztecAddress.fromBigIntUnsafe(1n);
228
+ const factCollectionTypeId = new Fr(7n);
229
+ const keyA = FactCollectionKey.from({
230
+ contractAddress: contract,
231
+ scope,
232
+ factCollectionTypeId,
233
+ factCollectionId: new Fr(0xaan),
234
+ });
235
+ const keyB = FactCollectionKey.from({
236
+ contractAddress: contract,
237
+ scope,
238
+ factCollectionTypeId,
239
+ factCollectionId: new Fr(0xbbn),
240
+ });
241
+ // A collection whose only fact is retractable (origin block 6): pruned on a reorg above block 6.
242
+ await factStore.recordFact(keyA, new Fr(3n), [new Fr(5n)], { blockNumber: 6, blockHash: new Fr(2n) }, jobId);
243
+ // A collection with a non-retractable and a retractable fact.
244
+ await factStore.recordFact(keyB, new Fr(1n), [new Fr(9n)], undefined, jobId);
245
+ await factStore.recordFact(keyB, new Fr(2n), [], { blockNumber: 5, blockHash: new Fr(1n) }, jobId);
246
+ await kvStore.transactionAsync(() => factStore.commit(jobId));
247
+ },
248
+ snapshotStore: async kvStore => ({
249
+ facts: await snapshotMap(kvStore.openMap<string, Buffer>('facts')),
250
+ facts_by_collection: await snapshotMap(kvStore.openMultiMap<string, string>('facts_by_collection')),
251
+ facts_by_block: await snapshotMap(kvStore.openMultiMap<number, string>('facts_by_block')),
252
+ }),
253
+ },
254
+
217
255
  {
218
256
  name: 'KeyStore',
219
257
  writeToStore: async kvStore => {
220
258
  const keyStore = new KeyStore(kvStore);
221
- await keyStore.addAccount(new Fr(2n), new Fr(3n));
259
+ await keyStore.addAccount(await deriveKeys(new Fr(2n)), new Fr(3n));
222
260
  },
223
261
  snapshotStore: async kvStore => ({
224
262
  key_store: await snapshotMap(kvStore.openMap<string, Buffer>('key_store')),
@@ -243,9 +281,10 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
243
281
  SlotNumber(19),
244
282
  23n,
245
283
  EthAddress.fromField(new Fr(29n)),
246
- AztecAddress.fromBigInt(31n),
284
+ AztecAddress.fromBigIntUnsafe(31n),
247
285
  new GasFees(37n, 41n),
248
286
  new Fr(43n),
287
+ new Fr(47n),
249
288
  ),
250
289
  [block],
251
290
  CheckpointNumber(47),
@@ -256,28 +295,30 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
256
295
  );
257
296
 
258
297
  // `'blocks-added'` writes to `pxe_l2_tips` (proposed tag) and `pxe_l2_block_hashes`.
259
- // `'chain-checkpointed'` writes to all four sub-stores: tips ('checkpointed' and 'proposedCheckpoint' tags),
260
- // block-to-checkpoint mapping, and the checkpoint store.
298
+ // `'chain-checkpointed'` writes the 'checkpointed' tip and its checkpoint id (`pxe_l2_tip_checkpoints`).
261
299
  await l2TipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [block] });
262
300
  await l2TipsStore.handleBlockStreamEvent({
263
301
  type: 'chain-checkpointed',
264
302
  block: { number: BlockNumber(71), hash: new Fr(73n).toString() },
265
- checkpoint: publishedCheckpoint,
303
+ checkpoint: {
304
+ number: publishedCheckpoint.checkpoint.number,
305
+ hash: publishedCheckpoint.checkpoint.hash().toString(),
306
+ },
266
307
  });
267
308
  // `'chain-proven'` writes the 'proven' tag. `'finalized'` is omitted because its handler runs delete-before
268
309
  // logic that would depend on the order of preceding events.
269
310
  await l2TipsStore.handleBlockStreamEvent({
270
311
  type: 'chain-proven',
271
312
  block: { number: BlockNumber(79), hash: new Fr(83n).toString() },
313
+ checkpoint: { number: CheckpointNumber(47), hash: new Fr(89n).toString() },
272
314
  });
273
315
  },
274
316
  snapshotStore: async kvStore => ({
275
317
  pxe_l2_tips: await snapshotMap(kvStore.openMap<string, number>('pxe_l2_tips')),
276
- pxe_l2_block_hashes: await snapshotMap(kvStore.openMap<number, string>('pxe_l2_block_hashes')),
277
- pxe_l2_block_number_to_checkpoint_number: await snapshotMap(
278
- kvStore.openMap<number, number>('pxe_l2_block_number_to_checkpoint_number'),
318
+ pxe_l2_tip_checkpoints: await snapshotMap(
319
+ kvStore.openMap<string, { number: number; hash: string }>('pxe_l2_tip_checkpoints'),
279
320
  ),
280
- pxe_l2_checkpoint_store: await snapshotMap(kvStore.openMap<number, Buffer>('pxe_l2_checkpoint_store')),
321
+ pxe_l2_block_hashes: await snapshotMap(kvStore.openMap<number, string>('pxe_l2_block_hashes')),
281
322
  }),
282
323
  },
283
324
 
@@ -290,17 +331,17 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
290
331
 
291
332
  // Two contracts so `note_nullifiers_by_contract` exhibits both a multi-value row (contractA → {n1, n2}) and a
292
333
  // single-value row (contractB → {n3}).
293
- const contractA = AztecAddress.fromBigInt(2n);
294
- const contractB = AztecAddress.fromBigInt(3n);
295
- const scopeX = AztecAddress.fromBigInt(5n);
296
- const scopeY = AztecAddress.fromBigInt(7n);
334
+ const contractA = AztecAddress.fromBigIntUnsafe(2n);
335
+ const contractB = AztecAddress.fromBigIntUnsafe(3n);
336
+ const scopeX = AztecAddress.fromBigIntUnsafe(5n);
337
+ const scopeY = AztecAddress.fromBigIntUnsafe(7n);
297
338
 
298
339
  // note1: active, will be added under two scopes to exercise the multi-element scopes vector encoding in
299
340
  // `StoredNote.toBuffer`.
300
341
  const note1 = new NoteDao(
301
342
  new Note([new Fr(13n), new Fr(17n), new Fr(19n)]),
302
343
  contractA,
303
- AztecAddress.fromBigInt(23n),
344
+ AztecAddress.fromBigIntUnsafe(23n),
304
345
  new Fr(29n),
305
346
  new Fr(31n),
306
347
  new Fr(37n),
@@ -317,7 +358,7 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
317
358
  const note2 = new NoteDao(
318
359
  new Note([new Fr(71n), new Fr(73n), new Fr(79n)]),
319
360
  contractA,
320
- AztecAddress.fromBigInt(83n),
361
+ AztecAddress.fromBigIntUnsafe(83n),
321
362
  new Fr(89n),
322
363
  new Fr(97n),
323
364
  new Fr(101n),
@@ -330,12 +371,12 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
330
371
  137,
331
372
  );
332
373
 
333
- // note3: different contract; will be nullified to populate `note_block_number_to_nullifier` and exercise the
334
- // populated `_nullifiedAt` trailer of `StoredNote.toBuffer`.
374
+ // note3: different contract; will be nullified to populate `note_nullifications_by_nullifier` and exercise the
375
+ // append-only nullification record written by `applyNullifiers`.
335
376
  const note3 = new NoteDao(
336
377
  new Note([new Fr(139n), new Fr(149n), new Fr(151n)]),
337
378
  contractB,
338
- AztecAddress.fromBigInt(157n),
379
+ AztecAddress.fromBigIntUnsafe(157n),
339
380
  new Fr(163n),
340
381
  new Fr(167n),
341
382
  new Fr(173n),
@@ -355,9 +396,8 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
355
396
  await noteStore.addNotes([note2], scopeX, jobId);
356
397
  await noteStore.addNotes([note3], scopeX, jobId);
357
398
 
358
- // Nullify note3 within the same job. `applyNullifiers` reads the staged StoredNote, sets `_nullifiedAt`, and
359
- // writes back to the staged map; `commit` then flushes it to disk with the populated trailer and adds the
360
- // corresponding `note_block_number_to_nullifier` entry.
399
+ // Nullify note3 within the same job. `applyNullifiers` stages the emission block number for the note; `commit`
400
+ // then flushes it to disk into `note_nullifications_by_nullifier`.
361
401
  await noteStore.applyNullifiers(
362
402
  [{ data: note3.siloedNullifier, l2BlockNumber: BlockNumber(223), l2BlockHash: BlockHash.ZERO }],
363
403
  jobId,
@@ -370,8 +410,12 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
370
410
  note_nullifiers_by_contract: await snapshotMap(
371
411
  kvStore.openMultiMap<string, string>('note_nullifiers_by_contract'),
372
412
  ),
373
- note_block_number_to_nullifier: await snapshotMap(
374
- kvStore.openMultiMap<number, string>('note_block_number_to_nullifier'),
413
+ note_nullifications_by_nullifier: await snapshotMap(
414
+ kvStore.openMap<string, number>('note_nullifications_by_nullifier'),
415
+ ),
416
+ note_nullifiers_by_block: await snapshotMap(kvStore.openMultiMap<number, string>('note_nullifiers_by_block')),
417
+ note_nullifications_by_block: await snapshotMap(
418
+ kvStore.openMultiMap<number, string>('note_nullifications_by_block'),
375
419
  ),
376
420
  }),
377
421
  },
@@ -385,12 +429,12 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
385
429
 
386
430
  // Two (contract, selector) pairs and two block numbers so each multimap exhibits both a multi-value row
387
431
  // (contractA/selectorA → {e1, e2} and blockN1 → {e1, e2}) and a contrasting single-value row.
388
- const contractA = AztecAddress.fromBigInt(2n);
389
- const contractB = AztecAddress.fromBigInt(3n);
432
+ const contractA = AztecAddress.fromBigIntUnsafe(2n);
433
+ const contractB = AztecAddress.fromBigIntUnsafe(3n);
390
434
  const selectorA = EventSelector.fromField(new Fr(5n));
391
435
  const selectorB = EventSelector.fromField(new Fr(7n));
392
- const scopeX = AztecAddress.fromBigInt(11n);
393
- const scopeY = AztecAddress.fromBigInt(13n);
436
+ const scopeX = AztecAddress.fromBigIntUnsafe(11n);
437
+ const scopeY = AztecAddress.fromBigIntUnsafe(13n);
394
438
  const blockN1 = BlockNumber(17);
395
439
  const blockN2 = BlockNumber(19);
396
440
 
@@ -485,12 +529,20 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
485
529
  const recipientTaggingStore = new RecipientTaggingStore(kvStore);
486
530
 
487
531
  const jobId = 'fixture-job';
488
- const secretA = new AppTaggingSecret(new Fr(2n), AztecAddress.fromBigInt(3n));
489
- const secretB = new AppTaggingSecret(new Fr(5n), AztecAddress.fromBigInt(7n));
532
+ const secretA = new AppTaggingSecret(new Fr(2n), AztecAddress.fromBigIntUnsafe(3n));
533
+ const secretB = new AppTaggingSecret(new Fr(5n), AztecAddress.fromBigIntUnsafe(7n));
534
+ // A constrained secret keys under the `constrained:` prefix, so the snapshot pins both kinds side by side.
535
+ const secretConstrained = new AppTaggingSecret(
536
+ new Fr(19n),
537
+ AztecAddress.fromBigIntUnsafe(23n),
538
+ AppTaggingSecretKind.CONSTRAINED,
539
+ );
490
540
 
491
541
  await recipientTaggingStore.updateHighestFinalizedIndex(secretA, 11, jobId);
492
542
  await recipientTaggingStore.updateHighestAgedIndex(secretA, 13, jobId);
493
543
  await recipientTaggingStore.updateHighestFinalizedIndex(secretB, 17, jobId);
544
+ await recipientTaggingStore.updateHighestFinalizedIndex(secretConstrained, 11, jobId);
545
+ await recipientTaggingStore.updateHighestAgedIndex(secretConstrained, 13, jobId);
494
546
  await kvStore.transactionAsync(() => recipientTaggingStore.commit(jobId));
495
547
  },
496
548
  snapshotStore: async kvStore => ({
@@ -500,16 +552,35 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
500
552
  },
501
553
 
502
554
  {
503
- name: 'SenderAddressBookStore',
555
+ name: 'TaggingSecretSourcesStore',
504
556
  writeToStore: async kvStore => {
505
- const senderAddressBookStore = new SenderAddressBookStore(kvStore);
557
+ const taggingSecretSourcesStore = new TaggingSecretSourcesStore(kvStore);
558
+
559
+ await taggingSecretSourcesStore.addSender(AztecAddress.fromBigIntUnsafe(2n));
560
+ await taggingSecretSourcesStore.addSender(AztecAddress.fromBigIntUnsafe(3n));
561
+ await taggingSecretSourcesStore.addSender(AztecAddress.fromBigIntUnsafe(5n));
506
562
 
507
- await senderAddressBookStore.addSender(AztecAddress.fromBigInt(2n));
508
- await senderAddressBookStore.addSender(AztecAddress.fromBigInt(3n));
509
- await senderAddressBookStore.addSender(AztecAddress.fromBigInt(5n));
563
+ await taggingSecretSourcesStore.addSharedSecret(
564
+ AztecAddress.fromBigIntUnsafe(7n),
565
+ 'arbitrary-secret',
566
+ new Point(new Fr(2n), new Fr(3n)),
567
+ );
568
+ await taggingSecretSourcesStore.addSharedSecret(
569
+ AztecAddress.fromBigIntUnsafe(7n),
570
+ 'handshake',
571
+ new Point(new Fr(5n), new Fr(7n)),
572
+ );
573
+ await taggingSecretSourcesStore.addSharedSecret(
574
+ AztecAddress.fromBigIntUnsafe(11n),
575
+ 'arbitrary-secret',
576
+ new Point(new Fr(13n), new Fr(17n)),
577
+ );
510
578
  },
511
579
  snapshotStore: async kvStore => ({
512
- address_book: await snapshotMap(kvStore.openMap<string, true>('address_book')),
580
+ senders: await snapshotMap(kvStore.openMap<string, true>('senders')),
581
+ recipient_shared_secrets: await snapshotMap(
582
+ kvStore.openMultiMap<string, { kind: string; secret: string }>('recipient_shared_secrets'),
583
+ ),
513
584
  }),
514
585
  },
515
586
 
@@ -519,13 +590,20 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
519
590
  const senderTaggingStore = new SenderTaggingStore(kvStore);
520
591
 
521
592
  const jobId = 'fixture-job';
522
- const secretA = new AppTaggingSecret(new Fr(2n), AztecAddress.fromBigInt(3n));
523
- const secretB = new AppTaggingSecret(new Fr(5n), AztecAddress.fromBigInt(7n));
524
- const secretC = new AppTaggingSecret(new Fr(11n), AztecAddress.fromBigInt(13n));
593
+ const secretA = new AppTaggingSecret(new Fr(2n), AztecAddress.fromBigIntUnsafe(3n));
594
+ const secretB = new AppTaggingSecret(new Fr(5n), AztecAddress.fromBigIntUnsafe(7n));
595
+ const secretC = new AppTaggingSecret(new Fr(11n), AztecAddress.fromBigIntUnsafe(13n));
596
+ const secretConstrained = new AppTaggingSecret(
597
+ new Fr(19n),
598
+ AztecAddress.fromBigIntUnsafe(23n),
599
+ AppTaggingSecretKind.CONSTRAINED,
600
+ );
525
601
  const txHashA = TxHash.fromBigInt(17n);
526
602
  const txHashB = TxHash.fromBigInt(19n);
527
603
  const txHashC = TxHash.fromBigInt(23n);
528
604
  const txHashD = TxHash.fromBigInt(29n);
605
+ const txHashE = TxHash.fromBigInt(31n);
606
+ const txHashF = TxHash.fromBigInt(37n);
529
607
 
530
608
  // secretA receives three pending ranges (one per tx); secretB receives one. After finalizing txHashA below,
531
609
  // secretA's array shrinks to two elements (the txHashB and txHashC ranges, both with highestIndex > 3) which
@@ -564,7 +642,20 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [
564
642
  jobId,
565
643
  );
566
644
 
567
- await senderTaggingStore.finalizePendingIndexes([txHashA], jobId);
645
+ // secretConstrained gets a finalized range (txHashE) plus a surviving higher pending range (txHashF), so the
646
+ // `constrained:` key lands in both pending_indexes and last_finalized_indexes.
647
+ await senderTaggingStore.storePendingIndexes(
648
+ [{ extendedSecret: secretConstrained, lowestIndex: 1, highestIndex: 3 }],
649
+ txHashE,
650
+ jobId,
651
+ );
652
+ await senderTaggingStore.storePendingIndexes(
653
+ [{ extendedSecret: secretConstrained, lowestIndex: 4, highestIndex: 7 }],
654
+ txHashF,
655
+ jobId,
656
+ );
657
+
658
+ await senderTaggingStore.finalizePendingIndexes([txHashA, txHashE], jobId);
568
659
 
569
660
  await kvStore.transactionAsync(() => senderTaggingStore.commit(jobId));
570
661
  },
@@ -615,7 +706,7 @@ function buildL2Block(): L2Block {
615
706
  SlotNumber(181),
616
707
  191n,
617
708
  EthAddress.fromField(new Fr(193n)),
618
- AztecAddress.fromBigInt(197n),
709
+ AztecAddress.fromBigIntUnsafe(197n),
619
710
  new GasFees(199n, 211n),
620
711
  ),
621
712
  new Fr(223n),
@@ -636,10 +727,10 @@ function buildL2Block(): L2Block {
636
727
  3,
637
728
  ),
638
729
  ],
639
- [new PublicLog(AztecAddress.fromBigInt(281n), [new Fr(283n), new Fr(293n)])],
730
+ [new PublicLog(AztecAddress.fromBigIntUnsafe(281n), [new Fr(283n), new Fr(293n)])],
640
731
  [
641
732
  new ContractClassLog(
642
- AztecAddress.fromBigInt(307n),
733
+ AztecAddress.fromBigIntUnsafe(307n),
643
734
  new ContractClassLogFields(paddedFrs([311n, 313n, 317n], CONTRACT_CLASS_LOG_SIZE_IN_FIELDS)),
644
735
  3,
645
736
  ),
@@ -2,6 +2,7 @@ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
3
  import type { Capsule } from '@aztec/stdlib/tx';
4
4
 
5
+ import { assertAllowedScope } from '../allowed_scopes.js';
5
6
  import type { CapsuleStore } from './capsule_store.js';
6
7
 
7
8
  /**
@@ -9,10 +10,15 @@ import type { CapsuleStore } from './capsule_store.js';
9
10
  * allowed scopes list before delegating to the underlying store.
10
11
  */
11
12
  export class CapsuleService {
13
+ private readonly allowedScopes: AztecAddress[];
14
+
12
15
  constructor(
13
16
  private readonly capsuleStore: CapsuleStore,
14
- private readonly allowedScopes: AztecAddress[],
15
- ) {}
17
+ allowedScopes: AztecAddress[],
18
+ ) {
19
+ // The zero address denotes the global capsule scope, which is always permitted.
20
+ this.allowedScopes = [...allowedScopes, AztecAddress.ZERO];
21
+ }
16
22
 
17
23
  setCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[], jobId: string, scope: AztecAddress) {
18
24
  assertAllowedScope(scope, this.allowedScopes);
@@ -77,14 +83,3 @@ export class CapsuleService {
77
83
  return this.capsuleStore.setCapsuleArray(contractAddress, baseSlot, content, jobId, scope);
78
84
  }
79
85
  }
80
-
81
- function assertAllowedScope(scope: AztecAddress, allowedScopes: AztecAddress[]) {
82
- if (scope.equals(AztecAddress.ZERO)) {
83
- return;
84
- }
85
- if (!allowedScopes.some((allowed: AztecAddress) => allowed.equals(scope))) {
86
- throw new Error(
87
- `Scope ${scope.toString()} is not in the allowed scopes list: [${allowedScopes.map((s: AztecAddress) => s.toString()).join(', ')}]. See https://docs.aztec.network/errors/10`,
88
- );
89
- }
90
- }