@aztec/pxe 0.0.1-commit.54489865 → 0.0.1-commit.5914bae

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 (249) hide show
  1. package/dest/bin/check_oracle_version.js +4 -4
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +4 -2
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  4. package/dest/block_synchronizer/block_synchronizer.js +13 -1
  5. package/dest/config/package_info.js +1 -1
  6. package/dest/contract_function_simulator/contract_function_simulator.d.ts +63 -31
  7. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  8. package/dest/contract_function_simulator/contract_function_simulator.js +203 -72
  9. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  10. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  11. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  12. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -7
  13. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -11
  15. package/dest/contract_function_simulator/index.d.ts +2 -1
  16. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/index.js +1 -0
  18. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -6
  19. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +8 -10
  21. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +1 -1
  22. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +1 -1
  23. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  24. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -4
  26. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +4 -7
  27. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +6 -11
  29. package/dest/contract_function_simulator/oracle/interfaces.d.ts +61 -45
  30. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +9 -0
  32. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -0
  33. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +47 -0
  34. package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -44
  35. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/oracle/oracle.js +305 -108
  37. package/dest/contract_function_simulator/oracle/private_execution.js +5 -3
  38. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +53 -79
  39. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +110 -87
  41. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +126 -67
  42. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  43. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +328 -140
  44. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  45. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/pick_notes.js +14 -3
  47. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  48. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  49. package/dest/contract_function_simulator/proxied_contract_data_source.js +3 -0
  50. package/dest/contract_logging.d.ts +27 -0
  51. package/dest/contract_logging.d.ts.map +1 -0
  52. package/dest/contract_logging.js +38 -0
  53. package/dest/contract_sync/contract_sync_service.d.ts +44 -0
  54. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  55. package/dest/contract_sync/contract_sync_service.js +116 -0
  56. package/dest/contract_sync/helpers.d.ts +28 -0
  57. package/dest/contract_sync/helpers.d.ts.map +1 -0
  58. package/dest/contract_sync/{index.js → helpers.js} +19 -13
  59. package/dest/debug/pxe_debug_utils.d.ts +14 -10
  60. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  61. package/dest/debug/pxe_debug_utils.js +16 -15
  62. package/dest/entrypoints/client/bundle/index.d.ts +3 -1
  63. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  64. package/dest/entrypoints/client/bundle/index.js +2 -0
  65. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  66. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  67. package/dest/entrypoints/client/bundle/utils.js +13 -4
  68. package/dest/entrypoints/client/lazy/index.d.ts +3 -1
  69. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  70. package/dest/entrypoints/client/lazy/index.js +2 -0
  71. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  72. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  73. package/dest/entrypoints/client/lazy/utils.js +13 -4
  74. package/dest/entrypoints/pxe_creation_options.d.ts +3 -1
  75. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  76. package/dest/entrypoints/pxe_creation_options.js +3 -1
  77. package/dest/entrypoints/server/index.d.ts +4 -3
  78. package/dest/entrypoints/server/index.d.ts.map +1 -1
  79. package/dest/entrypoints/server/index.js +3 -2
  80. package/dest/entrypoints/server/utils.d.ts +2 -2
  81. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  82. package/dest/entrypoints/server/utils.js +11 -3
  83. package/dest/events/event_service.d.ts +5 -5
  84. package/dest/events/event_service.d.ts.map +1 -1
  85. package/dest/events/event_service.js +20 -9
  86. package/dest/events/private_event_filter_validator.d.ts +3 -2
  87. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  88. package/dest/events/private_event_filter_validator.js +15 -0
  89. package/dest/logs/log_service.d.ts +9 -9
  90. package/dest/logs/log_service.d.ts.map +1 -1
  91. package/dest/logs/log_service.js +40 -60
  92. package/dest/messages/message_context_service.d.ts +17 -0
  93. package/dest/messages/message_context_service.d.ts.map +1 -0
  94. package/dest/messages/message_context_service.js +36 -0
  95. package/dest/notes/note_service.d.ts +7 -8
  96. package/dest/notes/note_service.d.ts.map +1 -1
  97. package/dest/notes/note_service.js +23 -14
  98. package/dest/notes_filter.d.ts +24 -0
  99. package/dest/notes_filter.d.ts.map +1 -0
  100. package/dest/notes_filter.js +4 -0
  101. package/dest/oracle_version.d.ts +4 -3
  102. package/dest/oracle_version.d.ts.map +1 -1
  103. package/dest/oracle_version.js +20 -10
  104. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  105. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  106. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  107. package/dest/private_kernel/hints/index.d.ts +1 -1
  108. package/dest/private_kernel/hints/index.js +1 -1
  109. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  110. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  111. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +129 -68
  112. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  113. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  114. package/dest/private_kernel/hints/test_utils.js +203 -0
  115. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  116. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  117. package/dest/private_kernel/private_kernel_execution_prover.js +18 -13
  118. package/dest/private_kernel/private_kernel_oracle.d.ts +6 -2
  119. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  120. package/dest/private_kernel/private_kernel_oracle.js +7 -3
  121. package/dest/pxe.d.ts +72 -23
  122. package/dest/pxe.d.ts.map +1 -1
  123. package/dest/pxe.js +126 -71
  124. package/dest/storage/address_store/address_store.d.ts +1 -1
  125. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  126. package/dest/storage/address_store/address_store.js +12 -11
  127. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
  128. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  129. package/dest/storage/anchor_block_store/anchor_block_store.js +9 -2
  130. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  131. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  132. package/dest/storage/capsule_store/capsule_service.js +50 -0
  133. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  134. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  135. package/dest/storage/capsule_store/capsule_store.js +42 -36
  136. package/dest/storage/capsule_store/index.d.ts +2 -1
  137. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  138. package/dest/storage/capsule_store/index.js +1 -0
  139. package/dest/storage/contract_store/contract_store.d.ts +42 -15
  140. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  141. package/dest/storage/contract_store/contract_store.js +160 -73
  142. package/dest/storage/metadata.d.ts +1 -1
  143. package/dest/storage/metadata.js +1 -1
  144. package/dest/storage/note_store/note_store.d.ts +13 -3
  145. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  146. package/dest/storage/note_store/note_store.js +173 -131
  147. package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
  148. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  149. package/dest/storage/private_event_store/private_event_store.js +126 -101
  150. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  151. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  152. package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
  153. package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
  154. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
  155. package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
  156. package/dest/storage/tagging_store/sender_tagging_store.d.ts +29 -28
  157. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  158. package/dest/storage/tagging_store/sender_tagging_store.js +233 -137
  159. package/dest/tagging/get_all_logs_by_tags.d.ts +1 -1
  160. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  161. package/dest/tagging/get_all_logs_by_tags.js +17 -3
  162. package/dest/tagging/index.d.ts +3 -3
  163. package/dest/tagging/index.d.ts.map +1 -1
  164. package/dest/tagging/index.js +1 -1
  165. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +4 -5
  166. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  167. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -21
  168. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  169. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +6 -7
  170. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  171. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +12 -11
  172. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -8
  173. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  174. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +13 -7
  175. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +4 -3
  176. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  177. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +20 -10
  178. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +5 -7
  179. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  180. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +36 -24
  181. package/package.json +25 -16
  182. package/src/bin/check_oracle_version.ts +4 -4
  183. package/src/block_synchronizer/block_synchronizer.ts +12 -0
  184. package/src/config/package_info.ts +1 -1
  185. package/src/contract_function_simulator/contract_function_simulator.ts +363 -135
  186. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  187. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -14
  188. package/src/contract_function_simulator/index.ts +1 -0
  189. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +9 -9
  190. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  191. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -5
  192. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +4 -10
  193. package/src/contract_function_simulator/oracle/interfaces.ts +88 -60
  194. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +104 -0
  195. package/src/contract_function_simulator/oracle/oracle.ts +385 -144
  196. package/src/contract_function_simulator/oracle/private_execution.ts +4 -4
  197. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +136 -184
  198. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +543 -171
  199. package/src/contract_function_simulator/pick_notes.ts +14 -3
  200. package/src/contract_function_simulator/proxied_contract_data_source.ts +8 -1
  201. package/src/contract_logging.ts +52 -0
  202. package/src/contract_sync/contract_sync_service.ts +176 -0
  203. package/src/contract_sync/{index.ts → helpers.ts} +22 -22
  204. package/src/debug/pxe_debug_utils.ts +48 -18
  205. package/src/entrypoints/client/bundle/index.ts +2 -0
  206. package/src/entrypoints/client/bundle/utils.ts +14 -5
  207. package/src/entrypoints/client/lazy/index.ts +2 -0
  208. package/src/entrypoints/client/lazy/utils.ts +14 -5
  209. package/src/entrypoints/pxe_creation_options.ts +7 -0
  210. package/src/entrypoints/server/index.ts +3 -2
  211. package/src/entrypoints/server/utils.ts +9 -10
  212. package/src/events/event_service.ts +21 -10
  213. package/src/events/private_event_filter_validator.ts +21 -1
  214. package/src/logs/log_service.ts +71 -102
  215. package/src/messages/message_context_service.ts +44 -0
  216. package/src/notes/note_service.ts +24 -15
  217. package/src/notes_filter.ts +24 -0
  218. package/src/oracle_version.ts +20 -10
  219. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  220. package/src/private_kernel/hints/index.ts +1 -1
  221. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +164 -117
  222. package/src/private_kernel/hints/test_utils.ts +325 -0
  223. package/src/private_kernel/private_kernel_execution_prover.ts +18 -16
  224. package/src/private_kernel/private_kernel_oracle.ts +7 -7
  225. package/src/pxe.ts +233 -122
  226. package/src/storage/address_store/address_store.ts +15 -15
  227. package/src/storage/anchor_block_store/anchor_block_store.ts +9 -1
  228. package/src/storage/capsule_store/capsule_service.ts +90 -0
  229. package/src/storage/capsule_store/capsule_store.ts +52 -34
  230. package/src/storage/capsule_store/index.ts +1 -0
  231. package/src/storage/contract_store/contract_store.ts +193 -81
  232. package/src/storage/metadata.ts +1 -1
  233. package/src/storage/note_store/note_store.ts +192 -153
  234. package/src/storage/private_event_store/private_event_store.ts +151 -128
  235. package/src/storage/tagging_store/recipient_tagging_store.ts +38 -24
  236. package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
  237. package/src/storage/tagging_store/sender_tagging_store.ts +287 -156
  238. package/src/tagging/get_all_logs_by_tags.ts +28 -4
  239. package/src/tagging/index.ts +2 -2
  240. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +9 -24
  241. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  242. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +10 -15
  243. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +23 -10
  244. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +26 -11
  245. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +27 -26
  246. package/dest/contract_sync/index.d.ts +0 -23
  247. package/dest/contract_sync/index.d.ts.map +0 -1
  248. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  249. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
@@ -1,8 +1,53 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
1
2
  import { toArray } from '@aztec/foundation/iterable';
2
- import { FunctionSelector, FunctionType, contractArtifactFromBuffer, contractArtifactToBuffer, encodeArguments, getFunctionDebugMetadata } from '@aztec/stdlib/abi';
3
+ import { BufferReader, numToUInt8, serializeToBuffer } from '@aztec/foundation/serialize';
4
+ import { FunctionCall, FunctionSelector, FunctionType, contractArtifactFromBuffer, contractArtifactToBuffer, encodeArguments, getFunctionDebugMetadata } from '@aztec/stdlib/abi';
3
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
6
  import { SerializableContractInstance, getContractClassFromArtifact } from '@aztec/stdlib/contract';
5
7
  import { PrivateFunctionsTree } from './private_functions_tree.js';
8
+ const VERSION = 1;
9
+ /**
10
+ * All contract class data except the large packedBytecode.
11
+ * The expensive data from the ContractClass is precomputed and stored in this format to avoid redundant hashing.
12
+ * Since we have to store the artifacts anyway, the final ContractClass is reconstructed by combining this data
13
+ * with the packedBytecode obtained from the former. That way we can have quick class lookups without wasted storage.
14
+ */ export class SerializableContractClassData {
15
+ version = VERSION;
16
+ id;
17
+ artifactHash;
18
+ privateFunctionsRoot;
19
+ publicBytecodeCommitment;
20
+ privateFunctions;
21
+ constructor(data){
22
+ this.id = data.id;
23
+ this.artifactHash = data.artifactHash;
24
+ this.privateFunctionsRoot = data.privateFunctionsRoot;
25
+ this.publicBytecodeCommitment = data.publicBytecodeCommitment;
26
+ this.privateFunctions = data.privateFunctions;
27
+ }
28
+ toBuffer() {
29
+ return serializeToBuffer(numToUInt8(this.version), this.id, this.artifactHash, this.privateFunctionsRoot, this.publicBytecodeCommitment, this.privateFunctions.length, ...this.privateFunctions.map((fn)=>serializeToBuffer(fn.selector, fn.vkHash)));
30
+ }
31
+ static fromBuffer(bufferOrReader) {
32
+ const reader = BufferReader.asReader(bufferOrReader);
33
+ const version = reader.readUInt8();
34
+ if (version !== VERSION) {
35
+ throw new Error(`Unexpected contract class data version ${version}`);
36
+ }
37
+ return new SerializableContractClassData({
38
+ id: reader.readObject(Fr),
39
+ artifactHash: reader.readObject(Fr),
40
+ privateFunctionsRoot: reader.readObject(Fr),
41
+ publicBytecodeCommitment: reader.readObject(Fr),
42
+ privateFunctions: reader.readVector({
43
+ fromBuffer: (r)=>({
44
+ selector: r.readObject(FunctionSelector),
45
+ vkHash: r.readObject(Fr)
46
+ })
47
+ })
48
+ });
49
+ }
50
+ }
6
51
  /**
7
52
  * ContractStore serves as a data manager and retriever for Aztec.nr contracts.
8
53
  * It provides methods to obtain contract addresses, function ABI, bytecode, and membership witnesses
@@ -12,47 +57,66 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
12
57
  */ export class ContractStore {
13
58
  /** 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
59
  #privateFunctionTrees = new Map();
15
- /** Map from contract address to contract class id */ #contractClassIdMap = new Map();
60
+ /**
61
+ * In-memory cache of deserialized ContractArtifact objects, keyed by class id string.
62
+ * Avoids repeated LMDB reads + JSON.parse + Zod validation on every oracle call.
63
+ * Artifacts are large but immutable after registration — safe to cache for the lifetime of the store.
64
+ */ // TODO: Update it to be LRU cache so that it doesn't keep all the data all the time.
65
+ #contractArtifactCache = new Map();
66
+ /** Map from contract address to contract class id (avoids KV round-trip on hot path). */ #contractClassIdMap = new Map();
67
+ #store;
16
68
  #contractArtifacts;
69
+ #contractClassData;
17
70
  #contractInstances;
18
71
  constructor(store){
72
+ this.#store = store;
19
73
  this.#contractArtifacts = store.openMap('contract_artifacts');
74
+ this.#contractClassData = store.openMap('contract_classes');
20
75
  this.#contractInstances = store.openMap('contracts_instances');
21
76
  }
22
77
  // Setters
23
- async addContractArtifact(id, contract) {
78
+ /**
79
+ * Registers a new contract artifact and its corresponding class data.
80
+ * IMPORTANT: This method does not verify that the provided artifact matches the class data or that the class id matches the artifact.
81
+ * It is the caller's responsibility to ensure the consistency and correctness of the provided data.
82
+ * This is done to avoid redundant, expensive contract class computations
83
+ */ async addContractArtifact(contract, contractClassWithIdAndPreimage) {
84
+ const contractClass = contractClassWithIdAndPreimage ?? await getContractClassFromArtifact(contract);
85
+ const key = contractClass.id.toString();
86
+ if (this.#contractArtifactCache.has(key)) {
87
+ return contractClass.id;
88
+ }
24
89
  const privateFunctions = contract.functions.filter((functionArtifact)=>functionArtifact.functionType === FunctionType.PRIVATE);
25
- const privateSelectors = await Promise.all(privateFunctions.map(async (privateFunctionArtifact)=>(await FunctionSelector.fromNameAndParameters(privateFunctionArtifact.name, privateFunctionArtifact.parameters)).toString()));
90
+ const privateSelectors = await Promise.all(privateFunctions.map(async (fn)=>(await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters)).toString()));
26
91
  if (privateSelectors.length !== new Set(privateSelectors).size) {
27
92
  throw new Error('Repeated function selectors of private functions');
28
93
  }
29
- await this.#contractArtifacts.set(id.toString(), contractArtifactToBuffer(contract));
94
+ this.#contractArtifactCache.set(key, contract);
95
+ await this.#store.transactionAsync(async ()=>{
96
+ await this.#contractArtifacts.set(key, contractArtifactToBuffer(contract));
97
+ await this.#contractClassData.set(key, new SerializableContractClassData(contractClass).toBuffer());
98
+ });
99
+ return contractClass.id;
30
100
  }
31
101
  async addContractInstance(contract) {
102
+ await this.#store.transactionAsync(async ()=>{
103
+ await this.#contractInstances.set(contract.address.toString(), new SerializableContractInstance(contract).toBuffer());
104
+ });
32
105
  this.#contractClassIdMap.set(contract.address.toString(), contract.currentContractClassId);
33
- await this.#contractInstances.set(contract.address.toString(), new SerializableContractInstance(contract).toBuffer());
34
106
  }
35
107
  // Private getters
36
108
  async #getContractClassId(contractAddress) {
37
- if (!this.#contractClassIdMap.has(contractAddress.toString())) {
109
+ const key = contractAddress.toString();
110
+ if (!this.#contractClassIdMap.has(key)) {
38
111
  const instance = await this.getContractInstance(contractAddress);
39
112
  if (!instance) {
40
113
  return;
41
114
  }
42
- this.#contractClassIdMap.set(contractAddress.toString(), instance.currentContractClassId);
115
+ this.#contractClassIdMap.set(key, instance.currentContractClassId);
43
116
  }
44
- return this.#contractClassIdMap.get(contractAddress.toString());
117
+ return this.#contractClassIdMap.get(key);
45
118
  }
46
- /**
47
- * Retrieve or create a ContractTree instance based on the provided class id.
48
- * If an existing tree with the same class id is found in the cache, it will be returned.
49
- * Otherwise, a new ContractTree instance will be created using the contract data from the database
50
- * and added to the cache before returning.
51
- *
52
- * @param classId - The class id of the contract for which the ContractTree is required.
53
- * @returns A ContractTree instance associated with the specified contract address.
54
- * @throws An Error if the contract is not found in the ContractDatabase.
55
- */ async #getPrivateFunctionTreeForClassId(classId) {
119
+ async #getPrivateFunctionTreeForClassId(classId) {
56
120
  if (!this.#privateFunctionTrees.has(classId.toString())) {
57
121
  const artifact = await this.getContractArtifact(classId);
58
122
  if (!artifact) {
@@ -63,27 +127,54 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
63
127
  }
64
128
  return this.#privateFunctionTrees.get(classId.toString());
65
129
  }
66
- async #getContractArtifactByAddress(contractAddress) {
67
- const contractClassId = await this.#getContractClassId(contractAddress);
68
- return contractClassId && this.getContractArtifact(contractClassId);
130
+ async #getArtifactByAddress(contractAddress) {
131
+ const classId = await this.#getContractClassId(contractAddress);
132
+ return classId && this.getContractArtifact(classId);
69
133
  }
70
134
  // Public getters
71
- async getContractsAddresses() {
72
- const keys = await toArray(this.#contractInstances.keysAsync());
73
- return keys.map(AztecAddress.fromString);
135
+ getContractsAddresses() {
136
+ return this.#store.transactionAsync(async ()=>{
137
+ const keys = await toArray(this.#contractInstances.keysAsync());
138
+ return keys.map(AztecAddress.fromString);
139
+ });
74
140
  }
75
- /** Returns a contract instance for a given address. Throws if not found. */ async getContractInstance(contractAddress) {
76
- const contract = await this.#contractInstances.getAsync(contractAddress.toString());
77
- return contract && SerializableContractInstance.fromBuffer(contract).withAddress(contractAddress);
141
+ /** Returns a contract instance for a given address. */ getContractInstance(contractAddress) {
142
+ return this.#store.transactionAsync(async ()=>{
143
+ const contract = await this.#contractInstances.getAsync(contractAddress.toString());
144
+ return contract && SerializableContractInstance.fromBuffer(contract).withAddress(contractAddress);
145
+ });
78
146
  }
79
- async getContractArtifact(contractClassId) {
80
- const contract = await this.#contractArtifacts.getAsync(contractClassId.toString());
81
- // TODO(@spalladino): AztecAsyncMap lies and returns Uint8Arrays instead of Buffers, hence the extra Buffer.from.
82
- return contract && contractArtifactFromBuffer(Buffer.from(contract));
147
+ /** Returns the raw contract artifact for a given class id. */ async getContractArtifact(contractClassId) {
148
+ const key = contractClassId.toString();
149
+ const cached = this.#contractArtifactCache.get(key);
150
+ if (cached) {
151
+ return cached;
152
+ }
153
+ const artifact = await this.#store.transactionAsync(async ()=>{
154
+ const buf = await this.#contractArtifacts.getAsync(key);
155
+ return buf && contractArtifactFromBuffer(buf);
156
+ });
157
+ if (artifact) {
158
+ this.#contractArtifactCache.set(key, artifact);
159
+ }
160
+ return artifact;
83
161
  }
84
- /** Returns a contract class for a given class id. Throws if not found. */ async getContractClass(contractClassId) {
162
+ /** Returns a contract class for a given class id. */ async getContractClassWithPreimage(contractClassId) {
163
+ const key = contractClassId.toString();
164
+ const buf = await this.#store.transactionAsync(()=>this.#contractClassData.getAsync(key));
165
+ if (!buf) {
166
+ return undefined;
167
+ }
168
+ const classData = SerializableContractClassData.fromBuffer(buf);
85
169
  const artifact = await this.getContractArtifact(contractClassId);
86
- return artifact && getContractClassFromArtifact(artifact);
170
+ if (!artifact) {
171
+ return undefined;
172
+ }
173
+ const packedBytecode = artifact.functions.find((f)=>f.name === 'public_dispatch')?.bytecode ?? Buffer.alloc(0);
174
+ return {
175
+ ...classData,
176
+ packedBytecode
177
+ };
87
178
  }
88
179
  async getContract(address) {
89
180
  const instance = await this.getContractInstance(address);
@@ -101,17 +192,18 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
101
192
  }
102
193
  /**
103
194
  * Retrieves the artifact of a specified function within a given contract.
104
- * The function is identified by its selector, which is a unique code generated from the function's signature.
105
- * Throws an error if the contract address or function selector are invalid or not found.
106
195
  *
107
196
  * @param contractAddress - The AztecAddress representing the contract containing the function.
108
197
  * @param selector - The function selector.
109
198
  * @returns The corresponding function's artifact as an object.
110
199
  */ async getFunctionArtifact(contractAddress, selector) {
111
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
112
- const fnArtifact = artifact && await this.#findFunctionArtifactBySelector(artifact, selector);
113
- return fnArtifact && {
114
- ...fnArtifact,
200
+ const artifact = await this.#getArtifactByAddress(contractAddress);
201
+ if (!artifact) {
202
+ return undefined;
203
+ }
204
+ const fn = await this.#findFunctionArtifactBySelector(artifact, selector);
205
+ return fn && {
206
+ ...fn,
115
207
  contractName: artifact.name
116
208
  };
117
209
  }
@@ -127,40 +219,38 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
127
219
  };
128
220
  }
129
221
  async getPublicFunctionArtifact(contractAddress) {
130
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
131
- const fnArtifact = artifact && artifact.functions.find((fn)=>fn.functionType === FunctionType.PUBLIC);
132
- return fnArtifact && {
133
- ...fnArtifact,
222
+ const artifact = await this.#getArtifactByAddress(contractAddress);
223
+ const fn = artifact && artifact.functions.find((f)=>f.functionType === FunctionType.PUBLIC);
224
+ return fn && {
225
+ ...fn,
134
226
  contractName: artifact.name
135
227
  };
136
228
  }
137
229
  async getFunctionAbi(contractAddress, selector) {
138
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
230
+ const artifact = await this.#getArtifactByAddress(contractAddress);
139
231
  return artifact && await this.#findFunctionAbiBySelector(artifact, selector);
140
232
  }
141
233
  /**
142
234
  * Retrieves the debug metadata of a specified function within a given contract.
143
- * The function is identified by its selector, which is a unique code generated from the function's signature.
144
- * Returns undefined if the debug metadata for the given function is not found.
145
- * Throws if the contract has not been added to the database.
146
235
  *
147
236
  * @param contractAddress - The AztecAddress representing the contract containing the function.
148
237
  * @param selector - The function selector.
149
- * @returns The corresponding function's artifact as an object.
238
+ * @returns The corresponding function's debug metadata, or undefined.
150
239
  */ async getFunctionDebugMetadata(contractAddress, selector) {
151
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
152
- const fnArtifact = artifact && await this.#findFunctionArtifactBySelector(artifact, selector);
153
- return fnArtifact && getFunctionDebugMetadata(artifact, fnArtifact);
240
+ const artifact = await this.#getArtifactByAddress(contractAddress);
241
+ if (!artifact) {
242
+ return undefined;
243
+ }
244
+ const fn = await this.#findFunctionArtifactBySelector(artifact, selector);
245
+ return fn && getFunctionDebugMetadata(artifact, fn);
154
246
  }
155
247
  async getPublicFunctionDebugMetadata(contractAddress) {
156
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
157
- const fnArtifact = artifact && artifact.functions.find((fn)=>fn.functionType === FunctionType.PUBLIC);
158
- return fnArtifact && getFunctionDebugMetadata(artifact, fnArtifact);
248
+ const artifact = await this.#getArtifactByAddress(contractAddress);
249
+ const fn = artifact && artifact.functions.find((f)=>f.functionType === FunctionType.PUBLIC);
250
+ return fn && getFunctionDebugMetadata(artifact, fn);
159
251
  }
160
252
  /**
161
253
  * Retrieve the function membership witness for the given contract class and function selector.
162
- * The function membership witness represents a proof that the function belongs to the specified contract.
163
- * Throws an error if the contract address or function selector is unknown.
164
254
  *
165
255
  * @param contractClassId - The id of the class.
166
256
  * @param selector - The function selector.
@@ -170,18 +260,16 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
170
260
  return tree?.getFunctionMembershipWitness(selector);
171
261
  }
172
262
  async getDebugContractName(contractAddress) {
173
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
263
+ const artifact = await this.#getArtifactByAddress(contractAddress);
174
264
  return artifact?.name;
175
265
  }
176
266
  async getDebugFunctionName(contractAddress, selector) {
177
- const artifact = await this.#getContractArtifactByAddress(contractAddress);
178
- const fnArtifact = artifact && await this.#findFunctionAbiBySelector(artifact, selector);
179
- return `${artifact?.name ?? contractAddress}:${fnArtifact?.name ?? selector}`;
267
+ const artifact = await this.#getArtifactByAddress(contractAddress);
268
+ const fn = artifact && await this.#findFunctionAbiBySelector(artifact, selector);
269
+ return `${artifact?.name ?? contractAddress}:${fn?.name ?? selector}`;
180
270
  }
181
271
  async #findFunctionArtifactBySelector(artifact, selector) {
182
- const functions = artifact.functions;
183
- for(let i = 0; i < functions.length; i++){
184
- const fn = functions[i];
272
+ for (const fn of artifact.functions){
185
273
  const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
186
274
  if (fnSelector.equals(selector)) {
187
275
  return fn;
@@ -189,12 +277,10 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
189
277
  }
190
278
  }
191
279
  async #findFunctionAbiBySelector(artifact, selector) {
192
- const functions = [
280
+ for (const fn of [
193
281
  ...artifact.functions,
194
282
  ...artifact.nonDispatchPublicFunctions ?? []
195
- ];
196
- for(let i = 0; i < functions.length; i++){
197
- const fn = functions[i];
283
+ ]){
198
284
  const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
199
285
  if (fnSelector.equals(selector)) {
200
286
  return fn;
@@ -210,15 +296,16 @@ import { PrivateFunctionsTree } from './private_functions_tree.js';
210
296
  if (!functionDao) {
211
297
  throw new Error(`Unknown function ${functionName} in contract ${contract.name}.`);
212
298
  }
213
- return {
299
+ const selector = await FunctionSelector.fromNameAndParameters(functionDao.name, functionDao.parameters);
300
+ return FunctionCall.from({
214
301
  name: functionDao.name,
215
- args: encodeArguments(functionDao, args),
216
- selector: await FunctionSelector.fromNameAndParameters(functionDao.name, functionDao.parameters),
217
- type: functionDao.functionType,
218
302
  to,
303
+ selector,
304
+ type: functionDao.functionType,
219
305
  hideMsgSender: false,
220
306
  isStatic: functionDao.isStatic,
307
+ args: encodeArguments(functionDao, args),
221
308
  returnTypes: functionDao.returnTypes
222
- };
309
+ });
223
310
  }
224
311
  }
@@ -1,2 +1,2 @@
1
- export declare const PXE_DATA_SCHEMA_VERSION = 2;
1
+ export declare const PXE_DATA_SCHEMA_VERSION = 5;
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL21ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQU8sTUFBTSx1QkFBdUIsSUFBSSxDQUFDIn0=
@@ -1 +1 @@
1
- export const PXE_DATA_SCHEMA_VERSION = 2;
1
+ export const PXE_DATA_SCHEMA_VERSION = 5;
@@ -2,8 +2,9 @@ import type { Fr } from '@aztec/foundation/schemas';
2
2
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { DataInBlock } from '@aztec/stdlib/block';
5
- import { NoteDao, type NotesFilter } from '@aztec/stdlib/note';
5
+ import { NoteDao } from '@aztec/stdlib/note';
6
6
  import type { StagedStore } from '../../job_coordinator/job_coordinator.js';
7
+ import type { NotesFilter } from '../../notes_filter.js';
7
8
  /**
8
9
  * NoteStore manages the storage and retrieval of notes.
9
10
  *
@@ -35,7 +36,6 @@ export declare class NoteStore implements StagedStore {
35
36
  * @params jobId - the job context to read from.
36
37
  * @returns Filtered and deduplicated notes (a note might be present in multiple scopes - we ensure it is only
37
38
  * returned once if this is the case)
38
- * @throws If filtering by an empty scopes array. Scopes have to be set to undefined or to a non-empty array.
39
39
  */
40
40
  getNotes(filter: NotesFilter, jobId: string): Promise<NoteDao[]>;
41
41
  /**
@@ -67,7 +67,17 @@ export declare class NoteStore implements StagedStore {
67
67
  * @param synchedBlockNumber - The block number up to which PXE managed to sync before the reorg happened.
68
68
  */
69
69
  rollback(blockNumber: number, synchedBlockNumber: number): Promise<void>;
70
+ /**
71
+ * Commits in memory job data to persistent storage.
72
+ *
73
+ * Called by JobCoordinator when a job completes successfully.
74
+ *
75
+ * Note: JobCoordinator wraps all commits in a single transaction, so we don't need our own transactionAsync here
76
+ * (and using one would throw on IndexedDB as it does not support nested txs).
77
+ *
78
+ * @param jobId - The jobId identifying which staged data to commit
79
+ */
70
80
  commit(jobId: string): Promise<void>;
71
81
  discardStaged(jobId: string): Promise<void>;
72
82
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2Uvbm90ZV9zdG9yZS9ub3RlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQWMsS0FBSyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc1RTs7Ozs7SUFLSTtBQUNKLHFCQUFhLFNBQVUsWUFBVyxXQUFXOztJQUMzQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBVTtJQTZCcEMsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBT25DO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBRXJGO0lBK0JEOzs7Ozs7Ozs7OztPQVdHO0lBQ0csUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FvRHJFO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxlQUFlLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBb0NoRjtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ1UsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNcEY7SUEwRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVluQztJQUVELGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFMUM7Q0FpREYifQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2Uvbm90ZV9zdG9yZS9ub3RlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd6RDs7Ozs7SUFLSTtBQUNKLHFCQUFhLFNBQVUsWUFBVyxXQUFXOztJQUMzQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBVTtJQStCcEMsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBUW5DO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBYXJGO0lBY0Q7Ozs7Ozs7Ozs7T0FVRztJQUNILFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBNkYvRDtJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsZUFBZSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQXlDaEY7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNVLFFBQVEsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTXBGO0lBNkVEOzs7Ozs7Ozs7T0FTRztJQUNHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FVekM7SUFFRCxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRzFDO0NBa0NGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"note_store.d.ts","sourceRoot":"","sources":["../../../src/storage/note_store/note_store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAG5E;;;;;IAKI;AACJ,qBAAa,SAAU,YAAW,WAAW;;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAU;IA6BpC,YAAY,KAAK,EAAE,iBAAiB,EAOnC;IAED;;;;;;;;;OASG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAErF;IA+BD;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAoDrE;IAED;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAoChF;IAED;;;;;;;;;;;OAWG;IACU,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;IA0ED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;CAiDF"}
1
+ {"version":3,"file":"note_store.d.ts","sourceRoot":"","sources":["../../../src/storage/note_store/note_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;;;;IAKI;AACJ,qBAAa,SAAU,YAAW,WAAW;;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAU;IA+BpC,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IAED;;;;;;;;;OASG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAarF;IAcD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA6F/D;IAED;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAyChF;IAED;;;;;;;;;;;OAWG;IACU,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;IA6ED;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1C;CAkCF"}