@aztec/pxe 0.0.1-commit.03f7ef2 → 0.0.1-commit.1142ef1

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 (241) hide show
  1. package/dest/block_synchronizer/block_synchronizer.d.ts +8 -8
  2. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  3. package/dest/block_synchronizer/block_synchronizer.js +15 -20
  4. package/dest/config/package_info.js +1 -1
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts +25 -22
  6. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  7. package/dest/contract_function_simulator/contract_function_simulator.js +34 -28
  8. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -2
  9. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  10. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -2
  11. package/dest/contract_function_simulator/oracle/private_execution.d.ts +4 -4
  12. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  13. package/dest/contract_function_simulator/oracle/private_execution.js +4 -5
  14. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +17 -26
  15. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +14 -39
  17. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +20 -19
  18. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +47 -45
  20. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  21. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
  23. package/dest/debug/pxe_debug_utils.d.ts +6 -6
  24. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  25. package/dest/debug/pxe_debug_utils.js +7 -7
  26. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  27. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  28. package/dest/entrypoints/client/bundle/utils.js +10 -1
  29. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  30. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  31. package/dest/entrypoints/client/lazy/utils.js +10 -1
  32. package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
  33. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  34. package/dest/entrypoints/server/utils.d.ts +1 -1
  35. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  36. package/dest/entrypoints/server/utils.js +11 -7
  37. package/dest/error_enriching.d.ts +4 -4
  38. package/dest/error_enriching.d.ts.map +1 -1
  39. package/dest/error_enriching.js +6 -6
  40. package/dest/events/event_service.d.ts +7 -7
  41. package/dest/events/event_service.d.ts.map +1 -1
  42. package/dest/events/event_service.js +8 -8
  43. package/dest/events/private_event_filter_validator.d.ts +6 -6
  44. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  45. package/dest/events/private_event_filter_validator.js +4 -4
  46. package/dest/job_coordinator/job_coordinator.d.ts +74 -0
  47. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
  48. package/dest/job_coordinator/job_coordinator.js +93 -0
  49. package/dest/logs/log_service.d.ts +14 -31
  50. package/dest/logs/log_service.d.ts.map +1 -1
  51. package/dest/logs/log_service.js +61 -180
  52. package/dest/notes/note_service.d.ts +7 -7
  53. package/dest/notes/note_service.d.ts.map +1 -1
  54. package/dest/notes/note_service.js +14 -14
  55. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +2 -2
  56. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  57. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +2 -2
  58. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  59. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  60. package/dest/private_kernel/private_kernel_execution_prover.js +3 -4
  61. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
  62. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  63. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +5 -5
  64. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  65. package/dest/private_kernel/private_kernel_oracle_impl.js +9 -10
  66. package/dest/public_storage/public_storage_service.d.ts +4 -4
  67. package/dest/public_storage/public_storage_service.d.ts.map +1 -1
  68. package/dest/public_storage/public_storage_service.js +4 -4
  69. package/dest/pxe.d.ts +11 -9
  70. package/dest/pxe.d.ts.map +1 -1
  71. package/dest/pxe.js +113 -87
  72. package/dest/storage/address_store/address_store.d.ts +11 -0
  73. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  74. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
  75. package/dest/storage/address_store/index.d.ts +2 -0
  76. package/dest/storage/address_store/index.d.ts.map +1 -0
  77. package/dest/storage/address_store/index.js +1 -0
  78. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
  79. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  80. package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +1 -1
  81. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  82. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  83. package/dest/storage/anchor_block_store/index.js +1 -0
  84. package/dest/storage/{capsule_data_provider/capsule_data_provider.d.ts → capsule_store/capsule_store.d.ts} +2 -2
  85. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  86. package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +1 -1
  87. package/dest/storage/capsule_store/index.d.ts +2 -0
  88. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  89. package/dest/storage/capsule_store/index.js +1 -0
  90. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +4 -3
  91. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  92. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +14 -2
  93. package/dest/storage/contract_store/index.d.ts +2 -0
  94. package/dest/storage/contract_store/index.d.ts.map +1 -0
  95. package/dest/storage/contract_store/index.js +1 -0
  96. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  97. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  98. package/dest/storage/index.d.ts +8 -8
  99. package/dest/storage/index.d.ts.map +1 -1
  100. package/dest/storage/index.js +7 -7
  101. package/dest/storage/note_store/index.d.ts +3 -0
  102. package/dest/storage/note_store/index.d.ts.map +1 -0
  103. package/dest/storage/note_store/index.js +2 -0
  104. package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +7 -7
  105. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  106. package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +6 -6
  107. package/dest/storage/private_event_store/private_event_store.d.ts +56 -0
  108. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  109. package/dest/storage/{private_event_data_provider/private_event_data_provider.js → private_event_store/private_event_store.js} +59 -16
  110. package/dest/storage/tagging_store/index.d.ts +4 -0
  111. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  112. package/dest/storage/tagging_store/index.js +3 -0
  113. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +21 -0
  114. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  115. package/dest/{tagging/recipient_sync/new_recipient_tagging_data_provider.js → storage/tagging_store/recipient_tagging_store.js} +3 -3
  116. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  117. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  118. package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
  119. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +3 -3
  120. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  121. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.js → tagging_store/sender_tagging_store.js} +3 -3
  122. package/dest/tagging/constants.d.ts +2 -2
  123. package/dest/tagging/constants.d.ts.map +1 -1
  124. package/dest/tagging/constants.js +10 -3
  125. package/dest/tagging/index.d.ts +14 -3
  126. package/dest/tagging/index.d.ts.map +1 -1
  127. package/dest/tagging/index.js +13 -2
  128. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -3
  129. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  130. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -7
  131. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.d.ts +3 -4
  132. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  133. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +8 -23
  134. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
  135. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  136. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +2 -2
  137. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
  138. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  139. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +3 -3
  140. package/dest/tree_membership/tree_membership_service.d.ts +4 -4
  141. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -1
  142. package/dest/tree_membership/tree_membership_service.js +5 -5
  143. package/package.json +16 -16
  144. package/src/block_synchronizer/block_synchronizer.ts +14 -19
  145. package/src/config/package_info.ts +1 -1
  146. package/src/contract_function_simulator/contract_function_simulator.ts +57 -48
  147. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +4 -0
  148. package/src/contract_function_simulator/oracle/private_execution.ts +4 -6
  149. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +52 -80
  150. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +53 -49
  151. package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
  152. package/src/debug/pxe_debug_utils.ts +6 -6
  153. package/src/entrypoints/client/bundle/utils.ts +7 -1
  154. package/src/entrypoints/client/lazy/utils.ts +7 -2
  155. package/src/entrypoints/pxe_creation_options.ts +2 -1
  156. package/src/entrypoints/server/utils.ts +11 -15
  157. package/src/error_enriching.ts +7 -15
  158. package/src/events/event_service.ts +8 -6
  159. package/src/events/private_event_filter_validator.ts +5 -5
  160. package/src/job_coordinator/job_coordinator.ts +149 -0
  161. package/src/logs/log_service.ts +92 -254
  162. package/src/notes/note_service.ts +13 -13
  163. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +1 -2
  164. package/src/private_kernel/private_kernel_execution_prover.ts +2 -4
  165. package/src/private_kernel/private_kernel_oracle.ts +2 -1
  166. package/src/private_kernel/private_kernel_oracle_impl.ts +8 -14
  167. package/src/public_storage/public_storage_service.ts +3 -3
  168. package/src/pxe.ts +154 -106
  169. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
  170. package/src/storage/address_store/index.ts +1 -0
  171. package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +1 -1
  172. package/src/storage/anchor_block_store/index.ts +1 -0
  173. package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +1 -1
  174. package/src/storage/capsule_store/index.ts +1 -0
  175. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +22 -2
  176. package/src/storage/contract_store/index.ts +1 -0
  177. package/src/storage/index.ts +7 -7
  178. package/src/storage/note_store/index.ts +2 -0
  179. package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +7 -7
  180. package/src/storage/{private_event_data_provider/private_event_data_provider.ts → private_event_store/private_event_store.ts} +72 -18
  181. package/src/storage/tagging_store/index.ts +3 -0
  182. package/src/{tagging/recipient_sync/new_recipient_tagging_data_provider.ts → storage/tagging_store/recipient_tagging_store.ts} +3 -3
  183. package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
  184. package/src/storage/{tagging_data_provider/sender_tagging_data_provider.ts → tagging_store/sender_tagging_store.ts} +3 -3
  185. package/src/tagging/constants.ts +10 -3
  186. package/src/tagging/index.ts +16 -2
  187. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +11 -8
  188. package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +9 -25
  189. package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +6 -2
  190. package/src/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.ts +4 -4
  191. package/src/tree_membership/tree_membership_service.ts +4 -4
  192. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  193. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  194. package/dest/storage/address_data_provider/index.d.ts +0 -2
  195. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  196. package/dest/storage/address_data_provider/index.js +0 -1
  197. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
  198. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
  199. package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
  200. package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
  201. package/dest/storage/anchor_block_data_provider/index.js +0 -1
  202. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  203. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  204. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  205. package/dest/storage/capsule_data_provider/index.js +0 -1
  206. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  207. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  208. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  209. package/dest/storage/contract_data_provider/index.js +0 -1
  210. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  211. package/dest/storage/note_data_provider/index.d.ts +0 -3
  212. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  213. package/dest/storage/note_data_provider/index.js +0 -2
  214. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  215. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -51
  216. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  217. package/dest/storage/tagging_data_provider/index.d.ts +0 -3
  218. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  219. package/dest/storage/tagging_data_provider/index.js +0 -2
  220. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts +0 -31
  221. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts.map +0 -1
  222. package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.js +0 -65
  223. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
  224. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +0 -21
  225. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +0 -1
  226. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
  227. package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  228. package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
  229. package/dest/tagging/utils.d.ts +0 -18
  230. package/dest/tagging/utils.d.ts.map +0 -1
  231. package/dest/tagging/utils.js +0 -25
  232. package/src/storage/address_data_provider/index.ts +0 -1
  233. package/src/storage/anchor_block_data_provider/index.ts +0 -1
  234. package/src/storage/capsule_data_provider/index.ts +0 -1
  235. package/src/storage/contract_data_provider/index.ts +0 -1
  236. package/src/storage/note_data_provider/index.ts +0 -2
  237. package/src/storage/tagging_data_provider/index.ts +0 -2
  238. package/src/storage/tagging_data_provider/recipient_tagging_data_provider.ts +0 -86
  239. package/src/tagging/utils.ts +0 -32
  240. /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
  241. /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
@@ -3,13 +3,13 @@ import type { EventSelector } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { AztecNode } from '@aztec/stdlib/interfaces/server';
5
5
  import type { TxHash } from '@aztec/stdlib/tx';
6
- import { AnchorBlockDataProvider } from '../storage/anchor_block_data_provider/anchor_block_data_provider.js';
7
- import { PrivateEventDataProvider } from '../storage/private_event_data_provider/private_event_data_provider.js';
6
+ import { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
7
+ import { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
8
8
  export declare class EventService {
9
- private readonly anchorBlockDataProvider;
9
+ private readonly anchorBlockStore;
10
10
  private readonly aztecNode;
11
- private readonly privateEventDataProvider;
12
- constructor(anchorBlockDataProvider: AnchorBlockDataProvider, aztecNode: AztecNode, privateEventDataProvider: PrivateEventDataProvider);
13
- deliverEvent(contractAddress: AztecAddress, selector: EventSelector, content: Fr[], eventCommitment: Fr, txHash: TxHash, scope: AztecAddress): Promise<void>;
11
+ private readonly privateEventStore;
12
+ constructor(anchorBlockStore: AnchorBlockStore, aztecNode: AztecNode, privateEventStore: PrivateEventStore);
13
+ deliverEvent(contractAddress: AztecAddress, selector: EventSelector, randomness: Fr, content: Fr[], eventCommitment: Fr, txHash: TxHash, scope: AztecAddress): Promise<void>;
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfc2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V2ZW50cy9ldmVudF9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRWpILHFCQUFhLFlBQVk7SUFFckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUI7SUFDeEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsd0JBQXdCO0lBSDNDLFlBQ21CLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCxTQUFTLEVBQUUsU0FBUyxFQUNwQix3QkFBd0IsRUFBRSx3QkFBd0IsRUFDakU7SUFFUyxZQUFZLENBQ3ZCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFDYixlQUFlLEVBQUUsRUFBRSxFQUNuQixNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxZQUFZLEdBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FrRGY7Q0FDRiJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfc2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V2ZW50cy9ldmVudF9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTFGLHFCQUFhLFlBQVk7SUFFckIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0I7SUFDakMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCO0lBSHBDLFlBQ21CLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxTQUFTLEVBQUUsU0FBUyxFQUNwQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFDbkQ7SUFFUyxZQUFZLENBQ3ZCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLFVBQVUsRUFBRSxFQUFFLEVBQ2QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUNiLGVBQWUsRUFBRSxFQUFFLEVBQ25CLE1BQU0sRUFBRSxNQUFNLEVBQ2QsS0FBSyxFQUFFLFlBQVksR0FDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1EZjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"event_service.d.ts","sourceRoot":"","sources":["../../src/events/event_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAC;AAC9G,OAAO,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AAEjH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IAH3C,YACmB,uBAAuB,EAAE,uBAAuB,EAChD,SAAS,EAAE,SAAS,EACpB,wBAAwB,EAAE,wBAAwB,EACjE;IAES,YAAY,CACvB,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,EAAE,EAAE,EACb,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAkDf;CACF"}
1
+ {"version":3,"file":"event_service.d.ts","sourceRoot":"","sources":["../../src/events/event_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAE1F,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAHpC,YACmB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,EACnD;IAES,YAAY,CACvB,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,EAAE,EACd,OAAO,EAAE,EAAE,EAAE,EACb,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAmDf;CACF"}
@@ -1,21 +1,21 @@
1
1
  import { siloNullifier } from '@aztec/stdlib/hash';
2
2
  import { MerkleTreeId } from '@aztec/stdlib/trees';
3
3
  export class EventService {
4
- anchorBlockDataProvider;
4
+ anchorBlockStore;
5
5
  aztecNode;
6
- privateEventDataProvider;
7
- constructor(anchorBlockDataProvider, aztecNode, privateEventDataProvider){
8
- this.anchorBlockDataProvider = anchorBlockDataProvider;
6
+ privateEventStore;
7
+ constructor(anchorBlockStore, aztecNode, privateEventStore){
8
+ this.anchorBlockStore = anchorBlockStore;
9
9
  this.aztecNode = aztecNode;
10
- this.privateEventDataProvider = privateEventDataProvider;
10
+ this.privateEventStore = privateEventStore;
11
11
  }
12
- async deliverEvent(contractAddress, selector, content, eventCommitment, txHash, scope) {
12
+ async deliverEvent(contractAddress, selector, randomness, content, eventCommitment, txHash, scope) {
13
13
  // While using 'latest' block number would be fine for private events since they cannot be accessed from Aztec.nr
14
14
  // (and thus we're less concerned about being ahead of the synced block), we use the synced block number to
15
15
  // maintain consistent behavior in the PXE. Additionally, events should never be ahead of the synced block here
16
16
  // since `fetchTaggedLogs` only processes logs up to the synced block.
17
17
  const [syncedBlockHeader, siloedEventCommitment, txEffect] = await Promise.all([
18
- this.anchorBlockDataProvider.getBlockHeader(),
18
+ this.anchorBlockStore.getBlockHeader(),
19
19
  siloNullifier(contractAddress, eventCommitment),
20
20
  this.aztecNode.getTxEffect(txHash)
21
21
  ]);
@@ -36,7 +36,7 @@ export class EventService {
36
36
  if (nullifierIndex === undefined) {
37
37
  throw new Error(`Event commitment ${eventCommitment} (siloed as ${siloedEventCommitment}) is not present on the nullifier tree at block ${syncedBlockNumber} (from tx ${txHash})`);
38
38
  }
39
- return this.privateEventDataProvider.storePrivateEventLog(selector, content, Number(nullifierIndex.data), {
39
+ return this.privateEventStore.storePrivateEventLog(selector, randomness, content, Number(nullifierIndex.data), {
40
40
  contractAddress,
41
41
  scope,
42
42
  txHash,
@@ -1,9 +1,9 @@
1
1
  import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
2
- import { AnchorBlockDataProvider } from '../storage/anchor_block_data_provider/anchor_block_data_provider.js';
3
- import type { PrivateEventDataProviderFilter } from '../storage/private_event_data_provider/private_event_data_provider.js';
2
+ import { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
3
+ import type { PrivateEventStoreFilter } from '../storage/private_event_store/private_event_store.js';
4
4
  export declare class PrivateEventFilterValidator {
5
- private anchorBlockDataProvider;
6
- constructor(anchorBlockDataProvider: AnchorBlockDataProvider);
7
- validate(filter: PrivateEventFilter): Promise<PrivateEventDataProviderFilter>;
5
+ private anchorBlockStore;
6
+ constructor(anchorBlockStore: AnchorBlockStore);
7
+ validate(filter: PrivateEventFilter): Promise<PrivateEventStoreFilter>;
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9maWx0ZXJfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzL3ByaXZhdGVfZXZlbnRfZmlsdGVyX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSWpFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFFNUgscUJBQWEsMkJBQTJCO0lBQzFCLE9BQU8sQ0FBQyx1QkFBdUI7SUFBM0MsWUFBb0IsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUk7SUFFbEUsUUFBUSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FvQ2xGO0NBQ0YifQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9maWx0ZXJfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzL3ByaXZhdGVfZXZlbnRfZmlsdGVyX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSWpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckcscUJBQWEsMkJBQTJCO0lBQzFCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFBcEMsWUFBb0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUk7SUFFcEQsUUFBUSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FvQzNFO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"private_event_filter_validator.d.ts","sourceRoot":"","sources":["../../src/events/private_event_filter_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAC;AAC9G,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uEAAuE,CAAC;AAE5H,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,uBAAuB;IAA3C,YAAoB,uBAAuB,EAAE,uBAAuB,EAAI;IAElE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAoClF;CACF"}
1
+ {"version":3,"file":"private_event_filter_validator.d.ts","sourceRoot":"","sources":["../../src/events/private_event_filter_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAErG,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,gBAAgB;IAApC,YAAoB,gBAAgB,EAAE,gBAAgB,EAAI;IAEpD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAoC3E;CACF"}
@@ -1,9 +1,9 @@
1
1
  import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
2
  import { BlockNumber } from '@aztec/foundation/branded-types';
3
3
  export class PrivateEventFilterValidator {
4
- anchorBlockDataProvider;
5
- constructor(anchorBlockDataProvider){
6
- this.anchorBlockDataProvider = anchorBlockDataProvider;
4
+ anchorBlockStore;
5
+ constructor(anchorBlockStore){
6
+ this.anchorBlockStore = anchorBlockStore;
7
7
  }
8
8
  async validate(filter) {
9
9
  let { fromBlock, toBlock } = filter;
@@ -12,7 +12,7 @@ export class PrivateEventFilterValidator {
12
12
  // We then default to [INITIAL_L2_BLOCK_NUM, latestKnownBlock + 1), ie: by default return events from
13
13
  // the first block to the latest known block.
14
14
  if (!fromBlock || !toBlock) {
15
- const lastKnownBlock = (await this.anchorBlockDataProvider.getBlockHeader()).getBlockNumber();
15
+ const lastKnownBlock = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
16
16
  fromBlock = fromBlock ?? BlockNumber(INITIAL_L2_BLOCK_NUM);
17
17
  toBlock = toBlock ?? BlockNumber(lastKnownBlock + 1);
18
18
  }
@@ -0,0 +1,74 @@
1
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
+ /**
3
+ * Interface that stores must implement to support staged writes.
4
+ */
5
+ export interface StagedStore {
6
+ /** Unique name identifying this store (used for tracking staged stores from JobCoordinator) */
7
+ readonly storeName: string;
8
+ /**
9
+ * Commits staged data to main storage.
10
+ * Should be called within a transaction for atomicity.
11
+ *
12
+ * @param jobId - The job identifier
13
+ */
14
+ commit(jobId: string): Promise<void>;
15
+ /**
16
+ * Discards staged data without committing.
17
+ * Called on abort.
18
+ *
19
+ * @param jobId - The job identifier
20
+ */
21
+ discardStaged(jobId: string): Promise<void>;
22
+ }
23
+ /**
24
+ * JobCoordinator manages job lifecycle and provides crash resilience for PXE operations.
25
+ *
26
+ * It uses a staged writes pattern:
27
+ * 1. When a job begins, a unique job ID is created
28
+ * 2. During the job, all writes go to staging (keyed by job ID)
29
+ * 3. On commit, staging is promoted to main storage
30
+ * 4. On abort, staged data is discarded
31
+ *
32
+ * Note: PXE should only rely on a single JobCoordinator instance, so it can eventually
33
+ * orchestrate concurrent jobs. Right now it doesn't make a difference because we're
34
+ * using a job queue with concurrency=1.
35
+ */
36
+ export declare class JobCoordinator {
37
+ #private;
38
+ private readonly log;
39
+ /** The underlying KV store */
40
+ kvStore: AztecAsyncKVStore;
41
+ constructor(kvStore: AztecAsyncKVStore);
42
+ /**
43
+ * Registers a staged store.
44
+ * Must be called during initialization for all stores that need staging support.
45
+ */
46
+ registerStore(store: StagedStore): void;
47
+ /**
48
+ * Registers multiple staged stores.
49
+ */
50
+ registerStores(stores: StagedStore[]): void;
51
+ /**
52
+ * Begins a new job and returns a job ID for staged writes.
53
+ *
54
+ * @returns Job ID to pass to store operations
55
+ */
56
+ beginJob(): string;
57
+ /**
58
+ * Commits a job by promoting all staged data to main storage.
59
+ *
60
+ * @param jobId - The job ID returned from beginJob
61
+ */
62
+ commitJob(jobId: string): Promise<void>;
63
+ /**
64
+ * Aborts a job by discarding all staged data.
65
+ *
66
+ * @param jobId - The job ID returned from beginJob
67
+ */
68
+ abortJob(jobId: string): Promise<void>;
69
+ /**
70
+ * Checks if there's a job currently in progress.
71
+ */
72
+ hasJobInProgress(): boolean;
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iX2Nvb3JkaW5hdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvam9iX2Nvb3JkaW5hdG9yL2pvYl9jb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFdBQVc7SUFDMUIsK0ZBQStGO0lBQy9GLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBRTNCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJDOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQzdDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gscUJBQWEsY0FBYzs7SUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQXVDO0lBRTNELDhCQUE4QjtJQUM5QixPQUFPLEVBQUUsaUJBQWlCLENBQUM7SUFLM0IsWUFBWSxPQUFPLEVBQUUsaUJBQWlCLEVBRXJDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEtBQUssRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU10QztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBSTFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsSUFBSSxNQUFNLENBYWpCO0lBRUQ7Ozs7T0FJRztJQUNHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FtQjVDO0lBRUQ7Ozs7T0FJRztJQUNHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjM0M7SUFFRDs7T0FFRztJQUNILGdCQUFnQixJQUFJLE9BQU8sQ0FFMUI7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job_coordinator.d.ts","sourceRoot":"","sources":["../../src/job_coordinator/job_coordinator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuC;IAE3D,8BAA8B;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAK3B,YAAY,OAAO,EAAE,iBAAiB,EAErC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAMtC;IAED;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAI1C;IAED;;;;OAIG;IACH,QAAQ,IAAI,MAAM,CAajB;IAED;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB5C;IAED;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc3C;IAED;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAE1B;CACF"}
@@ -0,0 +1,93 @@
1
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ /**
4
+ * JobCoordinator manages job lifecycle and provides crash resilience for PXE operations.
5
+ *
6
+ * It uses a staged writes pattern:
7
+ * 1. When a job begins, a unique job ID is created
8
+ * 2. During the job, all writes go to staging (keyed by job ID)
9
+ * 3. On commit, staging is promoted to main storage
10
+ * 4. On abort, staged data is discarded
11
+ *
12
+ * Note: PXE should only rely on a single JobCoordinator instance, so it can eventually
13
+ * orchestrate concurrent jobs. Right now it doesn't make a difference because we're
14
+ * using a job queue with concurrency=1.
15
+ */ export class JobCoordinator {
16
+ log = createLogger('pxe:job_coordinator');
17
+ /** The underlying KV store */ kvStore;
18
+ #currentJobId;
19
+ #stores = new Map();
20
+ constructor(kvStore){
21
+ this.kvStore = kvStore;
22
+ }
23
+ /**
24
+ * Registers a staged store.
25
+ * Must be called during initialization for all stores that need staging support.
26
+ */ registerStore(store) {
27
+ if (this.#stores.has(store.storeName)) {
28
+ throw new Error(`Store "${store.storeName}" is already registered`);
29
+ }
30
+ this.#stores.set(store.storeName, store);
31
+ this.log.debug(`Registered staged store: ${store.storeName}`);
32
+ }
33
+ /**
34
+ * Registers multiple staged stores.
35
+ */ registerStores(stores) {
36
+ for (const store of stores){
37
+ this.registerStore(store);
38
+ }
39
+ }
40
+ /**
41
+ * Begins a new job and returns a job ID for staged writes.
42
+ *
43
+ * @returns Job ID to pass to store operations
44
+ */ beginJob() {
45
+ if (this.#currentJobId) {
46
+ throw new Error(`Cannot begin job: job ${this.#currentJobId} is already in progress. ` + `This should not happen - ensure jobs are properly committed or aborted.`);
47
+ }
48
+ const jobId = randomBytes(8).toString('hex');
49
+ this.#currentJobId = jobId;
50
+ this.log.debug(`Started job ${jobId}`);
51
+ return jobId;
52
+ }
53
+ /**
54
+ * Commits a job by promoting all staged data to main storage.
55
+ *
56
+ * @param jobId - The job ID returned from beginJob
57
+ */ async commitJob(jobId) {
58
+ if (!this.#currentJobId || this.#currentJobId !== jobId) {
59
+ throw new Error(`Cannot commit job ${jobId}: no matching job in progress. ` + `Current job: ${this.#currentJobId ?? 'none'}`);
60
+ }
61
+ this.log.debug(`Committing job ${jobId}`);
62
+ // Commit all stores atomically in a single transaction.
63
+ // Each store's commit is a no-op if it has no staged data (but that's up to each store to handle).
64
+ await this.kvStore.transactionAsync(async ()=>{
65
+ for (const store of this.#stores.values()){
66
+ await store.commit(jobId);
67
+ }
68
+ });
69
+ this.#currentJobId = undefined;
70
+ this.log.debug(`Job ${jobId} committed successfully`);
71
+ }
72
+ /**
73
+ * Aborts a job by discarding all staged data.
74
+ *
75
+ * @param jobId - The job ID returned from beginJob
76
+ */ async abortJob(jobId) {
77
+ if (!this.#currentJobId || this.#currentJobId !== jobId) {
78
+ // Job may have already been aborted or never started properly
79
+ this.log.warn(`Abort called for job ${jobId} but current job is ${this.#currentJobId ?? 'none'}`);
80
+ }
81
+ this.log.debug(`Aborting job ${jobId}`);
82
+ for (const store of this.#stores.values()){
83
+ await store.discardStaged(jobId);
84
+ }
85
+ this.#currentJobId = undefined;
86
+ this.log.debug(`Job ${jobId} aborted`);
87
+ }
88
+ /**
89
+ * Checks if there's a job currently in progress.
90
+ */ hasJobInProgress() {
91
+ return this.#currentJobId !== undefined;
92
+ }
93
+ }
@@ -1,43 +1,26 @@
1
1
  import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { KeyStore } from '@aztec/key-store';
3
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { AztecNode } from '@aztec/stdlib/interfaces/server';
5
- import { DirectionalAppTaggingSecret, PrivateLogWithTxData, PublicLogWithTxData, SiloedTag, Tag } from '@aztec/stdlib/logs';
6
5
  import type { LogRetrievalRequest } from '../contract_function_simulator/noir-structs/log_retrieval_request.js';
7
6
  import { LogRetrievalResponse } from '../contract_function_simulator/noir-structs/log_retrieval_response.js';
8
- import { AddressDataProvider } from '../storage/address_data_provider/address_data_provider.js';
9
- import { AnchorBlockDataProvider } from '../storage/anchor_block_data_provider/anchor_block_data_provider.js';
10
- import { CapsuleDataProvider } from '../storage/capsule_data_provider/capsule_data_provider.js';
11
- import { RecipientTaggingDataProvider } from '../storage/tagging_data_provider/recipient_tagging_data_provider.js';
7
+ import { AddressStore } from '../storage/address_store/address_store.js';
8
+ import { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
9
+ import { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
10
+ import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
11
+ import type { SenderAddressBookStore } from '../storage/tagging_store/sender_address_book_store.js';
12
12
  export declare class LogService {
13
13
  #private;
14
14
  private readonly aztecNode;
15
- private readonly anchorBlockDataProvider;
15
+ private readonly anchorBlockStore;
16
16
  private readonly keyStore;
17
- private readonly capsuleDataProvider;
18
- private readonly recipientTaggingDataProvider;
19
- private readonly addressDataProvider;
20
- constructor(aztecNode: AztecNode, anchorBlockDataProvider: AnchorBlockDataProvider, keyStore: KeyStore, capsuleDataProvider: CapsuleDataProvider, recipientTaggingDataProvider: RecipientTaggingDataProvider, addressDataProvider: AddressDataProvider);
17
+ private readonly capsuleStore;
18
+ private readonly recipientTaggingStore;
19
+ private readonly senderAddressBookStore;
20
+ private readonly addressStore;
21
+ private log;
22
+ constructor(aztecNode: AztecNode, anchorBlockStore: AnchorBlockStore, keyStore: KeyStore, capsuleStore: CapsuleStore, recipientTaggingStore: RecipientTaggingStore, senderAddressBookStore: SenderAddressBookStore, addressStore: AddressStore);
21
23
  bulkRetrieveLogs(logRetrievalRequests: LogRetrievalRequest[]): Promise<(LogRetrievalResponse | null)[]>;
22
- getPublicLogByTag(tag: Tag, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
23
- getPrivateLogByTag(siloedTag: SiloedTag): Promise<PrivateLogWithTxData | null>;
24
24
  syncTaggedLogs(contractAddress: AztecAddress, pendingTaggedLogArrayBaseSlot: Fr, scopes?: AztecAddress[]): Promise<void>;
25
- /**
26
- * Returns the last used tagging indexes along with the directional app tagging secrets for a given recipient and all
27
- * the senders in the address book.
28
- * This method should be exposed as an oracle call to allow aztec.nr to perform the orchestration
29
- * of the syncTaggedLogs and processTaggedLogs methods. However, it is not possible to do so at the moment,
30
- * so we're keeping it private for now.
31
- * @param contractAddress - The contract address to silo the secret for
32
- * @param recipient - The address receiving the notes
33
- * @returns A list of directional app tagging secrets along with the last used tagging indexes. If the corresponding
34
- * secret was never used, the index is undefined.
35
- * TODO(#17775): The naming here is broken as the function name does not reflect the return type. Make sure this gets
36
- * fixed when implementing the linked issue.
37
- */
38
- protected getLastUsedTaggingIndexesForSenders(contractAddress: AztecAddress, recipient: AztecAddress): Promise<{
39
- secret: DirectionalAppTaggingSecret;
40
- index: number | undefined;
41
- }[]>;
42
25
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2xvZ19zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFDTCwyQkFBMkIsRUFFM0Isb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixTQUFTLEVBQ1QsR0FBRyxFQUVKLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUluSCxxQkFBYSxVQUFVOztJQUVuQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUI7SUFDeEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CO0lBQ3BDLE9BQU8sQ0FBQyxRQUFRLENBQUMsNEJBQTRCO0lBQzdDLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CO0lBTnRDLFlBQ21CLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCxRQUFRLEVBQUUsUUFBUSxFQUNsQixtQkFBbUIsRUFBRSxtQkFBbUIsRUFDeEMsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQzFELG1CQUFtQixFQUFFLG1CQUFtQixFQUN2RDtJQUVTLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQWtDbkg7SUFHWSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxDQTZCM0c7SUFHWSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsQ0E2QjFGO0lBS1ksY0FBYyxDQUN6QixlQUFlLEVBQUUsWUFBWSxFQUM3Qiw2QkFBNkIsRUFBRSxFQUFFLEVBQ2pDLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxpQkFvSXhCO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsVUFBZ0IsbUNBQW1DLENBQ2pELGVBQWUsRUFBRSxZQUFZLEVBQzdCLFNBQVMsRUFBRSxZQUFZLEdBQ3RCLE9BQU8sQ0FBQztRQUFFLE1BQU0sRUFBRSwyQkFBMkIsQ0FBQztRQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFBO0tBQUUsRUFBRSxDQUFDLENBOEIvRTtDQTJDRiJ9
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2xvZ19zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBR3BHLHFCQUFhLFVBQVU7O0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtJQUNqQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7SUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCO0lBQ3RDLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCO0lBQ3ZDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtJQVQvQixPQUFPLENBQUMsR0FBRyxDQUErQjtJQUUxQyxZQUNtQixTQUFTLEVBQUUsU0FBUyxFQUNwQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsUUFBUSxFQUFFLFFBQVEsRUFDbEIsWUFBWSxFQUFFLFlBQVksRUFDMUIscUJBQXFCLEVBQUUscUJBQXFCLEVBQzVDLHNCQUFzQixFQUFFLHNCQUFzQixFQUM5QyxZQUFZLEVBQUUsWUFBWSxFQUN6QztJQUVTLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQWlCbkg7SUFnRFksY0FBYyxDQUN6QixlQUFlLEVBQUUsWUFBWSxFQUM3Qiw2QkFBNkIsRUFBRSxFQUFFLEVBQ2pDLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxpQkF1Q3hCO0NBZ0VGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"log_service.d.ts","sourceRoot":"","sources":["../../src/logs/log_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,2BAA2B,EAE3B,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,GAAG,EAEJ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sEAAsE,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAChG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,MAAM,qEAAqE,CAAC;AAInH,qBAAa,UAAU;;IAEnB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAC7C,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IANtC,YACmB,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,uBAAuB,EAChD,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,mBAAmB,EACxC,4BAA4B,EAAE,4BAA4B,EAC1D,mBAAmB,EAAE,mBAAmB,EACvD;IAES,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,CAkCnH;IAGY,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA6B3G;IAGY,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA6B1F;IAKY,cAAc,CACzB,eAAe,EAAE,YAAY,EAC7B,6BAA6B,EAAE,EAAE,EACjC,MAAM,CAAC,EAAE,YAAY,EAAE,iBAoIxB;IAED;;;;;;;;;;;;OAYG;IACH,UAAgB,mCAAmC,CACjD,eAAe,EAAE,YAAY,EAC7B,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC;QAAE,MAAM,EAAE,2BAA2B,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC,CA8B/E;CA2CF"}
1
+ {"version":3,"file":"log_service.d.ts","sourceRoot":"","sources":["../../src/logs/log_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sEAAsE,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAGpG,qBAAa,UAAU;;IAInB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAT/B,OAAO,CAAC,GAAG,CAA+B;IAE1C,YACmB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,YAAY,EACzC;IAES,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,CAiBnH;IAgDY,cAAc,CACzB,eAAe,EAAE,YAAY,EAC7B,6BAA6B,EAAE,EAAE,EACjC,MAAM,CAAC,EAAE,YAAY,EAAE,iBAuCxB;CAgEF"}