@aztec/pxe 0.0.1-commit.c31f2472 → 0.0.1-commit.c52d6e7

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 (535) hide show
  1. package/dest/bin/check_oracle_version.js +11 -118
  2. package/dest/bin/index.d.ts +2 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +1 -0
  5. package/dest/bin/oracle_version_helpers.d.ts +20 -0
  6. package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
  7. package/dest/bin/oracle_version_helpers.js +25 -0
  8. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  9. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  10. package/dest/block_synchronizer/block_stream_source.js +37 -0
  11. package/dest/block_synchronizer/block_synchronizer.d.ts +22 -14
  12. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  13. package/dest/block_synchronizer/block_synchronizer.js +77 -28
  14. package/dest/config/index.d.ts +9 -2
  15. package/dest/config/index.d.ts.map +1 -1
  16. package/dest/config/index.js +14 -15
  17. package/dest/config/package_info.js +1 -1
  18. package/dest/contract/contract_class_service.d.ts +24 -0
  19. package/dest/contract/contract_class_service.d.ts.map +1 -0
  20. package/dest/contract/contract_class_service.js +36 -0
  21. package/dest/contract/contract_sync_service.d.ts +48 -0
  22. package/dest/contract/contract_sync_service.d.ts.map +1 -0
  23. package/dest/contract/contract_sync_service.js +116 -0
  24. package/dest/contract/helpers.d.ts +7 -0
  25. package/dest/contract/helpers.d.ts.map +1 -0
  26. package/dest/contract/helpers.js +20 -0
  27. package/dest/contract/skip_sync_contracts.d.ts +11 -0
  28. package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
  29. package/dest/contract/skip_sync_contracts.js +18 -0
  30. package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
  31. package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
  32. package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
  33. package/dest/contract_function_simulator/contract_function_simulator.d.ts +72 -43
  34. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/contract_function_simulator.js +264 -111
  36. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  37. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  38. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  39. package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -10
  40. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/execution_note_cache.js +8 -28
  42. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
  43. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
  45. package/dest/contract_function_simulator/index.d.ts +26 -5
  46. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/index.js +11 -3
  48. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
  49. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
  50. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
  51. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  52. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  53. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  54. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  55. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  57. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
  58. package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
  59. package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
  60. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -4
  61. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +9 -10
  63. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  64. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  65. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  66. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  67. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  68. package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
  69. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +19 -10
  70. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -24
  72. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
  73. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  74. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -63
  75. package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
  76. package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
  77. package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
  78. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -5
  79. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  80. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +8 -12
  81. package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
  82. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
  83. package/dest/contract_function_simulator/noir-structs/option.js +67 -0
  84. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  85. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  86. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  87. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
  88. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
  89. package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
  90. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
  91. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
  92. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
  93. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
  94. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  95. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
  96. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
  97. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  98. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
  99. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
  100. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  101. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  102. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  103. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  104. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  105. package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
  106. package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
  107. package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
  108. package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
  109. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  110. package/dest/contract_function_simulator/oracle/index.js +1 -1
  111. package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -98
  112. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  113. package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
  114. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
  115. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
  116. package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
  117. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  118. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  119. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  120. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
  121. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  122. package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
  123. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
  124. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
  125. package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -0
  126. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
  127. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
  128. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1253 -0
  129. package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
  130. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  131. package/dest/contract_function_simulator/oracle/private_execution.js +7 -6
  132. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +82 -97
  133. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  134. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +263 -118
  135. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +217 -88
  136. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  137. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +707 -194
  138. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  139. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  140. package/dest/contract_function_simulator/pick_notes.js +20 -3
  141. package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
  142. package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
  143. package/dest/contract_function_simulator/transient_array_service.js +62 -0
  144. package/dest/contract_logging.d.ts +27 -0
  145. package/dest/contract_logging.d.ts.map +1 -0
  146. package/dest/contract_logging.js +38 -0
  147. package/dest/debug/pxe_debug_utils.d.ts +14 -15
  148. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  149. package/dest/debug/pxe_debug_utils.js +16 -21
  150. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  151. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  152. package/dest/entrypoints/client/bundle/index.js +3 -0
  153. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  154. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  155. package/dest/entrypoints/client/bundle/utils.js +36 -8
  156. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  157. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  158. package/dest/entrypoints/client/lazy/index.js +3 -0
  159. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  160. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  161. package/dest/entrypoints/client/lazy/utils.js +36 -8
  162. package/dest/entrypoints/client/store.d.ts +14 -0
  163. package/dest/entrypoints/client/store.d.ts.map +1 -0
  164. package/dest/entrypoints/client/store.js +42 -0
  165. package/dest/entrypoints/pxe_creation_options.d.ts +16 -2
  166. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  167. package/dest/entrypoints/pxe_creation_options.js +3 -1
  168. package/dest/entrypoints/server/index.d.ts +8 -3
  169. package/dest/entrypoints/server/index.d.ts.map +1 -1
  170. package/dest/entrypoints/server/index.js +6 -2
  171. package/dest/entrypoints/server/store.d.ts +18 -0
  172. package/dest/entrypoints/server/store.d.ts.map +1 -0
  173. package/dest/entrypoints/server/store.js +28 -0
  174. package/dest/entrypoints/server/utils.d.ts +4 -3
  175. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  176. package/dest/entrypoints/server/utils.js +36 -8
  177. package/dest/error_enriching.d.ts +5 -3
  178. package/dest/error_enriching.d.ts.map +1 -1
  179. package/dest/error_enriching.js +13 -11
  180. package/dest/events/event_service.d.ts +22 -7
  181. package/dest/events/event_service.d.ts.map +1 -1
  182. package/dest/events/event_service.js +52 -20
  183. package/dest/events/private_event_filter_validator.d.ts +3 -2
  184. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  185. package/dest/events/private_event_filter_validator.js +15 -0
  186. package/dest/hooks/authorize_utility_call.d.ts +41 -0
  187. package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
  188. package/dest/hooks/authorize_utility_call.js +4 -0
  189. package/dest/hooks/execution_hooks.d.ts +62 -0
  190. package/dest/hooks/execution_hooks.d.ts.map +1 -0
  191. package/dest/hooks/execution_hooks.js +9 -0
  192. package/dest/hooks/index.d.ts +5 -0
  193. package/dest/hooks/index.d.ts.map +1 -0
  194. package/dest/hooks/index.js +2 -0
  195. package/dest/hooks/resolve_custom_request.d.ts +23 -0
  196. package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
  197. package/dest/hooks/resolve_custom_request.js +3 -0
  198. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
  199. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  200. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  201. package/dest/logs/log_service.d.ts +23 -12
  202. package/dest/logs/log_service.d.ts.map +1 -1
  203. package/dest/logs/log_service.js +185 -97
  204. package/dest/messages/tx_resolver_service.d.ts +28 -0
  205. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  206. package/dest/messages/tx_resolver_service.js +61 -0
  207. package/dest/node/benchmarked_node.d.ts +20 -0
  208. package/dest/node/benchmarked_node.d.ts.map +1 -0
  209. package/dest/node/benchmarked_node.js +94 -0
  210. package/dest/node/caching_aztec_node.d.ts +24 -0
  211. package/dest/node/caching_aztec_node.d.ts.map +1 -0
  212. package/dest/node/caching_aztec_node.js +267 -0
  213. package/dest/notes/note_service.d.ts +36 -9
  214. package/dest/notes/note_service.d.ts.map +1 -1
  215. package/dest/notes/note_service.js +90 -66
  216. package/dest/notes_filter.d.ts +24 -0
  217. package/dest/notes_filter.d.ts.map +1 -0
  218. package/dest/notes_filter.js +4 -0
  219. package/dest/oracle_version.d.ts +4 -3
  220. package/dest/oracle_version.d.ts.map +1 -1
  221. package/dest/oracle_version.js +20 -10
  222. package/dest/private_kernel/batch_planner.d.ts +47 -0
  223. package/dest/private_kernel/batch_planner.d.ts.map +1 -0
  224. package/dest/private_kernel/batch_planner.js +104 -0
  225. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  226. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  227. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  228. package/dest/private_kernel/hints/index.d.ts +1 -1
  229. package/dest/private_kernel/hints/index.js +1 -1
  230. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  231. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  232. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +135 -70
  233. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  234. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  235. package/dest/private_kernel/hints/test_utils.js +202 -0
  236. package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
  237. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  238. package/dest/private_kernel/private_kernel_execution_prover.js +208 -86
  239. package/dest/private_kernel/private_kernel_oracle.d.ts +17 -11
  240. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  241. package/dest/private_kernel/private_kernel_oracle.js +47 -29
  242. package/dest/pxe.d.ts +228 -66
  243. package/dest/pxe.d.ts.map +1 -1
  244. package/dest/pxe.js +435 -235
  245. package/dest/storage/address_store/address_store.d.ts +1 -1
  246. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  247. package/dest/storage/address_store/address_store.js +12 -11
  248. package/dest/storage/allowed_scopes.d.ts +6 -0
  249. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  250. package/dest/storage/allowed_scopes.js +7 -0
  251. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +12 -1
  252. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  253. package/dest/storage/anchor_block_store/anchor_block_store.js +12 -3
  254. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
  255. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
  256. package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
  257. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
  258. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
  259. package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
  260. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
  261. package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
  262. package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
  263. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  264. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  265. package/dest/storage/capsule_store/capsule_service.js +47 -0
  266. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  267. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  268. package/dest/storage/capsule_store/capsule_store.js +42 -36
  269. package/dest/storage/capsule_store/index.d.ts +2 -1
  270. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  271. package/dest/storage/capsule_store/index.js +1 -0
  272. package/dest/storage/contract_store/contract_store.d.ts +63 -33
  273. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  274. package/dest/storage/contract_store/contract_store.js +193 -136
  275. package/dest/storage/fact_store/fact_service.d.ts +22 -0
  276. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  277. package/dest/storage/fact_store/fact_service.js +45 -0
  278. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  279. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  280. package/dest/storage/fact_store/fact_store.js +408 -0
  281. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  282. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  283. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  284. package/dest/storage/fact_store/index.d.ts +6 -0
  285. package/dest/storage/fact_store/index.d.ts.map +1 -0
  286. package/dest/storage/fact_store/index.js +4 -0
  287. package/dest/storage/fact_store/origin_state.d.ts +59 -0
  288. package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
  289. package/dest/storage/fact_store/origin_state.js +60 -0
  290. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  291. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  292. package/dest/storage/fact_store/stored_fact.js +64 -0
  293. package/dest/storage/index.d.ts +3 -2
  294. package/dest/storage/index.d.ts.map +1 -1
  295. package/dest/storage/index.js +2 -1
  296. package/dest/storage/metadata.d.ts +2 -2
  297. package/dest/storage/metadata.d.ts.map +1 -1
  298. package/dest/storage/metadata.js +1 -1
  299. package/dest/storage/note_store/note_store.d.ts +48 -29
  300. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  301. package/dest/storage/note_store/note_store.js +270 -199
  302. package/dest/storage/note_store/stored_note.d.ts +3 -8
  303. package/dest/storage/note_store/stored_note.d.ts.map +1 -1
  304. package/dest/storage/note_store/stored_note.js +4 -20
  305. package/dest/storage/open_pxe_stores.d.ts +35 -0
  306. package/dest/storage/open_pxe_stores.d.ts.map +1 -0
  307. package/dest/storage/open_pxe_stores.js +29 -0
  308. package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
  309. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  310. package/dest/storage/private_event_store/private_event_store.js +144 -119
  311. package/dest/storage/store_identity.d.ts +35 -0
  312. package/dest/storage/store_identity.d.ts.map +1 -0
  313. package/dest/storage/store_identity.js +44 -0
  314. package/dest/storage/tagging_store/index.d.ts +2 -2
  315. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  316. package/dest/storage/tagging_store/index.js +1 -1
  317. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  318. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  319. package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
  320. package/dest/storage/tagging_store/sender_tagging_store.d.ts +63 -31
  321. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  322. package/dest/storage/tagging_store/sender_tagging_store.js +291 -143
  323. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
  324. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  325. package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
  326. package/dest/tagging/constants.d.ts +11 -2
  327. package/dest/tagging/constants.d.ts.map +1 -1
  328. package/dest/tagging/constants.js +38 -10
  329. package/dest/tagging/get_all_logs_by_tags.d.ts +55 -10
  330. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  331. package/dest/tagging/get_all_logs_by_tags.js +64 -32
  332. package/dest/tagging/index.d.ts +8 -7
  333. package/dest/tagging/index.d.ts.map +1 -1
  334. package/dest/tagging/index.js +6 -5
  335. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
  336. package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
  337. package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
  338. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
  339. package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
  340. package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +234 -0
  341. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
  342. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
  343. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  344. package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
  345. package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
  346. package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
  347. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +8 -10
  348. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  349. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +25 -22
  350. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
  351. package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
  352. package/dest/tagging/sender_sync/utils/classify_pending_txs.js +61 -0
  353. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +17 -9
  354. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  355. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +52 -39
  356. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
  357. package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
  358. package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +41 -0
  359. package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
  360. package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
  361. package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
  362. package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
  363. package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
  364. package/dest/tagging/testing/tag_query_test_utils.js +10 -0
  365. package/package.json +29 -17
  366. package/src/bin/check_oracle_version.ts +10 -143
  367. package/src/bin/index.ts +1 -0
  368. package/src/bin/oracle_version_helpers.ts +30 -0
  369. package/src/block_synchronizer/block_stream_source.ts +42 -0
  370. package/src/block_synchronizer/block_synchronizer.ts +90 -38
  371. package/src/config/index.ts +16 -9
  372. package/src/config/package_info.ts +1 -1
  373. package/src/contract/contract_class_service.ts +45 -0
  374. package/src/contract/contract_sync_service.ts +176 -0
  375. package/src/contract/helpers.ts +35 -0
  376. package/src/contract/skip_sync_contracts.ts +23 -0
  377. package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
  378. package/src/contract_function_simulator/contract_function_simulator.ts +465 -177
  379. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  380. package/src/contract_function_simulator/execution_note_cache.ts +8 -29
  381. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
  382. package/src/contract_function_simulator/index.ts +89 -4
  383. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
  384. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  385. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  386. package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
  387. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +10 -9
  388. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  389. package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
  390. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
  391. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -64
  392. package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
  393. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -11
  394. package/src/contract_function_simulator/noir-structs/option.ts +75 -0
  395. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  396. package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
  397. package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
  398. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
  399. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
  400. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
  401. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  402. package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
  403. package/src/contract_function_simulator/oracle/index.ts +1 -15
  404. package/src/contract_function_simulator/oracle/interfaces.ts +11 -176
  405. package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
  406. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  407. package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
  408. package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
  409. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1067 -0
  410. package/src/contract_function_simulator/oracle/private_execution.ts +6 -7
  411. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +323 -217
  412. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +1047 -276
  413. package/src/contract_function_simulator/pick_notes.ts +22 -3
  414. package/src/contract_function_simulator/transient_array_service.ts +91 -0
  415. package/src/contract_logging.ts +52 -0
  416. package/src/debug/pxe_debug_utils.ts +47 -25
  417. package/src/entrypoints/client/bundle/index.ts +3 -0
  418. package/src/entrypoints/client/bundle/utils.ts +43 -9
  419. package/src/entrypoints/client/lazy/index.ts +3 -0
  420. package/src/entrypoints/client/lazy/utils.ts +43 -9
  421. package/src/entrypoints/client/store.ts +54 -0
  422. package/src/entrypoints/pxe_creation_options.ts +21 -1
  423. package/src/entrypoints/server/index.ts +8 -2
  424. package/src/entrypoints/server/store.ts +47 -0
  425. package/src/entrypoints/server/utils.ts +52 -21
  426. package/src/error_enriching.ts +27 -11
  427. package/src/events/event_service.ts +85 -29
  428. package/src/events/private_event_filter_validator.ts +21 -1
  429. package/src/hooks/authorize_utility_call.ts +44 -0
  430. package/src/hooks/execution_hooks.ts +68 -0
  431. package/src/hooks/index.ts +13 -0
  432. package/src/hooks/resolve_custom_request.ts +24 -0
  433. package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
  434. package/src/logs/log_service.ts +230 -160
  435. package/src/messages/tx_resolver_service.ts +80 -0
  436. package/src/node/benchmarked_node.ts +140 -0
  437. package/src/node/caching_aztec_node.ts +406 -0
  438. package/src/notes/note_service.ts +131 -92
  439. package/src/notes_filter.ts +24 -0
  440. package/src/oracle_version.ts +20 -10
  441. package/src/private_kernel/batch_planner.ts +168 -0
  442. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  443. package/src/private_kernel/hints/index.ts +1 -1
  444. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +176 -119
  445. package/src/private_kernel/hints/test_utils.ts +318 -0
  446. package/src/private_kernel/private_kernel_execution_prover.ts +341 -120
  447. package/src/private_kernel/private_kernel_oracle.ts +65 -36
  448. package/src/pxe.ts +728 -309
  449. package/src/storage/address_store/address_store.ts +15 -15
  450. package/src/storage/allowed_scopes.ts +14 -0
  451. package/src/storage/anchor_block_store/anchor_block_store.ts +12 -2
  452. package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
  453. package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
  454. package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
  455. package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
  456. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  457. package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
  458. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
  459. package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
  460. package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
  461. package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
  462. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
  463. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  464. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
  465. package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
  466. package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
  467. package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
  468. package/src/storage/capsule_store/capsule_service.ts +85 -0
  469. package/src/storage/capsule_store/capsule_store.ts +52 -34
  470. package/src/storage/capsule_store/index.ts +1 -0
  471. package/src/storage/contract_store/contract_store.ts +251 -168
  472. package/src/storage/fact_store/fact_service.ts +69 -0
  473. package/src/storage/fact_store/fact_store.ts +487 -0
  474. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  475. package/src/storage/fact_store/index.ts +15 -0
  476. package/src/storage/fact_store/origin_state.ts +84 -0
  477. package/src/storage/fact_store/stored_fact.ts +80 -0
  478. package/src/storage/index.ts +2 -1
  479. package/src/storage/metadata.ts +1 -1
  480. package/src/storage/note_store/note_store.ts +306 -228
  481. package/src/storage/note_store/stored_note.ts +5 -27
  482. package/src/storage/open_pxe_stores.ts +52 -0
  483. package/src/storage/private_event_store/private_event_store.ts +179 -158
  484. package/src/storage/store_identity.ts +72 -0
  485. package/src/storage/tagging_store/index.ts +1 -1
  486. package/src/storage/tagging_store/recipient_tagging_store.ts +34 -24
  487. package/src/storage/tagging_store/sender_tagging_store.ts +366 -163
  488. package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
  489. package/src/tagging/constants.ts +42 -10
  490. package/src/tagging/get_all_logs_by_tags.ts +124 -36
  491. package/src/tagging/index.ts +12 -6
  492. package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
  493. package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +355 -0
  494. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +4 -4
  495. package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
  496. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +32 -27
  497. package/src/tagging/sender_sync/utils/classify_pending_txs.ts +91 -0
  498. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +55 -49
  499. package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +64 -0
  500. package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
  501. package/src/tagging/testing/tag_query_test_utils.ts +11 -0
  502. package/dest/contract_function_simulator/benchmarked_node.d.ts +0 -9
  503. package/dest/contract_function_simulator/benchmarked_node.d.ts.map +0 -1
  504. package/dest/contract_function_simulator/benchmarked_node.js +0 -77
  505. package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -60
  506. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
  507. package/dest/contract_function_simulator/oracle/oracle.js +0 -356
  508. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
  509. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
  510. package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
  511. package/dest/contract_sync/index.d.ts +0 -23
  512. package/dest/contract_sync/index.d.ts.map +0 -1
  513. package/dest/contract_sync/index.js +0 -54
  514. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  515. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  516. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  517. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  518. package/dest/storage/tagging_store/sender_address_book_store.js +0 -30
  519. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -15
  520. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
  521. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
  522. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -15
  523. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
  524. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -32
  525. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +0 -11
  526. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  527. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +0 -29
  528. package/src/contract_function_simulator/benchmarked_node.ts +0 -103
  529. package/src/contract_function_simulator/oracle/oracle.ts +0 -620
  530. package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
  531. package/src/contract_sync/index.ts +0 -98
  532. package/src/storage/tagging_store/sender_address_book_store.ts +0 -42
  533. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -143
  534. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -49
  535. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -36
@@ -0,0 +1,35 @@
1
+ import { KeyStore } from '@aztec/key-store';
2
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
+ import { L2TipsKVStore } from '@aztec/kv-store/stores';
4
+ import type { BlockHash } from '@aztec/stdlib/block';
5
+ import { AddressStore } from './address_store/address_store.js';
6
+ import { AnchorBlockStore } from './anchor_block_store/anchor_block_store.js';
7
+ import { CapsuleStore } from './capsule_store/capsule_store.js';
8
+ import { ContractStore } from './contract_store/contract_store.js';
9
+ import { FactStore } from './fact_store/fact_store.js';
10
+ import { NoteStore } from './note_store/note_store.js';
11
+ import { PrivateEventStore } from './private_event_store/private_event_store.js';
12
+ import { RecipientTaggingStore, SenderTaggingStore, TaggingSecretSourcesStore } from './tagging_store/index.js';
13
+ /**
14
+ * The set of sub-stores opened against a single `AztecAsyncKVStore` to back PXE state.
15
+ */
16
+ export type PxeStores = {
17
+ addressStore: AddressStore;
18
+ privateEventStore: PrivateEventStore;
19
+ contractStore: ContractStore;
20
+ noteStore: NoteStore;
21
+ anchorBlockStore: AnchorBlockStore;
22
+ senderTaggingStore: SenderTaggingStore;
23
+ taggingSecretSourcesStore: TaggingSecretSourcesStore;
24
+ recipientTaggingStore: RecipientTaggingStore;
25
+ capsuleStore: CapsuleStore;
26
+ keyStore: KeyStore;
27
+ l2TipsStore: L2TipsKVStore;
28
+ factStore: FactStore;
29
+ };
30
+ /**
31
+ * Opens every PXE sub-store against the given backing store. The `initialBlockHash` seeds the
32
+ * `L2TipsKVStore` so it agrees with the node's archiver on the dynamic genesis header hash.
33
+ */
34
+ export declare function openPxeStores(store: AztecAsyncKVStore, initialBlockHash: BlockHash): PxeStores;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbl9weGVfc3RvcmVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS9vcGVuX3B4ZV9zdG9yZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEg7O0dBRUc7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLFlBQVksRUFBRSxZQUFZLENBQUM7SUFDM0IsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7SUFDckMsYUFBYSxFQUFFLGFBQWEsQ0FBQztJQUM3QixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO0lBQ3ZDLHlCQUF5QixFQUFFLHlCQUF5QixDQUFDO0lBQ3JELHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO0lBQzdDLFlBQVksRUFBRSxZQUFZLENBQUM7SUFDM0IsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNuQixXQUFXLEVBQUUsYUFBYSxDQUFDO0lBQzNCLFNBQVMsRUFBRSxTQUFTLENBQUM7Q0FDdEIsQ0FBQztBQUVGOzs7R0FHRztBQUNILHdCQUFnQixhQUFhLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLFNBQVMsR0FBRyxTQUFTLENBZTlGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open_pxe_stores.d.ts","sourceRoot":"","sources":["../../src/storage/open_pxe_stores.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAEhH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAe9F"}
@@ -0,0 +1,29 @@
1
+ import { KeyStore } from '@aztec/key-store';
2
+ import { L2TipsKVStore } from '@aztec/kv-store/stores';
3
+ import { AddressStore } from './address_store/address_store.js';
4
+ import { AnchorBlockStore } from './anchor_block_store/anchor_block_store.js';
5
+ import { CapsuleStore } from './capsule_store/capsule_store.js';
6
+ import { ContractStore } from './contract_store/contract_store.js';
7
+ import { FactStore } from './fact_store/fact_store.js';
8
+ import { NoteStore } from './note_store/note_store.js';
9
+ import { PrivateEventStore } from './private_event_store/private_event_store.js';
10
+ import { RecipientTaggingStore, SenderTaggingStore, TaggingSecretSourcesStore } from './tagging_store/index.js';
11
+ /**
12
+ * Opens every PXE sub-store against the given backing store. The `initialBlockHash` seeds the
13
+ * `L2TipsKVStore` so it agrees with the node's archiver on the dynamic genesis header hash.
14
+ */ export function openPxeStores(store, initialBlockHash) {
15
+ return {
16
+ addressStore: new AddressStore(store),
17
+ privateEventStore: new PrivateEventStore(store),
18
+ contractStore: new ContractStore(store),
19
+ noteStore: new NoteStore(store),
20
+ anchorBlockStore: new AnchorBlockStore(store),
21
+ senderTaggingStore: new SenderTaggingStore(store),
22
+ taggingSecretSourcesStore: new TaggingSecretSourcesStore(store),
23
+ recipientTaggingStore: new RecipientTaggingStore(store),
24
+ capsuleStore: new CapsuleStore(store),
25
+ keyStore: new KeyStore(store),
26
+ l2TipsStore: new L2TipsKVStore(store, 'pxe', initialBlockHash),
27
+ factStore: new FactStore(store)
28
+ };
29
+ }
@@ -22,6 +22,9 @@ type PrivateEventMetadata = InTx & {
22
22
  };
23
23
  /**
24
24
  * Stores decrypted private event logs.
25
+ *
26
+ * Append-only: events are never deleted during normal operation. Reorgs are handled by delete-on-prune, which removes
27
+ * every event originating on a reorg'd block.
25
28
  */
26
29
  export declare class PrivateEventStore implements StagedStore {
27
30
  #private;
@@ -53,24 +56,18 @@ export declare class PrivateEventStore implements StagedStore {
53
56
  * included.
54
57
  */
55
58
  getPrivateEvents(eventSelector: EventSelector, filter: PrivateEventStoreFilter): Promise<PackedPrivateEvent[]>;
59
+ /** Returns the ids (siloed event commitments) of all events emitted at the given block number. Used by delete-on-prune. */
60
+ eventIdsAtBlock(blockNumber: number): Promise<string[]>;
56
61
  /**
57
- * Rolls back private events that were stored after a given `blockNumber` and up to `synchedBlockNumber` (the block
58
- * number up to which PXE managed to sync before the reorg happened).
62
+ * Rolls the store back to `toBlock`: deletes every event anchored to a block strictly above it, as if nothing past
63
+ * that block height ever happened. Used by the reorg (`chain-pruned`) path to truncate the orphaned tail. Scanning
64
+ * from `toBlock + 1` upward covers everything above the rollback target without needing to know the chain tip.
59
65
  *
60
- * We don't need staged writes for a rollback since it's handled in the context of a blockchain rewind.
61
- *
62
- * Rollbacks are handled by the BlockSynchronizer, which runs a DB transaction across stores when it detects a
63
- * re-org, including setting the new anchor block after rolling back.
64
- *
65
- * So if anything fails in the process of rolling back any store, all DB changes occurring during rollbacks will be
66
- * lost and the anchor block will not be updated; which means this code will eventually need to run again
67
- * (i.e.: PXE will detect it's basing it work on an invalid block hash, then which re-triggers rewind).
68
- *
69
- * For further details, refer to `BlockSynchronizer#handleBlockStreamEvent`.
70
- *
71
- * IMPORTANT: This method must be called within a transaction to ensure atomicity.
66
+ * Must be called inside a transaction owned by the caller (it issues no `transactionAsync` of its own, the reorg
67
+ * path wraps it together with the anchor update, and IndexedDB has no nested transactions). Throws if any job has
68
+ * uncommitted staged writes, since rolling back mid-job could later re-introduce events anchored to deleted blocks.
72
69
  */
73
- rollback(blockNumber: number, synchedBlockNumber: number): Promise<void>;
70
+ rollback(toBlock: number): Promise<void>;
74
71
  /**
75
72
  * Commits in memory job data to persistent storage.
76
73
  *
@@ -88,4 +85,4 @@ export declare class PrivateEventStore implements StagedStore {
88
85
  discardStaged(jobId: string): Promise<void>;
89
86
  }
90
87
  export {};
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvcHJpdmF0ZV9ldmVudF9zdG9yZS9wcml2YXRlX2V2ZW50X3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlwRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHdkQsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLGVBQWUsRUFBRSxZQUFZLENBQUM7SUFDOUIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN2QixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDakIsQ0FBQztBQUVGLEtBQUssb0JBQW9CLEdBQUcsSUFBSSxHQUFHO0lBQ2pDLGVBQWUsRUFBRSxZQUFZLENBQUM7SUFDOUIsS0FBSyxFQUFFLFlBQVksQ0FBQztJQUNwQiwyQ0FBMkM7SUFDM0MsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2Qix5RUFBeUU7SUFDekUsY0FBYyxFQUFFLE1BQU0sQ0FBQztDQUN4QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxpQkFBa0IsWUFBVyxXQUFXOztJQUNuRCxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBbUI7SUFnQjdDLE1BQU0seUNBQXVDO0lBRTdDLFlBQVksS0FBSyxFQUFFLGlCQUFpQixFQVFuQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsb0JBQW9CLENBQ2xCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLFVBQVUsRUFBRSxFQUFFLEVBQ2QsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUNoQixxQkFBcUIsRUFBRSxFQUFFLEVBQ3pCLFFBQVEsRUFBRSxvQkFBb0IsRUFDOUIsS0FBSyxFQUFFLE1BQU0saUJBdUNkO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNVLGdCQUFnQixDQUMzQixhQUFhLEVBQUUsYUFBYSxFQUM1QixNQUFNLEVBQUUsdUJBQXVCLEdBQzlCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBbUUvQjtJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ1UsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E0QnBGO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWVuQztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUxQztDQTRFRiJ9
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvcHJpdmF0ZV9ldmVudF9zdG9yZS9wcml2YXRlX2V2ZW50X3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHdkQsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLGVBQWUsRUFBRSxZQUFZLENBQUM7SUFDOUIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN2QixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDakIsQ0FBQztBQUVGLEtBQUssb0JBQW9CLEdBQUcsSUFBSSxHQUFHO0lBQ2pDLGVBQWUsRUFBRSxZQUFZLENBQUM7SUFDOUIsS0FBSyxFQUFFLFlBQVksQ0FBQztJQUNwQiwyQ0FBMkM7SUFDM0MsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2Qix5RUFBeUU7SUFDekUsY0FBYyxFQUFFLE1BQU0sQ0FBQztDQUN4QixDQUFDO0FBU0Y7Ozs7O0dBS0c7QUFDSCxxQkFBYSxpQkFBa0IsWUFBVyxXQUFXOztJQUNuRCxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBbUI7SUFnQjdDLE1BQU0seUNBQXVDO0lBRTdDLFlBQVksS0FBSyxFQUFFLGlCQUFpQixFQVFuQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsb0JBQW9CLENBQ2xCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLFVBQVUsRUFBRSxFQUFFLEVBQ2QsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUNoQixxQkFBcUIsRUFBRSxFQUFFLEVBQ3pCLFFBQVEsRUFBRSxvQkFBb0IsRUFDOUIsS0FBSyxFQUFFLE1BQU0saUJBeUNkO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLGdCQUFnQixDQUNyQixhQUFhLEVBQUUsYUFBYSxFQUM1QixNQUFNLEVBQUUsdUJBQXVCLEdBQzlCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBK0UvQjtJQUVELDJIQUEySDtJQUM5RyxlQUFlLENBQUMsV0FBVyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FNbkU7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0F5QnBEO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0csTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWdCekM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHMUM7Q0EwRUYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"private_event_store.d.ts","sourceRoot":"","sources":["../../../src/storage/private_event_store/private_event_store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,YAAY,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,oBAAoB,GAAG,IAAI,GAAG;IACjC,eAAe,EAAE,YAAY,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,WAAW;;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAmB;IAgB7C,MAAM,yCAAuC;IAE7C,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,EAAE,EAAE,EAChB,qBAAqB,EAAE,EAAE,EACzB,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,MAAM,iBAuCd;IAED;;;;;;;;;;OAUG;IACU,gBAAgB,CAC3B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmE/B;IAED;;;;;;;;;;;;;;;;OAgBG;IACU,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BpF;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAenC;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;CA4EF"}
1
+ {"version":3,"file":"private_event_store.d.ts","sourceRoot":"","sources":["../../../src/storage/private_event_store/private_event_store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,YAAY,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,oBAAoB,GAAG,IAAI,GAAG;IACjC,eAAe,EAAE,YAAY,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AASF;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,WAAW;;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAmB;IAgB7C,MAAM,yCAAuC;IAE7C,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,EAAE,EAAE,EAChB,qBAAqB,EAAE,EAAE,EACzB,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,MAAM,iBAyCd;IAED;;;;;;;;;;OAUG;IACI,gBAAgB,CACrB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA+E/B;IAED,2HAA2H;IAC9G,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnE;IAED;;;;;;;;OAQG;IACU,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBpD;IAED;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzC;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1C;CA0EF"}
@@ -1,16 +1,18 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { toArray } from '@aztec/foundation/iterable';
3
2
  import { createLogger } from '@aztec/foundation/log';
4
3
  import { Semaphore } from '@aztec/foundation/queue';
5
4
  import { StoredPrivateEvent } from './stored_private_event.js';
6
5
  /**
7
6
  * Stores decrypted private event logs.
7
+ *
8
+ * Append-only: events are never deleted during normal operation. Reorgs are handled by delete-on-prune, which removes
9
+ * every event originating on a reorg'd block.
8
10
  */ export class PrivateEventStore {
9
11
  storeName = 'private_event';
10
12
  #store;
11
13
  /** Actual private event log entries, keyed by siloedEventCommitment */ #events;
12
14
  /** Multi-map from contractAddress_eventSelector to siloedEventCommitment for efficient lookup */ #eventsByContractAndEventSelector;
13
- /** Multi-map from block number to siloedEventCommitment for rollback support */ #eventsByBlockNumber;
15
+ /** Multi-map from block number to siloedEventCommitment, for delete-on-prune. */ #eventsByBlockNumber;
14
16
  /** jobId => eventId (event siloed nullifier) => StoredPrivateEvent */ #eventsForJob;
15
17
  /** Per-job locks to prevent concurrent writes from affecting each other. */ #jobLocks;
16
18
  logger = createLogger('private_event_store');
@@ -34,27 +36,27 @@ import { StoredPrivateEvent } from './stored_private_event.js';
34
36
  * txHash - The transaction hash of the event log.
35
37
  * blockNumber - The block number in which the event was emitted.
36
38
  */ storePrivateEventLog(eventSelector, randomness, msgContent, siloedEventCommitment, metadata, jobId) {
37
- return this.#withJobLock(jobId, async ()=>{
38
- const { contractAddress, scope, txHash, l2BlockNumber, l2BlockHash, txIndexInBlock, eventIndexInTx } = metadata;
39
- const eventId = siloedEventCommitment.toString();
40
- this.logger.verbose('storing private event log (job stage)', {
41
- eventId,
42
- contractAddress,
43
- scope,
44
- msgContent,
45
- l2BlockNumber
46
- });
47
- const existing = await this.#readEvent(eventId, jobId);
48
- if (existing) {
49
- // If we already stored this event, we still want to make sure to track it for the given scope
50
- existing.addScope(scope.toString());
51
- this.#writeEvent(eventId, existing, jobId);
52
- } else {
53
- this.#writeEvent(eventId, new StoredPrivateEvent(randomness, msgContent, l2BlockNumber, l2BlockHash, txHash, txIndexInBlock, eventIndexInTx, contractAddress, eventSelector, new Set([
54
- scope.toString()
55
- ])), jobId);
56
- }
57
- });
39
+ return this.#withJobLock(jobId, ()=>this.#store.transactionAsync(async ()=>{
40
+ const { contractAddress, scope, txHash, l2BlockNumber, l2BlockHash, txIndexInBlock, eventIndexInTx } = metadata;
41
+ const eventId = siloedEventCommitment.toString();
42
+ this.logger.verbose('storing private event log (job stage)', {
43
+ eventId,
44
+ contractAddress,
45
+ scope,
46
+ msgContent,
47
+ l2BlockNumber
48
+ });
49
+ const existing = await this.#readEvent(eventId, jobId);
50
+ if (existing) {
51
+ // If we already stored this event, we still want to make sure to track it for the given scope
52
+ existing.addScope(scope.toString());
53
+ this.#writeEvent(eventId, existing, jobId);
54
+ } else {
55
+ this.#writeEvent(eventId, new StoredPrivateEvent(randomness, msgContent, l2BlockNumber, l2BlockHash, txHash, txIndexInBlock, eventIndexInTx, contractAddress, eventSelector, new Set([
56
+ scope.toString()
57
+ ])), jobId);
58
+ }
59
+ }));
58
60
  }
59
61
  /**
60
62
  * Returns the private events given search parameters.
@@ -66,91 +68,113 @@ import { StoredPrivateEvent } from './stored_private_event.js';
66
68
  * scope: - The addresses that decrypted the logs.
67
69
  * @returns - The event log contents, augmented with metadata about the transaction and block in which the event was
68
70
  * included.
69
- */ async getPrivateEvents(eventSelector, filter) {
70
- const events = [];
71
- const key = this.#keyFor(filter.contractAddress, eventSelector);
72
- const targetScopes = new Set(filter.scopes.map((s)=>s.toString()));
73
- const eventIds = await toArray(this.#eventsByContractAndEventSelector.getValuesAsync(key));
74
- for (const eventId of eventIds){
75
- const eventBuffer = await this.#events.getAsync(eventId);
76
- // Defensive, if it happens, there's a problem with how we're handling #eventsByContractAndEventSelector
77
- if (!eventBuffer) {
78
- this.logger.verbose(`EventId ${eventId} does not exist in main index but it is referenced from contract event selector index`);
79
- continue;
80
- }
81
- const storedPrivateEvent = StoredPrivateEvent.fromBuffer(eventBuffer);
82
- // Filter by block range
83
- if (storedPrivateEvent.l2BlockNumber < filter.fromBlock || storedPrivateEvent.l2BlockNumber >= filter.toBlock) {
84
- continue;
85
- }
86
- // Filter by scopes
87
- if (storedPrivateEvent.scopes.intersection(targetScopes).size === 0) {
88
- continue;
71
+ */ getPrivateEvents(eventSelector, filter) {
72
+ return this.#store.transactionAsync(async ()=>{
73
+ const key = this.#keyFor(filter.contractAddress, eventSelector);
74
+ const targetScopes = new Set(filter.scopes.map((s)=>s.toString()));
75
+ // Map from eventId to the promise that reads the event buffer.
76
+ // We start reads during iteration to keep DB requests pending and avoid IndexedDB auto-commit.
77
+ const eventReadPromises = new Map();
78
+ for await (const eventId of this.#eventsByContractAndEventSelector.getValuesAsync(key)){
79
+ eventReadPromises.set(eventId, this.#events.getAsync(eventId));
89
80
  }
90
- // Filter by txHash
91
- if (filter.txHash && !storedPrivateEvent.txHash.equals(filter.txHash)) {
92
- continue;
81
+ const eventIds = [
82
+ ...eventReadPromises.keys()
83
+ ];
84
+ const eventBuffers = await Promise.all(eventReadPromises.values());
85
+ const events = [];
86
+ for(let i = 0; i < eventIds.length; i++){
87
+ const eventId = eventIds[i];
88
+ const eventBuffer = eventBuffers[i];
89
+ // Defensive, if it happens, there's a problem with how we're handling #eventsByContractAndEventSelector
90
+ if (!eventBuffer) {
91
+ this.logger.verbose(`EventId ${eventId} does not exist in main index but it is referenced from contract event selector index`);
92
+ continue;
93
+ }
94
+ const storedPrivateEvent = StoredPrivateEvent.fromBuffer(eventBuffer);
95
+ // Filter by block range
96
+ if (storedPrivateEvent.l2BlockNumber < filter.fromBlock || storedPrivateEvent.l2BlockNumber >= filter.toBlock) {
97
+ continue;
98
+ }
99
+ // Filter by scopes
100
+ if (storedPrivateEvent.scopes.intersection(targetScopes).size === 0) {
101
+ continue;
102
+ }
103
+ // Filter by txHash
104
+ if (filter.txHash && !storedPrivateEvent.txHash.equals(filter.txHash)) {
105
+ continue;
106
+ }
107
+ events.push({
108
+ l2BlockNumber: storedPrivateEvent.l2BlockNumber,
109
+ txIndexInBlock: storedPrivateEvent.txIndexInBlock,
110
+ eventIndexInTx: storedPrivateEvent.eventIndexInTx,
111
+ event: {
112
+ packedEvent: storedPrivateEvent.msgContent,
113
+ l2BlockNumber: BlockNumber(storedPrivateEvent.l2BlockNumber),
114
+ txHash: storedPrivateEvent.txHash,
115
+ l2BlockHash: storedPrivateEvent.l2BlockHash,
116
+ eventSelector
117
+ }
118
+ });
93
119
  }
94
- events.push({
95
- l2BlockNumber: storedPrivateEvent.l2BlockNumber,
96
- txIndexInBlock: storedPrivateEvent.txIndexInBlock,
97
- eventIndexInTx: storedPrivateEvent.eventIndexInTx,
98
- event: {
99
- packedEvent: storedPrivateEvent.msgContent,
100
- l2BlockNumber: BlockNumber(storedPrivateEvent.l2BlockNumber),
101
- txHash: storedPrivateEvent.txHash,
102
- l2BlockHash: storedPrivateEvent.l2BlockHash,
103
- eventSelector
120
+ // Sort by block number, then by tx index within block, then by event index within tx
121
+ events.sort((a, b)=>{
122
+ if (a.l2BlockNumber !== b.l2BlockNumber) {
123
+ return a.l2BlockNumber - b.l2BlockNumber;
124
+ }
125
+ if (a.txIndexInBlock !== b.txIndexInBlock) {
126
+ return a.txIndexInBlock - b.txIndexInBlock;
104
127
  }
128
+ return a.eventIndexInTx - b.eventIndexInTx;
105
129
  });
106
- }
107
- // Sort by block number, then by tx index within block, then by event index within tx
108
- events.sort((a, b)=>{
109
- if (a.l2BlockNumber !== b.l2BlockNumber) {
110
- return a.l2BlockNumber - b.l2BlockNumber;
111
- }
112
- if (a.txIndexInBlock !== b.txIndexInBlock) {
113
- return a.txIndexInBlock - b.txIndexInBlock;
114
- }
115
- return a.eventIndexInTx - b.eventIndexInTx;
130
+ return events.map((ev)=>ev.event);
116
131
  });
117
- return events.map((ev)=>ev.event);
132
+ }
133
+ /** Returns the ids (siloed event commitments) of all events emitted at the given block number. Used by delete-on-prune. */ async eventIdsAtBlock(blockNumber) {
134
+ const eventIds = [];
135
+ for await (const eventId of this.#eventsByBlockNumber.getValuesAsync(blockNumber)){
136
+ eventIds.push(eventId);
137
+ }
138
+ return eventIds;
118
139
  }
119
140
  /**
120
- * Rolls back private events that were stored after a given `blockNumber` and up to `synchedBlockNumber` (the block
121
- * number up to which PXE managed to sync before the reorg happened).
141
+ * Rolls the store back to `toBlock`: deletes every event anchored to a block strictly above it, as if nothing past
142
+ * that block height ever happened. Used by the reorg (`chain-pruned`) path to truncate the orphaned tail. Scanning
143
+ * from `toBlock + 1` upward covers everything above the rollback target without needing to know the chain tip.
122
144
  *
123
- * We don't need staged writes for a rollback since it's handled in the context of a blockchain rewind.
124
- *
125
- * Rollbacks are handled by the BlockSynchronizer, which runs a DB transaction across stores when it detects a
126
- * re-org, including setting the new anchor block after rolling back.
127
- *
128
- * So if anything fails in the process of rolling back any store, all DB changes occurring during rollbacks will be
129
- * lost and the anchor block will not be updated; which means this code will eventually need to run again
130
- * (i.e.: PXE will detect it's basing it work on an invalid block hash, then which re-triggers rewind).
131
- *
132
- * For further details, refer to `BlockSynchronizer#handleBlockStreamEvent`.
133
- *
134
- * IMPORTANT: This method must be called within a transaction to ensure atomicity.
135
- */ async rollback(blockNumber, synchedBlockNumber) {
145
+ * Must be called inside a transaction owned by the caller (it issues no `transactionAsync` of its own, the reorg
146
+ * path wraps it together with the anchor update, and IndexedDB has no nested transactions). Throws if any job has
147
+ * uncommitted staged writes, since rolling back mid-job could later re-introduce events anchored to deleted blocks.
148
+ */ async rollback(toBlock) {
149
+ if (this.#eventsForJob.size > 0) {
150
+ throw new Error('PXE private event store rollback is not allowed while jobs are running');
151
+ }
152
+ // Snapshot before mutating so we never delete from the multimap we are iterating.
153
+ const orphaned = [];
154
+ for await (const [block, eventId] of this.#eventsByBlockNumber.entriesAsync({
155
+ start: toBlock + 1
156
+ })){
157
+ orphaned.push({
158
+ block,
159
+ eventId
160
+ });
161
+ }
136
162
  let removedCount = 0;
137
- for(let block = blockNumber + 1; block <= synchedBlockNumber; block++){
138
- const eventIds = await toArray(this.#eventsByBlockNumber.getValuesAsync(block));
139
- if (eventIds.length > 0) {
140
- await this.#eventsByBlockNumber.delete(block);
141
- for (const eventId of eventIds){
142
- const buffer = await this.#events.getAsync(eventId);
143
- if (!buffer) {
144
- throw new Error(`Event not found for eventId ${eventId}`);
145
- }
146
- const entry = StoredPrivateEvent.fromBuffer(buffer);
147
- await this.#events.delete(eventId);
148
- await this.#eventsByContractAndEventSelector.deleteValue(this.#keyFor(entry.contractAddress, entry.eventSelector), eventId);
149
- removedCount++;
150
- }
163
+ for (const { block, eventId } of orphaned){
164
+ const buf = await this.#events.getAsync(eventId);
165
+ if (!buf) {
166
+ throw new Error(`Event not found for eventId ${eventId}`);
151
167
  }
168
+ const stored = StoredPrivateEvent.fromBuffer(buf);
169
+ await this.#events.delete(eventId);
170
+ await this.#eventsByContractAndEventSelector.deleteValue(this.#keyFor(stored.contractAddress, stored.eventSelector), eventId);
171
+ await this.#eventsByBlockNumber.deleteValue(block, eventId);
172
+ removedCount++;
152
173
  }
153
- this.logger.verbose(`Rolled back ${removedCount} private events after block ${blockNumber}`);
174
+ this.logger.verbose('rolled back private events', {
175
+ removedCount,
176
+ toBlock
177
+ });
154
178
  }
155
179
  /**
156
180
  * Commits in memory job data to persistent storage.
@@ -161,39 +185,40 @@ import { StoredPrivateEvent } from './stored_private_event.js';
161
185
  * (and using one would throw on IndexedDB as it does not support nested txs).
162
186
  *
163
187
  * @param jobId - The jobId identifying which staged data to commit
164
- */ commit(jobId) {
165
- return this.#withJobLock(jobId, async ()=>{
166
- for (const [eventId, entry] of this.#getEventsForJob(jobId).entries()){
167
- const lookupKey = this.#keyFor(entry.contractAddress, entry.eventSelector);
168
- this.logger.verbose('storing private event log', {
169
- eventId,
170
- lookupKey
171
- });
172
- await Promise.all([
173
- this.#events.set(eventId, entry.toBuffer()),
174
- this.#eventsByContractAndEventSelector.set(lookupKey, eventId),
175
- this.#eventsByBlockNumber.set(entry.l2BlockNumber, eventId)
176
- ]);
177
- }
178
- this.#clearJobData(jobId);
179
- });
188
+ */ async commit(jobId) {
189
+ // Note: Don't use #withJobLock here - commit runs within JobCoordinator's transactionAsync,
190
+ // and awaiting the lock would create a microtask boundary with no pending DB request,
191
+ // causing IndexedDB to auto-commit the transaction.
192
+ for (const [eventId, entry] of this.#getEventsForJob(jobId).entries()){
193
+ const lookupKey = this.#keyFor(entry.contractAddress, entry.eventSelector);
194
+ this.logger.verbose('storing private event log', {
195
+ eventId,
196
+ lookupKey
197
+ });
198
+ await Promise.all([
199
+ this.#events.set(eventId, entry.toBuffer()),
200
+ this.#eventsByContractAndEventSelector.set(lookupKey, eventId),
201
+ this.#eventsByBlockNumber.set(entry.l2BlockNumber, eventId)
202
+ ]);
203
+ }
204
+ this.#clearJobData(jobId);
180
205
  }
181
206
  /**
182
207
  * Discards in memory job data without persisting it.
183
208
  */ discardStaged(jobId) {
184
- return this.#withJobLock(jobId, ()=>Promise.resolve(this.#clearJobData(jobId)));
209
+ this.#clearJobData(jobId);
210
+ return Promise.resolve();
185
211
  }
186
212
  /**
187
213
  * Reads an event from in-memory job data first, falling back to persistent storage if not found.
188
214
  *
189
215
  * Returns undefined if the event does not exist in the store overall.
190
216
  */ async #readEvent(eventId, jobId) {
191
- const eventForJob = this.#getEventsForJob(jobId).get(eventId);
192
- if (eventForJob) {
193
- return eventForJob;
194
- }
217
+ // Always issue DB read to keep IndexedDB transaction alive (they auto-commit when a new micro-task starts and there
218
+ // are no pending read requests). The staged value still takes precedence if it exists.
195
219
  const buffer = await this.#events.getAsync(eventId);
196
- return buffer ? StoredPrivateEvent.fromBuffer(buffer) : undefined;
220
+ const eventForJob = this.#getEventsForJob(jobId).get(eventId);
221
+ return eventForJob ?? (buffer ? StoredPrivateEvent.fromBuffer(buffer) : undefined);
197
222
  }
198
223
  /**
199
224
  * Writes an event to in-memory job data.
@@ -0,0 +1,35 @@
1
+ import type { EthAddress } from '@aztec/foundation/eth-address';
2
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
+ /** The triple that determine which physical store a logical store name maps to. */
4
+ export type StoreIdentity = {
5
+ /** Chain ID of the L1 the rollup is deployed to. */
6
+ l1ChainId: number;
7
+ /** Address of the rollup contract the store's data pertains to. */
8
+ rollupAddress: EthAddress;
9
+ /** Schema version of the data held in the store. */
10
+ schemaVersion: number;
11
+ };
12
+ /**
13
+ * Composes the store-name discriminator for a store identity. Two identities map to the same physical store iff
14
+ * their slugs are equal, so the format must stay stable: `<l1ChainId>-<rollupAddress>-v<schemaVersion>` — changing
15
+ * it orphans every existing store.
16
+ */
17
+ export declare function storeIdentitySlug({ l1ChainId, rollupAddress, schemaVersion }: StoreIdentity): string;
18
+ /** Composes the physical store name for a logical store name and identity. */
19
+ export declare function effectiveStoreName(name: string, identity: StoreIdentity): string;
20
+ /**
21
+ * Invariant check for stores whose physical name carries their identity: the recorded version can
22
+ * only disagree with the expected one if there is a store-naming bug.
23
+ */
24
+ export declare function assertStoreIdentity(store: AztecAsyncKVStore, storeName: string, identity: StoreIdentity): Promise<void>;
25
+ /**
26
+ * Thrown when a store's recorded identity does not match the identity it was opened under. Since the identity is
27
+ * part of the physical store name, this can only indicate a store-naming bug; the store is left untouched.
28
+ */
29
+ export declare class StoreIdentityMismatchError extends Error {
30
+ readonly storeName: string;
31
+ readonly expected: string;
32
+ readonly actual: string;
33
+ constructor(storeName: string, expected: string, actual: string);
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVfaWRlbnRpdHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL3N0b3JlX2lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHekQsbUZBQW1GO0FBQ25GLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsb0RBQW9EO0lBQ3BELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsbUVBQW1FO0lBQ25FLGFBQWEsRUFBRSxVQUFVLENBQUM7SUFDMUIsb0RBQW9EO0lBQ3BELGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDdkIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxFQUFFLGFBQWEsR0FBRyxNQUFNLENBRXBHO0FBRUQsOEVBQThFO0FBQzlFLHdCQUFnQixrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEdBQUcsTUFBTSxDQUVoRjtBQUVEOzs7R0FHRztBQUNILHdCQUFzQixtQkFBbUIsQ0FDdkMsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixTQUFTLEVBQUUsTUFBTSxFQUNqQixRQUFRLEVBQUUsYUFBYSxHQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBaUJmO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsMEJBQTJCLFNBQVEsS0FBSzthQUVqQyxTQUFTLEVBQUUsTUFBTTthQUNqQixRQUFRLEVBQUUsTUFBTTthQUNoQixNQUFNLEVBQUUsTUFBTTtJQUhoQyxZQUNrQixTQUFTLEVBQUUsTUFBTSxFQUNqQixRQUFRLEVBQUUsTUFBTSxFQUNoQixNQUFNLEVBQUUsTUFBTSxFQU8vQjtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store_identity.d.ts","sourceRoot":"","sources":["../../src/storage/store_identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG;IAC1B,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,aAAa,EAAE,UAAU,CAAC;IAC1B,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,aAAa,GAAG,MAAM,CAEpG;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAEhF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;aAEjC,SAAS,EAAE,MAAM;aACjB,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM;IAHhC,YACkB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAO/B;CACF"}
@@ -0,0 +1,44 @@
1
+ import { DatabaseVersion } from '@aztec/stdlib/database-version/version';
2
+ /**
3
+ * Composes the store-name discriminator for a store identity. Two identities map to the same physical store iff
4
+ * their slugs are equal, so the format must stay stable: `<l1ChainId>-<rollupAddress>-v<schemaVersion>` — changing
5
+ * it orphans every existing store.
6
+ */ export function storeIdentitySlug({ l1ChainId, rollupAddress, schemaVersion }) {
7
+ return `${l1ChainId}-${rollupAddress.toString()}-v${schemaVersion}`;
8
+ }
9
+ /** Composes the physical store name for a logical store name and identity. */ export function effectiveStoreName(name, identity) {
10
+ return `${name}_${storeIdentitySlug(identity)}`;
11
+ }
12
+ /**
13
+ * Invariant check for stores whose physical name carries their identity: the recorded version can
14
+ * only disagree with the expected one if there is a store-naming bug.
15
+ */ export async function assertStoreIdentity(store, storeName, identity) {
16
+ const expected = new DatabaseVersion(identity.schemaVersion, identity.rollupAddress);
17
+ const singleton = store.openSingleton('dbVersion');
18
+ const stored = await singleton.getAsync();
19
+ if (stored === undefined) {
20
+ await singleton.set(expected.toBuffer().toString('utf-8'));
21
+ return;
22
+ }
23
+ let storedVersion;
24
+ try {
25
+ storedVersion = DatabaseVersion.fromBuffer(Buffer.from(stored, 'utf-8'));
26
+ } catch {
27
+ throw new StoreIdentityMismatchError(storeName, expected.toString(), stored);
28
+ }
29
+ if (!storedVersion.equals(expected)) {
30
+ throw new StoreIdentityMismatchError(storeName, expected.toString(), storedVersion.toString());
31
+ }
32
+ }
33
+ /**
34
+ * Thrown when a store's recorded identity does not match the identity it was opened under. Since the identity is
35
+ * part of the physical store name, this can only indicate a store-naming bug; the store is left untouched.
36
+ */ export class StoreIdentityMismatchError extends Error {
37
+ storeName;
38
+ expected;
39
+ actual;
40
+ constructor(storeName, expected, actual){
41
+ super(`Store '${storeName}' records identity ${actual} but was opened as ${expected}. ` + `Refusing to open; data was NOT modified.`), this.storeName = storeName, this.expected = expected, this.actual = actual;
42
+ this.name = 'StoreIdentityMismatchError';
43
+ }
44
+ }
@@ -1,4 +1,4 @@
1
1
  export { SenderTaggingStore } from './sender_tagging_store.js';
2
- export { SenderAddressBookStore } from './sender_address_book_store.js';
2
+ export { TaggingSecretSourcesStore } from './tagging_secret_sources_store.js';
3
3
  export { RecipientTaggingStore } from './recipient_tagging_store.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL3RhZ2dpbmdfc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUMifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL3RhZ2dpbmdfc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/tagging_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/tagging_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { SenderTaggingStore } from './sender_tagging_store.js';
2
- export { SenderAddressBookStore } from './sender_address_book_store.js';
2
+ export { TaggingSecretSourcesStore } from './tagging_secret_sources_store.js';
3
3
  export { RecipientTaggingStore } from './recipient_tagging_store.js';
@@ -1,5 +1,5 @@
1
1
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
- import type { DirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
2
+ import type { AppTaggingSecret } from '@aztec/stdlib/logs';
3
3
  import type { StagedStore } from '../../job_coordinator/job_coordinator.js';
4
4
  /**
5
5
  * Data provider of tagging data used when syncing the logs as a recipient. The sender counterpart of this class
@@ -20,9 +20,9 @@ export declare class RecipientTaggingStore implements StagedStore {
20
20
  */
21
21
  commit(jobId: string): Promise<void>;
22
22
  discardStaged(jobId: string): Promise<void>;
23
- getHighestAgedIndex(secret: DirectionalAppTaggingSecret, jobId: string): Promise<number | undefined>;
24
- updateHighestAgedIndex(secret: DirectionalAppTaggingSecret, index: number, jobId: string): Promise<void>;
25
- getHighestFinalizedIndex(secret: DirectionalAppTaggingSecret, jobId: string): Promise<number | undefined>;
26
- updateHighestFinalizedIndex(secret: DirectionalAppTaggingSecret, index: number, jobId: string): Promise<void>;
23
+ getHighestAgedIndex(secret: AppTaggingSecret, jobId: string): Promise<number | undefined>;
24
+ updateHighestAgedIndex(secret: AppTaggingSecret, index: number, jobId: string): Promise<void>;
25
+ getHighestFinalizedIndex(secret: AppTaggingSecret, jobId: string): Promise<number | undefined>;
26
+ updateHighestFinalizedIndex(secret: AppTaggingSecret, index: number, jobId: string): Promise<void>;
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50X3RhZ2dpbmdfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL3RhZ2dpbmdfc3RvcmUvcmVjaXBpZW50X3RhZ2dpbmdfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU1RTs7Ozs7OztHQU9HO0FBQ0gscUJBQWEscUJBQXNCLFlBQVcsV0FBVzs7SUFDdkQsU0FBUyxFQUFFLE1BQU0sQ0FBdUI7SUFheEMsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBUW5DO0lBc0NEOzs7O09BSUc7SUFDRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0J6QztJQUVELGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJMUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVuRztJQUVLLHNCQUFzQixDQUFDLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU83RztJQUVELHdCQUF3QixDQUFDLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRXhHO0lBRUssMkJBQTJCLENBQUMsTUFBTSxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBUWxIO0NBQ0YifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50X3RhZ2dpbmdfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL3RhZ2dpbmdfc3RvcmUvcmVjaXBpZW50X3RhZ2dpbmdfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU1RTs7Ozs7OztHQU9HO0FBQ0gscUJBQWEscUJBQXNCLFlBQVcsV0FBVzs7SUFDdkQsU0FBUyxFQUFFLE1BQU0sQ0FBdUI7SUFheEMsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBUW5DO0lBNENEOzs7O09BSUc7SUFDRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0J6QztJQUVELGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJMUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUV4RjtJQUVELHNCQUFzQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVM1RjtJQUVELHdCQUF3QixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRTdGO0lBRUQsMkJBQTJCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBVWpHO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"recipient_tagging_store.d.ts","sourceRoot":"","sources":["../../../src/storage/tagging_store/recipient_tagging_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAE5E;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,WAAW;;IACvD,SAAS,EAAE,MAAM,CAAuB;IAaxC,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IAsCD;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1C;IAED,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEnG;IAEK,sBAAsB,CAAC,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7G;IAED,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAExG;IAEK,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlH;CACF"}
1
+ {"version":3,"file":"recipient_tagging_store.d.ts","sourceRoot":"","sources":["../../../src/storage/tagging_store/recipient_tagging_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAE5E;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,WAAW;;IACvD,SAAS,EAAE,MAAM,CAAuB;IAaxC,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IA4CD;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1C;IAED,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAExF;IAED,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5F;IAED,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE7F;IAED,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUjG;CACF"}