@aztec/pxe 3.0.0-nightly.20260104 → 3.0.0-nightly.20260106

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 (208) hide show
  1. package/dest/block_synchronizer/block_synchronizer.d.ts +6 -6
  2. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  3. package/dest/block_synchronizer/block_synchronizer.js +11 -11
  4. package/dest/contract_function_simulator/contract_function_simulator.d.ts +22 -22
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  6. package/dest/contract_function_simulator/contract_function_simulator.js +31 -28
  7. package/dest/contract_function_simulator/oracle/private_execution.d.ts +4 -4
  8. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  9. package/dest/contract_function_simulator/oracle/private_execution.js +3 -3
  10. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +17 -13
  11. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  12. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +13 -11
  13. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +19 -19
  14. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  15. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +44 -44
  16. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
  17. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  18. package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
  19. package/dest/debug/pxe_debug_utils.d.ts +6 -6
  20. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  21. package/dest/debug/pxe_debug_utils.js +7 -7
  22. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  23. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  24. package/dest/entrypoints/client/bundle/utils.js +10 -1
  25. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  26. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  27. package/dest/entrypoints/client/lazy/utils.js +10 -1
  28. package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
  29. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  30. package/dest/entrypoints/server/utils.d.ts +1 -1
  31. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  32. package/dest/entrypoints/server/utils.js +11 -7
  33. package/dest/error_enriching.d.ts +4 -4
  34. package/dest/error_enriching.d.ts.map +1 -1
  35. package/dest/error_enriching.js +6 -6
  36. package/dest/events/event_service.d.ts +6 -6
  37. package/dest/events/event_service.d.ts.map +1 -1
  38. package/dest/events/event_service.js +7 -7
  39. package/dest/events/private_event_filter_validator.d.ts +6 -6
  40. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  41. package/dest/events/private_event_filter_validator.js +4 -4
  42. package/dest/logs/log_service.d.ts +12 -12
  43. package/dest/logs/log_service.d.ts.map +1 -1
  44. package/dest/logs/log_service.js +17 -17
  45. package/dest/notes/note_service.d.ts +7 -7
  46. package/dest/notes/note_service.d.ts.map +1 -1
  47. package/dest/notes/note_service.js +14 -14
  48. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +4 -4
  49. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  50. package/dest/private_kernel/private_kernel_oracle_impl.js +7 -7
  51. package/dest/public_storage/public_storage_service.d.ts +4 -4
  52. package/dest/public_storage/public_storage_service.d.ts.map +1 -1
  53. package/dest/public_storage/public_storage_service.js +4 -4
  54. package/dest/pxe.d.ts +10 -10
  55. package/dest/pxe.d.ts.map +1 -1
  56. package/dest/pxe.js +81 -78
  57. package/dest/storage/address_store/address_store.d.ts +11 -0
  58. package/dest/storage/address_store/address_store.d.ts.map +1 -0
  59. package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
  60. package/dest/storage/address_store/index.d.ts +2 -0
  61. package/dest/storage/address_store/index.d.ts.map +1 -0
  62. package/dest/storage/address_store/index.js +1 -0
  63. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
  64. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
  65. package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +1 -1
  66. package/dest/storage/anchor_block_store/index.d.ts +2 -0
  67. package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
  68. package/dest/storage/anchor_block_store/index.js +1 -0
  69. package/dest/storage/{capsule_data_provider/capsule_data_provider.d.ts → capsule_store/capsule_store.d.ts} +2 -2
  70. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
  71. package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +1 -1
  72. package/dest/storage/capsule_store/index.d.ts +2 -0
  73. package/dest/storage/capsule_store/index.d.ts.map +1 -0
  74. package/dest/storage/capsule_store/index.js +1 -0
  75. package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +4 -3
  76. package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
  77. package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +14 -2
  78. package/dest/storage/contract_store/index.d.ts +2 -0
  79. package/dest/storage/contract_store/index.d.ts.map +1 -0
  80. package/dest/storage/contract_store/index.js +1 -0
  81. package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
  82. package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
  83. package/dest/storage/index.d.ts +8 -8
  84. package/dest/storage/index.d.ts.map +1 -1
  85. package/dest/storage/index.js +7 -7
  86. package/dest/storage/note_store/index.d.ts +3 -0
  87. package/dest/storage/note_store/index.d.ts.map +1 -0
  88. package/dest/storage/note_store/index.js +2 -0
  89. package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +7 -7
  90. package/dest/storage/note_store/note_store.d.ts.map +1 -0
  91. package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +6 -6
  92. package/dest/storage/{private_event_data_provider/private_event_data_provider.d.ts → private_event_store/private_event_store.d.ts} +4 -4
  93. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
  94. package/dest/storage/{private_event_data_provider/private_event_data_provider.js → private_event_store/private_event_store.js} +2 -2
  95. package/dest/storage/tagging_store/index.d.ts +4 -0
  96. package/dest/storage/tagging_store/index.d.ts.map +1 -0
  97. package/dest/storage/tagging_store/index.js +3 -0
  98. package/dest/{tagging/recipient_sync/recipient_tagging_data_provider.d.ts → storage/tagging_store/recipient_tagging_store.d.ts} +4 -4
  99. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
  100. package/dest/{tagging/recipient_sync/recipient_tagging_data_provider.js → storage/tagging_store/recipient_tagging_store.js} +3 -3
  101. package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
  102. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
  103. package/dest/storage/{tagging_data_provider/sender_address_book.js → tagging_store/sender_address_book_store.js} +1 -1
  104. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +3 -3
  105. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
  106. package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.js → tagging_store/sender_tagging_store.js} +3 -3
  107. package/dest/tagging/index.d.ts +14 -1
  108. package/dest/tagging/index.d.ts.map +1 -1
  109. package/dest/tagging/index.js +22 -0
  110. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -3
  111. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  112. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +6 -6
  113. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.d.ts +3 -4
  114. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
  115. package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +8 -17
  116. package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
  117. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
  118. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
  119. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
  120. package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +3 -3
  121. package/dest/tree_membership/tree_membership_service.d.ts +4 -4
  122. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -1
  123. package/dest/tree_membership/tree_membership_service.js +5 -5
  124. package/package.json +16 -16
  125. package/src/block_synchronizer/block_synchronizer.ts +10 -10
  126. package/src/contract_function_simulator/contract_function_simulator.ts +49 -48
  127. package/src/contract_function_simulator/oracle/private_execution.ts +4 -4
  128. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +48 -47
  129. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +51 -51
  130. package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
  131. package/src/debug/pxe_debug_utils.ts +6 -6
  132. package/src/entrypoints/client/bundle/utils.ts +7 -1
  133. package/src/entrypoints/client/lazy/utils.ts +7 -2
  134. package/src/entrypoints/pxe_creation_options.ts +2 -1
  135. package/src/entrypoints/server/utils.ts +11 -15
  136. package/src/error_enriching.ts +7 -15
  137. package/src/events/event_service.ts +6 -6
  138. package/src/events/private_event_filter_validator.ts +5 -5
  139. package/src/logs/log_service.ts +16 -16
  140. package/src/notes/note_service.ts +13 -13
  141. package/src/private_kernel/private_kernel_oracle_impl.ts +6 -6
  142. package/src/public_storage/public_storage_service.ts +3 -3
  143. package/src/pxe.ts +100 -101
  144. package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
  145. package/src/storage/address_store/index.ts +1 -0
  146. package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +1 -1
  147. package/src/storage/anchor_block_store/index.ts +1 -0
  148. package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +1 -1
  149. package/src/storage/capsule_store/index.ts +1 -0
  150. package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +22 -2
  151. package/src/storage/contract_store/index.ts +1 -0
  152. package/src/storage/index.ts +7 -7
  153. package/src/storage/note_store/index.ts +2 -0
  154. package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +7 -7
  155. package/src/storage/{private_event_data_provider/private_event_data_provider.ts → private_event_store/private_event_store.ts} +4 -4
  156. package/src/storage/tagging_store/index.ts +3 -0
  157. package/src/{tagging/recipient_sync/recipient_tagging_data_provider.ts → storage/tagging_store/recipient_tagging_store.ts} +3 -3
  158. package/src/storage/{tagging_data_provider/sender_address_book.ts → tagging_store/sender_address_book_store.ts} +1 -1
  159. package/src/storage/{tagging_data_provider/sender_tagging_data_provider.ts → tagging_store/sender_tagging_store.ts} +3 -3
  160. package/src/tagging/index.ts +26 -0
  161. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +7 -7
  162. package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +9 -19
  163. package/src/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.ts +4 -4
  164. package/src/tree_membership/tree_membership_service.ts +4 -4
  165. package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
  166. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
  167. package/dest/storage/address_data_provider/index.d.ts +0 -2
  168. package/dest/storage/address_data_provider/index.d.ts.map +0 -1
  169. package/dest/storage/address_data_provider/index.js +0 -1
  170. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
  171. package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
  172. package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
  173. package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
  174. package/dest/storage/anchor_block_data_provider/index.js +0 -1
  175. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
  176. package/dest/storage/capsule_data_provider/index.d.ts +0 -2
  177. package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
  178. package/dest/storage/capsule_data_provider/index.js +0 -1
  179. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
  180. package/dest/storage/contract_data_provider/index.d.ts +0 -2
  181. package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
  182. package/dest/storage/contract_data_provider/index.js +0 -1
  183. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
  184. package/dest/storage/note_data_provider/index.d.ts +0 -3
  185. package/dest/storage/note_data_provider/index.d.ts.map +0 -1
  186. package/dest/storage/note_data_provider/index.js +0 -2
  187. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
  188. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
  189. package/dest/storage/tagging_data_provider/index.d.ts +0 -4
  190. package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
  191. package/dest/storage/tagging_data_provider/index.js +0 -3
  192. package/dest/storage/tagging_data_provider/sender_address_book.d.ts +0 -14
  193. package/dest/storage/tagging_data_provider/sender_address_book.d.ts.map +0 -1
  194. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
  195. package/dest/tagging/recipient_sync/recipient_tagging_data_provider.d.ts.map +0 -1
  196. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
  197. package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
  198. package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
  199. package/src/storage/address_data_provider/index.ts +0 -1
  200. package/src/storage/anchor_block_data_provider/index.ts +0 -1
  201. package/src/storage/capsule_data_provider/index.ts +0 -1
  202. package/src/storage/contract_data_provider/index.ts +0 -1
  203. package/src/storage/note_data_provider/index.ts +0 -2
  204. package/src/storage/tagging_data_provider/index.ts +0 -3
  205. /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
  206. /package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +0 -0
  207. /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
  208. /package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +0 -0
package/dest/pxe.js CHANGED
@@ -14,21 +14,21 @@ import { inspect } from 'util';
14
14
  import { BlockSynchronizer } from './block_synchronizer/index.js';
15
15
  import { ContractFunctionSimulator, generateSimulatedProvingResult } from './contract_function_simulator/contract_function_simulator.js';
16
16
  import { readCurrentClassId } from './contract_function_simulator/oracle/private_execution.js';
17
- import { ProxiedContractDataProviderFactory } from './contract_function_simulator/proxied_contract_data_source.js';
17
+ import { ProxiedContractStoreFactory } from './contract_function_simulator/proxied_contract_data_source.js';
18
18
  import { PXEDebugUtils } from './debug/pxe_debug_utils.js';
19
19
  import { enrichPublicSimulationError, enrichSimulationError } from './error_enriching.js';
20
20
  import { PrivateEventFilterValidator } from './events/private_event_filter_validator.js';
21
21
  import { PrivateKernelExecutionProver } from './private_kernel/private_kernel_execution_prover.js';
22
22
  import { PrivateKernelOracleImpl } from './private_kernel/private_kernel_oracle_impl.js';
23
- import { AddressDataProvider } from './storage/address_data_provider/address_data_provider.js';
24
- import { AnchorBlockDataProvider } from './storage/anchor_block_data_provider/anchor_block_data_provider.js';
25
- import { CapsuleDataProvider } from './storage/capsule_data_provider/capsule_data_provider.js';
26
- import { ContractDataProvider } from './storage/contract_data_provider/contract_data_provider.js';
27
- import { NoteDataProvider } from './storage/note_data_provider/note_data_provider.js';
28
- import { PrivateEventDataProvider } from './storage/private_event_data_provider/private_event_data_provider.js';
29
- import { SenderAddressBook } from './storage/tagging_data_provider/sender_address_book.js';
30
- import { SenderTaggingDataProvider } from './storage/tagging_data_provider/sender_tagging_data_provider.js';
31
- import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient_tagging_data_provider.js';
23
+ import { AddressStore } from './storage/address_store/address_store.js';
24
+ import { AnchorBlockStore } from './storage/anchor_block_store/anchor_block_store.js';
25
+ import { CapsuleStore } from './storage/capsule_store/capsule_store.js';
26
+ import { ContractStore } from './storage/contract_store/contract_store.js';
27
+ import { NoteStore } from './storage/note_store/note_store.js';
28
+ import { PrivateEventStore } from './storage/private_event_store/private_event_store.js';
29
+ import { RecipientTaggingStore } from './storage/tagging_store/recipient_tagging_store.js';
30
+ import { SenderAddressBookStore } from './storage/tagging_store/sender_address_book_store.js';
31
+ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store.js';
32
32
  /**
33
33
  * Private eXecution Environment (PXE) is a library used by wallets to simulate private phase of transactions and to
34
34
  * manage private state of users.
@@ -36,15 +36,15 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
36
36
  node;
37
37
  blockStateSynchronizer;
38
38
  keyStore;
39
- contractDataProvider;
40
- noteDataProvider;
41
- capsuleDataProvider;
42
- anchorBlockDataProvider;
43
- senderTaggingDataProvider;
44
- senderAddressBook;
45
- recipientTaggingDataProvider;
46
- addressDataProvider;
47
- privateEventDataProvider;
39
+ contractStore;
40
+ noteStore;
41
+ capsuleStore;
42
+ anchorBlockStore;
43
+ senderTaggingStore;
44
+ senderAddressBookStore;
45
+ recipientTaggingStore;
46
+ addressStore;
47
+ privateEventStore;
48
48
  simulator;
49
49
  proverEnabled;
50
50
  proofCreator;
@@ -52,19 +52,19 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
52
52
  log;
53
53
  jobQueue;
54
54
  debug;
55
- constructor(node, blockStateSynchronizer, keyStore, contractDataProvider, noteDataProvider, capsuleDataProvider, anchorBlockDataProvider, senderTaggingDataProvider, senderAddressBook, recipientTaggingDataProvider, addressDataProvider, privateEventDataProvider, simulator, proverEnabled, proofCreator, protocolContractsProvider, log, jobQueue, debug){
55
+ constructor(node, blockStateSynchronizer, keyStore, contractStore, noteStore, capsuleStore, anchorBlockStore, senderTaggingStore, senderAddressBookStore, recipientTaggingStore, addressStore, privateEventStore, simulator, proverEnabled, proofCreator, protocolContractsProvider, log, jobQueue, debug){
56
56
  this.node = node;
57
57
  this.blockStateSynchronizer = blockStateSynchronizer;
58
58
  this.keyStore = keyStore;
59
- this.contractDataProvider = contractDataProvider;
60
- this.noteDataProvider = noteDataProvider;
61
- this.capsuleDataProvider = capsuleDataProvider;
62
- this.anchorBlockDataProvider = anchorBlockDataProvider;
63
- this.senderTaggingDataProvider = senderTaggingDataProvider;
64
- this.senderAddressBook = senderAddressBook;
65
- this.recipientTaggingDataProvider = recipientTaggingDataProvider;
66
- this.addressDataProvider = addressDataProvider;
67
- this.privateEventDataProvider = privateEventDataProvider;
59
+ this.contractStore = contractStore;
60
+ this.noteStore = noteStore;
61
+ this.capsuleStore = capsuleStore;
62
+ this.anchorBlockStore = anchorBlockStore;
63
+ this.senderTaggingStore = senderTaggingStore;
64
+ this.senderAddressBookStore = senderAddressBookStore;
65
+ this.recipientTaggingStore = recipientTaggingStore;
66
+ this.addressStore = addressStore;
67
+ this.privateEventStore = privateEventStore;
68
68
  this.simulator = simulator;
69
69
  this.proverEnabled = proverEnabled;
70
70
  this.proofCreator = proofCreator;
@@ -82,21 +82,21 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
82
82
  */ static async create(node, store, proofCreator, simulator, protocolContractsProvider, config, loggerOrSuffix) {
83
83
  const log = !loggerOrSuffix || typeof loggerOrSuffix === 'string' ? createLogger(loggerOrSuffix ? `pxe:service:${loggerOrSuffix}` : `pxe:service`) : loggerOrSuffix;
84
84
  const proverEnabled = !!config.proverEnabled;
85
- const addressDataProvider = new AddressDataProvider(store);
86
- const privateEventDataProvider = new PrivateEventDataProvider(store);
87
- const contractDataProvider = new ContractDataProvider(store);
88
- const noteDataProvider = await NoteDataProvider.create(store);
89
- const anchorBlockDataProvider = new AnchorBlockDataProvider(store);
90
- const senderTaggingDataProvider = new SenderTaggingDataProvider(store);
91
- const senderAddressBook = new SenderAddressBook(store);
92
- const recipientTaggingDataProvider = new RecipientTaggingDataProvider(store);
93
- const capsuleDataProvider = new CapsuleDataProvider(store);
85
+ const addressStore = new AddressStore(store);
86
+ const privateEventStore = new PrivateEventStore(store);
87
+ const contractStore = new ContractStore(store);
88
+ const noteStore = await NoteStore.create(store);
89
+ const anchorBlockStore = new AnchorBlockStore(store);
90
+ const senderTaggingStore = new SenderTaggingStore(store);
91
+ const senderAddressBookStore = new SenderAddressBookStore(store);
92
+ const recipientTaggingStore = new RecipientTaggingStore(store);
93
+ const capsuleStore = new CapsuleStore(store);
94
94
  const keyStore = new KeyStore(store);
95
95
  const tipsStore = new L2TipsKVStore(store, 'pxe');
96
- const synchronizer = new BlockSynchronizer(node, anchorBlockDataProvider, noteDataProvider, tipsStore, config, loggerOrSuffix);
97
- const debugUtils = new PXEDebugUtils(contractDataProvider, noteDataProvider);
96
+ const synchronizer = new BlockSynchronizer(node, anchorBlockStore, noteStore, tipsStore, config, loggerOrSuffix);
97
+ const debugUtils = new PXEDebugUtils(contractStore, noteStore);
98
98
  const jobQueue = new SerialQueue();
99
- const pxe = new PXE(node, synchronizer, keyStore, contractDataProvider, noteDataProvider, capsuleDataProvider, anchorBlockDataProvider, senderTaggingDataProvider, senderAddressBook, recipientTaggingDataProvider, addressDataProvider, privateEventDataProvider, simulator, proverEnabled, proofCreator, protocolContractsProvider, log, jobQueue, debugUtils);
99
+ const pxe = new PXE(node, synchronizer, keyStore, contractStore, noteStore, capsuleStore, anchorBlockStore, senderTaggingStore, senderAddressBookStore, recipientTaggingStore, addressStore, privateEventStore, simulator, proverEnabled, proofCreator, protocolContractsProvider, log, jobQueue, debugUtils);
100
100
  debugUtils.setPXE(pxe);
101
101
  pxe.jobQueue.start();
102
102
  await pxe.#registerProtocolContracts();
@@ -106,8 +106,8 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
106
106
  }
107
107
  // Internal methods
108
108
  #getSimulatorForTx(overrides) {
109
- const proxyContractDataProvider = ProxiedContractDataProviderFactory.create(this.contractDataProvider, overrides?.contracts);
110
- return new ContractFunctionSimulator(proxyContractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.node, this.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.senderAddressBook, this.capsuleDataProvider, this.privateEventDataProvider, this.simulator);
109
+ const proxyContractStore = ProxiedContractStoreFactory.create(this.contractStore, overrides?.contracts);
110
+ return new ContractFunctionSimulator(proxyContractStore, this.noteStore, this.keyStore, this.addressStore, this.node, this.anchorBlockStore, this.senderTaggingStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, this.simulator);
111
111
  }
112
112
  #contextualizeError(err, ...context) {
113
113
  let contextStr = '';
@@ -138,8 +138,8 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
138
138
  const registered = {};
139
139
  for (const name of protocolContractNames){
140
140
  const { address, contractClass, instance, artifact } = await this.protocolContractsProvider.getProtocolContractArtifact(name);
141
- await this.contractDataProvider.addContractArtifact(contractClass.id, artifact);
142
- await this.contractDataProvider.addContractInstance(instance);
141
+ await this.contractStore.addContractArtifact(contractClass.id, artifact);
142
+ await this.contractStore.addContractInstance(instance);
143
143
  registered[name] = address.toString();
144
144
  }
145
145
  this.log.verbose(`Registered protocol contracts in pxe`, registered);
@@ -159,7 +159,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
159
159
  async #executePrivate(contractFunctionSimulator, txRequest, scopes) {
160
160
  const { origin: contractAddress, functionSelector } = txRequest;
161
161
  try {
162
- const anchorBlockHeader = await this.anchorBlockDataProvider.getBlockHeader();
162
+ const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
163
163
  const result = await contractFunctionSimulator.run(txRequest, contractAddress, functionSelector, undefined, anchorBlockHeader, // The sender for tags is set by contracts, typically by an account
164
164
  // contract entrypoint
165
165
  undefined, scopes);
@@ -167,7 +167,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
167
167
  return result;
168
168
  } catch (err) {
169
169
  if (err instanceof SimulationError) {
170
- await enrichSimulationError(err, this.contractDataProvider, this.log);
170
+ await enrichSimulationError(err, this.contractStore, this.log);
171
171
  }
172
172
  throw err;
173
173
  }
@@ -182,11 +182,11 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
182
182
  * @returns The simulation result containing the outputs of the utility function.
183
183
  */ async #simulateUtility(contractFunctionSimulator, call, authWitnesses, scopes) {
184
184
  try {
185
- const anchorBlockHeader = await this.anchorBlockDataProvider.getBlockHeader();
185
+ const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
186
186
  return contractFunctionSimulator.runUtility(call, authWitnesses ?? [], anchorBlockHeader, scopes);
187
187
  } catch (err) {
188
188
  if (err instanceof SimulationError) {
189
- await enrichSimulationError(err, this.contractDataProvider, this.log);
189
+ await enrichSimulationError(err, this.contractStore, this.log);
190
190
  }
191
191
  throw err;
192
192
  }
@@ -208,7 +208,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
208
208
  } catch (err) {
209
209
  if (err instanceof SimulationError) {
210
210
  try {
211
- await enrichPublicSimulationError(err, this.contractDataProvider, this.log);
211
+ await enrichPublicSimulationError(err, this.contractStore, this.log);
212
212
  } catch (enrichErr) {
213
213
  this.log.error(`Failed to enrich public simulation error: ${enrichErr}`);
214
214
  }
@@ -228,14 +228,14 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
228
228
  * @returns An object that contains the output of the kernel execution, including the ChonkProof if proving is enabled.
229
229
  */ async #prove(txExecutionRequest, proofCreator, privateExecutionResult, config) {
230
230
  const simulationAnchorBlock = privateExecutionResult.getSimulationAnchorBlockNumber();
231
- const kernelOracle = new PrivateKernelOracleImpl(this.contractDataProvider, this.keyStore, this.node, simulationAnchorBlock);
231
+ const kernelOracle = new PrivateKernelOracleImpl(this.contractStore, this.keyStore, this.node, simulationAnchorBlock);
232
232
  const kernelTraceProver = new PrivateKernelExecutionProver(kernelOracle, proofCreator, !this.proverEnabled);
233
233
  this.log.debug(`Executing kernel trace prover (${JSON.stringify(config)})...`);
234
234
  return await kernelTraceProver.proveWithKernels(txExecutionRequest.toTxRequest(), privateExecutionResult, config);
235
235
  }
236
236
  // Public API
237
237
  getContractInstance(address) {
238
- return this.contractDataProvider.getContractInstance(address);
238
+ return this.contractStore.getContractInstance(address);
239
239
  }
240
240
  /**
241
241
  * Returns the contract class metadata given a contract class id.
@@ -251,7 +251,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
251
251
  * during a public deployment. We probably want a nicer and more general API for this, but it'll have to
252
252
  * do for the time being.
253
253
  */ async getContractClassMetadata(id, includeArtifact = false) {
254
- const artifact = await this.contractDataProvider.getContractArtifact(id);
254
+ const artifact = await this.contractStore.getContractArtifact(id);
255
255
  if (!artifact) {
256
256
  this.log.warn(`No artifact found for contract class ${id.toString()} when looking for its metadata`);
257
257
  }
@@ -274,7 +274,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
274
274
  */ async getContractMetadata(address) {
275
275
  let instance;
276
276
  try {
277
- instance = await this.contractDataProvider.getContractInstance(address);
277
+ instance = await this.contractStore.getContractInstance(address);
278
278
  } catch {
279
279
  this.log.warn(`No instance found for contract ${address.toString()} when looking for its metadata`);
280
280
  }
@@ -303,8 +303,8 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
303
303
  this.log.info(`Registered account ${accountCompleteAddress.address.toString()}`);
304
304
  this.log.debug(`Registered account\n ${accountCompleteAddress.toReadableString()}`);
305
305
  }
306
- await this.addressDataProvider.addCompleteAddress(accountCompleteAddress);
307
- await this.noteDataProvider.addScope(accountCompleteAddress.address);
306
+ await this.addressStore.addCompleteAddress(accountCompleteAddress);
307
+ await this.noteStore.addScope(accountCompleteAddress.address);
308
308
  return accountCompleteAddress;
309
309
  }
310
310
  /**
@@ -322,7 +322,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
322
322
  this.log.info(`Sender:\n "${sender.toString()}"\n already registered.`);
323
323
  return sender;
324
324
  }
325
- const wasAdded = await this.senderAddressBook.addSender(sender);
325
+ const wasAdded = await this.senderAddressBookStore.addSender(sender);
326
326
  if (wasAdded) {
327
327
  this.log.info(`Added sender:\n ${sender.toString()}`);
328
328
  } else {
@@ -334,13 +334,13 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
334
334
  * Retrieves senders registered in this PXE.
335
335
  * @returns Senders registered in this PXE.
336
336
  */ getSenders() {
337
- return this.senderAddressBook.getSenders();
337
+ return this.senderAddressBookStore.getSenders();
338
338
  }
339
339
  /**
340
340
  * Removes a sender registered in this PXE.
341
341
  * @param sender - The address of the sender to remove.
342
342
  */ async removeSender(sender) {
343
- const wasRemoved = await this.senderAddressBook.removeSender(sender);
343
+ const wasRemoved = await this.senderAddressBookStore.removeSender(sender);
344
344
  if (wasRemoved) {
345
345
  this.log.info(`Removed sender:\n ${sender.toString()}`);
346
346
  } else {
@@ -352,7 +352,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
352
352
  * @returns An array of the accounts registered on this PXE.
353
353
  */ async getRegisteredAccounts() {
354
354
  // Get complete addresses of both the recipients and the accounts
355
- const completeAddresses = await this.addressDataProvider.getCompleteAddresses();
355
+ const completeAddresses = await this.addressStore.getCompleteAddresses();
356
356
  // Filter out the addresses not corresponding to accounts
357
357
  const accounts = await this.keyStore.getAccounts();
358
358
  return completeAddresses.filter((completeAddress)=>accounts.find((address)=>address.equals(completeAddress.address)));
@@ -363,7 +363,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
363
363
  * @param artifact - The build artifact for the contract class.
364
364
  */ async registerContractClass(artifact) {
365
365
  const { id: contractClassId } = await getContractClassFromArtifact(artifact);
366
- await this.contractDataProvider.addContractArtifact(contractClassId, artifact);
366
+ await this.contractStore.addContractArtifact(contractClassId, artifact);
367
367
  this.log.info(`Added contract class ${artifact.name} with id ${contractClassId}`);
368
368
  }
369
369
  /**
@@ -387,17 +387,17 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
387
387
  if (!computedAddress.equals(instance.address)) {
388
388
  throw new Error('Added a contract in which the address does not match the contract instance.');
389
389
  }
390
- await this.contractDataProvider.addContractArtifact(contractClass.id, artifact);
390
+ await this.contractStore.addContractArtifact(contractClass.id, artifact);
391
391
  const publicFunctionSignatures = artifact.functions.filter((fn)=>fn.functionType === FunctionType.PUBLIC).map((fn)=>decodeFunctionSignature(fn.name, fn.parameters));
392
392
  await this.node.registerContractFunctionSignatures(publicFunctionSignatures);
393
393
  } else {
394
394
  // Otherwise, make sure there is an artifact already registered for that class id
395
- artifact = await this.contractDataProvider.getContractArtifact(instance.currentContractClassId);
395
+ artifact = await this.contractStore.getContractArtifact(instance.currentContractClassId);
396
396
  if (!artifact) {
397
397
  throw new Error(`Artifact not found when registering an instance. Contract class: ${instance.currentContractClassId}.`);
398
398
  }
399
399
  }
400
- await this.contractDataProvider.addContractInstance(instance);
400
+ await this.contractStore.addContractInstance(instance);
401
401
  this.log.info(`Added contract ${artifact.name} at ${instance.address.toString()} with class ${instance.currentContractClassId}`);
402
402
  }
403
403
  /**
@@ -412,22 +412,22 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
412
412
  // We disable concurrently updating contracts to avoid concurrently syncing with the node, or changing a contract's
413
413
  // class while we're simulating it.
414
414
  return this.#putInJobQueue(async ()=>{
415
- const currentInstance = await this.contractDataProvider.getContractInstance(contractAddress);
415
+ const currentInstance = await this.contractStore.getContractInstance(contractAddress);
416
416
  if (!currentInstance) {
417
417
  throw new Error(`Instance not found when updating a contract. Contract address: ${contractAddress}.`);
418
418
  }
419
419
  const contractClass = await getContractClassFromArtifact(artifact);
420
420
  await this.blockStateSynchronizer.sync();
421
- const header = await this.anchorBlockDataProvider.getBlockHeader();
421
+ const header = await this.anchorBlockStore.getBlockHeader();
422
422
  const currentClassId = await readCurrentClassId(contractAddress, currentInstance, this.node, header.globalVariables.blockNumber, header.globalVariables.timestamp);
423
423
  if (!contractClass.id.equals(currentClassId)) {
424
424
  throw new Error('Could not update contract to a class different from the current one.');
425
425
  }
426
- await this.contractDataProvider.addContractArtifact(contractClass.id, artifact);
426
+ await this.contractStore.addContractArtifact(contractClass.id, artifact);
427
427
  const publicFunctionSignatures = artifact.functions.filter((fn)=>fn.functionType === FunctionType.PUBLIC).map((fn)=>decodeFunctionSignature(fn.name, fn.parameters));
428
428
  await this.node.registerContractFunctionSignatures(publicFunctionSignatures);
429
429
  currentInstance.currentContractClassId = contractClass.id;
430
- await this.contractDataProvider.addContractInstance(currentInstance);
430
+ await this.contractStore.addContractInstance(currentInstance);
431
431
  this.log.info(`Updated contract ${artifact.name} at ${contractAddress.toString()} to class ${contractClass.id}`);
432
432
  });
433
433
  }
@@ -435,7 +435,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
435
435
  * Retrieves the addresses of contracts added to this PXE.
436
436
  * @returns An array of contracts addresses registered on this PXE.
437
437
  */ getContracts() {
438
- return this.contractDataProvider.getContractsAddresses();
438
+ return this.contractStore.getContractsAddresses();
439
439
  }
440
440
  /**
441
441
  * Proves the private portion of a simulated transaction, ready to send to the network
@@ -491,7 +491,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
491
491
  if (preTagsUsedInTheTx.length > 0) {
492
492
  // TODO(benesjan): The following is an expensive operation. Figure out a way to avoid it.
493
493
  const txHash = (await txProvingResult.toTx()).txHash;
494
- await this.senderTaggingDataProvider.storePendingIndexes(preTagsUsedInTheTx, txHash);
494
+ await this.senderTaggingStore.storePendingIndexes(preTagsUsedInTheTx, txHash);
495
495
  this.log.debug(`Stored used pre-tags as sender for the tx`, {
496
496
  preTagsUsedInTheTx
497
497
  });
@@ -618,7 +618,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
618
618
  // According to the protocol rules, the nonce generator for the note hashes
619
619
  // can either be the first nullifier in the tx or the protocol nullifier if there are none.
620
620
  const nonceGenerator = privateExecutionResult.firstNullifier.equals(Fr.ZERO) ? await computeProtocolNullifier(await txRequest.toTxRequest().hash()) : privateExecutionResult.firstNullifier;
621
- ({ publicInputs, executionSteps } = await generateSimulatedProvingResult(privateExecutionResult, nonceGenerator, this.contractDataProvider));
621
+ ({ publicInputs, executionSteps } = await generateSimulatedProvingResult(privateExecutionResult, nonceGenerator, this.contractStore));
622
622
  } else {
623
623
  // Kernel logic, plus proving of all private functions and kernels.
624
624
  ({ publicInputs, executionSteps } = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, {
@@ -702,6 +702,7 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
702
702
  const syncTime = syncTimer.ms();
703
703
  const functionTimer = new Timer();
704
704
  const contractFunctionSimulator = this.#getSimulatorForTx();
705
+ await this.contractStore.syncPrivateState(call.to, call.selector, (privateSyncCall)=>this.#simulateUtility(contractFunctionSimulator, privateSyncCall));
705
706
  const executionResult = await this.#simulateUtility(contractFunctionSimulator, call, authwits ?? [], scopes);
706
707
  const functionTime = functionTimer.ms();
707
708
  const totalTime = totalTimer.ms();
@@ -744,13 +745,15 @@ import { RecipientTaggingDataProvider } from './tagging/recipient_sync/recipient
744
745
  * toBlock - The block number to search up to (exclusive). Optional. If provided, it must be > 0.
745
746
  * Defaults to the latest known block to PXE + 1.
746
747
  * @returns - The packed events with block and tx metadata.
747
- */ async getPrivateEvents(eventSelector, filter) {
748
- // We need to manually trigger private state sync to have a guarantee that all the events are available.
749
- const call = await this.contractDataProvider.getFunctionCall('sync_private_state', [], filter.contractAddress);
750
- await this.simulateUtility(call);
751
- const sanitizedFilter = await new PrivateEventFilterValidator(this.anchorBlockDataProvider).validate(filter);
752
- this.log.debug(`Getting private events for ${sanitizedFilter.contractAddress.toString()} from ${sanitizedFilter.fromBlock} to ${sanitizedFilter.toBlock}`);
753
- return this.privateEventDataProvider.getPrivateEvents(eventSelector, sanitizedFilter);
748
+ */ getPrivateEvents(eventSelector, filter) {
749
+ return this.#putInJobQueue(async ()=>{
750
+ await this.blockStateSynchronizer.sync();
751
+ const contractFunctionSimulator = this.#getSimulatorForTx();
752
+ await this.contractStore.syncPrivateState(filter.contractAddress, null, async (privateSyncCall)=>await this.#simulateUtility(contractFunctionSimulator, privateSyncCall));
753
+ const sanitizedFilter = await new PrivateEventFilterValidator(this.anchorBlockStore).validate(filter);
754
+ this.log.debug(`Getting private events for ${sanitizedFilter.contractAddress.toString()} from ${sanitizedFilter.fromBlock} to ${sanitizedFilter.toBlock}`);
755
+ return this.privateEventStore.getPrivateEvents(eventSelector, sanitizedFilter);
756
+ });
754
757
  }
755
758
  /**
756
759
  * Stops the PXE's job queue.
@@ -0,0 +1,11 @@
1
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import { CompleteAddress } from '@aztec/stdlib/contract';
4
+ export declare class AddressStore {
5
+ #private;
6
+ constructor(store: AztecAsyncKVStore);
7
+ addCompleteAddress(completeAddress: CompleteAddress): Promise<boolean>;
8
+ getCompleteAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
9
+ getCompleteAddresses(): Promise<CompleteAddress[]>;
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc19zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvYWRkcmVzc19zdG9yZS9hZGRyZXNzX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFtQixpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQscUJBQWEsWUFBWTs7SUFLdkIsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBS25DO0lBRUQsa0JBQWtCLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBMEJyRTtJQVlELGtCQUFrQixDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsQ0FFOUU7SUFFSyxvQkFBb0IsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FJdkQ7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address_store.d.ts","sourceRoot":"","sources":["../../../src/storage/address_store/address_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,qBAAa,YAAY;;IAKvB,YAAY,KAAK,EAAE,iBAAiB,EAKnC;IAED,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BrE;IAYD,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAE9E;IAEK,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAIvD;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { toArray } from '@aztec/foundation/iterable';
2
2
  import { CompleteAddress } from '@aztec/stdlib/contract';
3
- export class AddressDataProvider {
3
+ export class AddressStore {
4
4
  #store;
5
5
  #completeAddresses;
6
6
  #completeAddressIndex;
@@ -0,0 +1,2 @@
1
+ export { AddressStore } from './address_store.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2FkZHJlc3Nfc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/address_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ export { AddressStore } from './address_store.js';
@@ -0,0 +1,9 @@
1
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
+ import { BlockHeader } from '@aztec/stdlib/tx';
3
+ export declare class AnchorBlockStore {
4
+ #private;
5
+ constructor(store: AztecAsyncKVStore);
6
+ setHeader(header: BlockHeader): Promise<void>;
7
+ getBlockHeader(): Promise<BlockHeader>;
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yX2Jsb2NrX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9hbmNob3JfYmxvY2tfc3RvcmUvYW5jaG9yX2Jsb2NrX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxxQkFBYSxnQkFBZ0I7O0lBSTNCLFlBQVksS0FBSyxFQUFFLGlCQUFpQixFQUduQztJQUVLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFbEQ7SUFFSyxjQUFjLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQU8zQztDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor_block_store.d.ts","sourceRoot":"","sources":["../../../src/storage/anchor_block_store/anchor_block_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,gBAAgB;;IAI3B,YAAY,KAAK,EAAE,iBAAiB,EAGnC;IAEK,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAElD;IAEK,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAO3C;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { BlockHeader } from '@aztec/stdlib/tx';
2
- export class AnchorBlockDataProvider {
2
+ export class AnchorBlockStore {
3
3
  #store;
4
4
  #synchronizedHeader;
5
5
  constructor(store){
@@ -0,0 +1,2 @@
1
+ export { AnchorBlockStore } from './anchor_block_store.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2FuY2hvcl9ibG9ja19zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/anchor_block_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1 @@
1
+ export { AnchorBlockStore } from './anchor_block_store.js';
@@ -2,7 +2,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { type Logger } from '@aztec/foundation/log';
3
3
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
4
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
- export declare class CapsuleDataProvider {
5
+ export declare class CapsuleStore {
6
6
  #private;
7
7
  logger: Logger;
8
8
  constructor(store: AztecAsyncKVStore);
@@ -54,4 +54,4 @@ export declare class CapsuleDataProvider {
54
54
  readCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr): Promise<Fr[][]>;
55
55
  setCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][]): Promise<void>;
56
56
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwc3VsZV9kYXRhX3Byb3ZpZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9jYXBzdWxlX2RhdGFfcHJvdmlkZXIvY2Fwc3VsZV9kYXRhX3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUscUJBQWEsbUJBQW1COztJQU05QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRWYsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBTW5DO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0csWUFBWSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUV4RjtJQUVEOzs7OztPQUtHO0lBQ0csV0FBVyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBVy9FO0lBRUQ7Ozs7T0FJRztJQUNHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUxRTtJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxXQUFXLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBd0J0RztJQUVEOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWdCaEc7SUFFRCxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FzQjdFO0lBRUQsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsaUJBbUIzRTtDQUNGIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwc3VsZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvY2Fwc3VsZV9zdG9yZS9jYXBzdWxlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUscUJBQWEsWUFBWTs7SUFNdkIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUVmLFlBQVksS0FBSyxFQUFFLGlCQUFpQixFQU1uQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNHLFlBQVksQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFeEY7SUFFRDs7Ozs7T0FLRztJQUNHLFdBQVcsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQVcvRTtJQUVEOzs7O09BSUc7SUFDRyxhQUFhLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFMUU7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsV0FBVyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXdCdEc7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsb0JBQW9CLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnQmhHO0lBRUQsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBc0I3RTtJQUVELGVBQWUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLGlCQW1CM0U7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capsule_store.d.ts","sourceRoot":"","sources":["../../../src/storage/capsule_store/capsule_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,qBAAa,YAAY;;IAMvB,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,KAAK,EAAE,iBAAiB,EAMnC;IAED;;;;;;;;;OASG;IACG,YAAY,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;IAED;;;;;OAKG;IACG,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAW/E;IAED;;;;OAIG;IACG,aAAa,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;IAED;;;;;;;;;;OAUG;IACH,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBtG;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhG;IAED,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAsB7E;IAED,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,iBAmB3E;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
- export class CapsuleDataProvider {
3
+ export class CapsuleStore {
4
4
  #store;
5
5
  // Arbitrary data stored by contracts. Key is computed as `${contractAddress}:${key}`
6
6
  #capsules;
@@ -0,0 +1,2 @@
1
+ export { CapsuleStore } from './capsule_store.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2NhcHN1bGVfc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/capsule_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ export { CapsuleStore } from './capsule_store.js';
@@ -6,13 +6,13 @@ import { type ContractArtifact, type FunctionAbi, type FunctionArtifactWithContr
6
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
7
  import { type ContractClass, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
8
8
  /**
9
- * ContractDataProvider serves as a data manager and retriever for Aztec.nr contracts.
9
+ * ContractStore serves as a data manager and retriever for Aztec.nr contracts.
10
10
  * It provides methods to obtain contract addresses, function ABI, bytecode, and membership witnesses
11
11
  * from a given contract address and function selector. The class maintains a cache of ContractTree instances
12
12
  * to efficiently serve the requested data. It interacts with the ContractDatabase and AztecNode to fetch
13
13
  * the required information and facilitate cryptographic proof generation.
14
14
  */
15
- export declare class ContractDataProvider {
15
+ export declare class ContractStore {
16
16
  #private;
17
17
  constructor(store: AztecAsyncKVStore);
18
18
  addContractArtifact(id: Fr, contract: ContractArtifact): Promise<void>;
@@ -62,5 +62,6 @@ export declare class ContractDataProvider {
62
62
  getDebugContractName(contractAddress: AztecAddress): Promise<string | undefined>;
63
63
  getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string>;
64
64
  getFunctionCall(functionName: string, args: any[], to: AztecAddress): Promise<FunctionCall>;
65
+ syncPrivateState(contractAddress: AztecAddress, functionToInvokeAfterSync: FunctionSelector | null, utilityExecutor: (privateSyncCall: FunctionCall) => Promise<any>): Promise<any>;
65
66
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZGF0YV9wcm92aWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvY29udHJhY3RfZGF0YV9wcm92aWRlci9jb250cmFjdF9kYXRhX3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBRWhCLEtBQUssZ0NBQWdDLEVBQ3JDLFlBQVksRUFDWixLQUFLLHFCQUFxQixFQUMxQixnQkFBZ0IsRUFNakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUNMLEtBQUssYUFBYSxFQUNsQixLQUFLLDJCQUEyQixFQUdqQyxNQUFNLHdCQUF3QixDQUFDO0FBSWhDOzs7Ozs7R0FNRztBQUNILHFCQUFhLG9CQUFvQjs7SUFXL0IsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBR25DO0lBSVksbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWtCbEY7SUFFSyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU85RTtJQTRDSyxxQkFBcUIsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FHckQ7SUFFRCw0RUFBNEU7SUFDL0QsbUJBQW1CLENBQUMsZUFBZSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxDQUFDLENBR2hIO0lBRVksbUJBQW1CLENBQUMsZUFBZSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBSTNGO0lBRUQsMEVBQTBFO0lBQzdELGdCQUFnQixDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FHckY7SUFFWSxXQUFXLENBQ3RCLE9BQU8sRUFBRSxZQUFZLEdBQ3BCLE9BQU8sQ0FBQyxDQUFDLDJCQUEyQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsU0FBUyxDQUFDLENBVXZFO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDVSxtQkFBbUIsQ0FDOUIsZUFBZSxFQUFFLFlBQVksRUFDN0IsUUFBUSxFQUFFLGdCQUFnQixHQUN6QixPQUFPLENBQUMsZ0NBQWdDLEdBQUcsU0FBUyxDQUFDLENBSXZEO0lBRVksb0NBQW9DLENBQy9DLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxnQkFBZ0IsR0FDekIsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBVTNDO0lBRVkseUJBQXlCLENBQ3BDLGVBQWUsRUFBRSxZQUFZLEdBQzVCLE9BQU8sQ0FBQyxnQ0FBZ0MsR0FBRyxTQUFTLENBQUMsQ0FJdkQ7SUFFWSxjQUFjLENBQ3pCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxnQkFBZ0IsR0FDekIsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsQ0FHbEM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDVSx3QkFBd0IsQ0FDbkMsZUFBZSxFQUFFLFlBQVksRUFDN0IsUUFBUSxFQUFFLGdCQUFnQixHQUN6QixPQUFPLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDLENBSTVDO0lBRVksOEJBQThCLENBQ3pDLGVBQWUsRUFBRSxZQUFZLEdBQzVCLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUMsQ0FJNUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLDRCQUE0QixDQUN2QyxlQUFlLEVBQUUsRUFBRSxFQUNuQixRQUFRLEVBQUUsZ0JBQWdCLEdBQ3pCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLG9CQUFvQixDQUFDLEdBQUcsU0FBUyxDQUFDLENBR3JFO0lBRVksb0JBQW9CLENBQUMsZUFBZSxFQUFFLFlBQVksK0JBRzlEO0lBRVksb0JBQW9CLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLG1CQUkxRjtJQThCWSxlQUFlLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBdUJ2RztDQUNGIn0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3Rfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2NvbnRyYWN0X3N0b3JlL2NvbnRyYWN0X3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBRWhCLEtBQUssZ0NBQWdDLEVBQ3JDLFlBQVksRUFDWixLQUFLLHFCQUFxQixFQUMxQixnQkFBZ0IsRUFNakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUNMLEtBQUssYUFBYSxFQUNsQixLQUFLLDJCQUEyQixFQUdqQyxNQUFNLHdCQUF3QixDQUFDO0FBSWhDOzs7Ozs7R0FNRztBQUNILHFCQUFhLGFBQWE7O0lBV3hCLFlBQVksS0FBSyxFQUFFLGlCQUFpQixFQUduQztJQUlZLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FrQmxGO0lBRUssbUJBQW1CLENBQUMsUUFBUSxFQUFFLDJCQUEyQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FPOUU7SUE0Q0sscUJBQXFCLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBR3JEO0lBRUQsNEVBQTRFO0lBQy9ELG1CQUFtQixDQUFDLGVBQWUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixHQUFHLFNBQVMsQ0FBQyxDQUdoSDtJQUVZLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQUkzRjtJQUVELDBFQUEwRTtJQUM3RCxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBR3JGO0lBRVksV0FBVyxDQUN0QixPQUFPLEVBQUUsWUFBWSxHQUNwQixPQUFPLENBQUMsQ0FBQywyQkFBMkIsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQVV2RTtJQUVEOzs7Ozs7OztPQVFHO0lBQ1UsbUJBQW1CLENBQzlCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxnQkFBZ0IsR0FDekIsT0FBTyxDQUFDLGdDQUFnQyxHQUFHLFNBQVMsQ0FBQyxDQUl2RDtJQUVZLG9DQUFvQyxDQUMvQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsZ0JBQWdCLEdBQ3pCLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQVUzQztJQUVZLHlCQUF5QixDQUNwQyxlQUFlLEVBQUUsWUFBWSxHQUM1QixPQUFPLENBQUMsZ0NBQWdDLEdBQUcsU0FBUyxDQUFDLENBSXZEO0lBRVksY0FBYyxDQUN6QixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsZ0JBQWdCLEdBQ3pCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBR2xDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ1Usd0JBQXdCLENBQ25DLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxnQkFBZ0IsR0FDekIsT0FBTyxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQyxDQUk1QztJQUVZLDhCQUE4QixDQUN6QyxlQUFlLEVBQUUsWUFBWSxHQUM1QixPQUFPLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDLENBSTVDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDVSw0QkFBNEIsQ0FDdkMsZUFBZSxFQUFFLEVBQUUsRUFDbkIsUUFBUSxFQUFFLGdCQUFnQixHQUN6QixPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUdyRTtJQUVZLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxZQUFZLCtCQUc5RDtJQUVZLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixtQkFJMUY7SUE4QlksZUFBZSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQXVCdkc7SUFHWSxnQkFBZ0IsQ0FDM0IsZUFBZSxFQUFFLFlBQVksRUFDN0IseUJBQXlCLEVBQUUsZ0JBQWdCLEdBQUcsSUFBSSxFQUNsRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBYWpFO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract_store.d.ts","sourceRoot":"","sources":["../../../src/storage/contract_store/contract_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,KAAK,gCAAgC,EACrC,YAAY,EACZ,KAAK,qBAAqB,EAC1B,gBAAgB,EAMjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAGjC,MAAM,wBAAwB,CAAC;AAIhC;;;;;;GAMG;AACH,qBAAa,aAAa;;IAWxB,YAAY,KAAK,EAAE,iBAAiB,EAGnC;IAIY,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlF;IAEK,mBAAmB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;IA4CK,qBAAqB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAGrD;IAED,4EAA4E;IAC/D,mBAAmB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAGhH;IAEY,mBAAmB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAI3F;IAED,0EAA0E;IAC7D,gBAAgB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAGrF;IAEY,WAAW,CACtB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,2BAA2B,GAAG,gBAAgB,CAAC,GAAG,SAAS,CAAC,CAUvE;IAED;;;;;;;;OAQG;IACU,mBAAmB,CAC9B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,gCAAgC,GAAG,SAAS,CAAC,CAIvD;IAEY,oCAAoC,CAC/C,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,gCAAgC,CAAC,CAU3C;IAEY,yBAAyB,CACpC,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,gCAAgC,GAAG,SAAS,CAAC,CAIvD;IAEY,cAAc,CACzB,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAGlC;IAED;;;;;;;;;OASG;IACU,wBAAwB,CACnC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAI5C;IAEY,8BAA8B,CACzC,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAI5C;IAED;;;;;;;;OAQG;IACU,4BAA4B,CACvC,eAAe,EAAE,EAAE,EACnB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,GAAG,SAAS,CAAC,CAGrE;IAEY,oBAAoB,CAAC,eAAe,EAAE,YAAY,+BAG9D;IAEY,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,mBAI1F;IA8BY,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuBvG;IAGY,gBAAgB,CAC3B,eAAe,EAAE,YAAY,EAC7B,yBAAyB,EAAE,gBAAgB,GAAG,IAAI,EAClD,eAAe,EAAE,CAAC,eAAe,EAAE,YAAY,KAAK,OAAO,CAAC,GAAG,CAAC,gBAajE;CACF"}
@@ -1,15 +1,16 @@
1
1
  import { toArray } from '@aztec/foundation/iterable';
2
+ import { isProtocolContract } from '@aztec/protocol-contracts';
2
3
  import { FunctionSelector, FunctionType, contractArtifactFromBuffer, contractArtifactToBuffer, encodeArguments, getFunctionDebugMetadata } from '@aztec/stdlib/abi';
3
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
5
  import { SerializableContractInstance, getContractClassFromArtifact } from '@aztec/stdlib/contract';
5
6
  import { PrivateFunctionsTree } from './private_functions_tree.js';
6
7
  /**
7
- * ContractDataProvider serves as a data manager and retriever for Aztec.nr contracts.
8
+ * ContractStore serves as a data manager and retriever for Aztec.nr contracts.
8
9
  * It provides methods to obtain contract addresses, function ABI, bytecode, and membership witnesses
9
10
  * from a given contract address and function selector. The class maintains a cache of ContractTree instances
10
11
  * to efficiently serve the requested data. It interacts with the ContractDatabase and AztecNode to fetch
11
12
  * the required information and facilitate cryptographic proof generation.
12
- */ export class ContractDataProvider {
13
+ */ export class ContractStore {
13
14
  /** Map from contract class id to private function tree. */ // TODO: Update it to be LRU cache so that it doesn't keep all the data all the time.
14
15
  #privateFunctionTrees = new Map();
15
16
  /** Map from contract address to contract class id */ #contractClassIdMap = new Map();
@@ -221,4 +222,15 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
221
222
  returnTypes: functionDao.returnTypes
222
223
  };
223
224
  }
225
+ // Synchronize target contract data
226
+ async syncPrivateState(contractAddress, functionToInvokeAfterSync, utilityExecutor) {
227
+ // Protocol contracts don't have private state to sync
228
+ if (!isProtocolContract(contractAddress)) {
229
+ const syncPrivateStateFunctionCall = await this.getFunctionCall('sync_private_state', [], contractAddress);
230
+ if (functionToInvokeAfterSync && functionToInvokeAfterSync.equals(syncPrivateStateFunctionCall.selector)) {
231
+ throw new Error('Forbidden `sync_private_state` invocation. `sync_private_state` can only be invoked by PXE, manual execution can lead to inconsistencies.');
232
+ }
233
+ return utilityExecutor(syncPrivateStateFunctionCall);
234
+ }
235
+ }
224
236
  }
@@ -0,0 +1,2 @@
1
+ export { ContractStore } from './contract_store.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2NvbnRyYWN0X3N0b3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/contract_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ export { ContractStore } from './contract_store.js';
@@ -24,4 +24,4 @@ export declare class PrivateFunctionsTree {
24
24
  getFunctionMembershipWitness(selector: FunctionSelector): Promise<MembershipWitness<typeof FUNCTION_TREE_HEIGHT>>;
25
25
  private getTree;
26
26
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mdW5jdGlvbnNfdHJlZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvY29udHJhY3RfZGF0YV9wcm92aWRlci9wcml2YXRlX2Z1bmN0aW9uc190cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQVExRjs7Ozs7R0FLRztBQUNILHFCQUFhLG9CQUFvQjtJQUdYLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO0lBRnJELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBYTtJQUUxQixPQUFPLGVBQXFFO0lBRTVFLE9BQWEsTUFBTSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsaUNBTzdDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDVSw0QkFBNEIsQ0FDdkMsUUFBUSxFQUFFLGdCQUFnQixHQUN6QixPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLENBZXpEO1lBRWEsT0FBTztDQU10QiJ9
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mdW5jdGlvbnNfdHJlZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvY29udHJhY3Rfc3RvcmUvcHJpdmF0ZV9mdW5jdGlvbnNfdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFRMUY7Ozs7O0dBS0c7QUFDSCxxQkFBYSxvQkFBb0I7SUFHWCxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtJQUZyRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQWE7SUFFMUIsT0FBTyxlQUFxRTtJQUU1RSxPQUFhLE1BQU0sQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLGlDQU83QztJQUVEOzs7Ozs7OztPQVFHO0lBQ1UsNEJBQTRCLENBQ3ZDLFFBQVEsRUFBRSxnQkFBZ0IsR0FDekIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sb0JBQW9CLENBQUMsQ0FBQyxDQWV6RDtZQUVhLE9BQU87Q0FNdEIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private_functions_tree.d.ts","sourceRoot":"","sources":["../../../src/storage/contract_store/private_functions_tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAmB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AAQ1F;;;;;GAKG;AACH,qBAAa,oBAAoB;IAGX,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAFrD,OAAO,CAAC,IAAI,CAAC,CAAa;IAE1B,OAAO,eAAqE;IAE5E,OAAa,MAAM,CAAC,QAAQ,EAAE,gBAAgB,iCAO7C;IAED;;;;;;;;OAQG;IACU,4BAA4B,CACvC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAezD;YAEa,OAAO;CAMtB"}