@aztec/pxe 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1

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 (264) hide show
  1. package/README.md +5 -5
  2. package/dest/bin/check_oracle_version.d.ts +1 -1
  3. package/dest/bin/check_oracle_version.js +110 -10
  4. package/dest/config/index.d.ts +9 -17
  5. package/dest/config/index.d.ts.map +1 -1
  6. package/dest/config/index.js +10 -16
  7. package/dest/config/package_info.d.ts +1 -1
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/contract_function_simulator.d.ts +6 -6
  10. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  11. package/dest/contract_function_simulator/contract_function_simulator.js +97 -42
  12. package/dest/contract_function_simulator/execution_data_provider.d.ts +40 -57
  13. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/execution_note_cache.d.ts +11 -9
  15. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/execution_note_cache.js +28 -17
  17. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
  18. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  19. package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
  20. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  21. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/index.d.ts +4 -2
  23. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/index.js +2 -1
  25. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -2
  26. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +2 -2
  28. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  30. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +8 -4
  32. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -3
  33. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +12 -3
  35. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
  36. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  37. package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
  38. package/dest/contract_function_simulator/oracle/index.d.ts +2 -2
  39. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/oracle/index.js +1 -1
  41. package/dest/contract_function_simulator/oracle/interfaces.d.ts +104 -0
  42. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  43. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  44. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -4
  45. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  47. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +10 -4
  48. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  49. package/dest/contract_function_simulator/oracle/note_packing_utils.js +10 -5
  50. package/dest/contract_function_simulator/oracle/oracle.d.ts +17 -15
  51. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/oracle/oracle.js +101 -81
  53. package/dest/contract_function_simulator/oracle/private_execution.d.ts +6 -5
  54. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  55. package/dest/contract_function_simulator/oracle/private_execution.js +7 -16
  56. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +34 -22
  57. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  58. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +89 -25
  59. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +23 -33
  60. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  61. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +38 -42
  62. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  63. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  64. package/dest/contract_function_simulator/pick_notes.js +1 -1
  65. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  66. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  67. package/dest/contract_function_simulator/proxied_node.d.ts +1 -1
  68. package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +34 -68
  70. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/pxe_oracle_interface.js +220 -208
  72. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  73. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  74. package/dest/entrypoints/client/bundle/index.js +2 -1
  75. package/dest/entrypoints/client/bundle/utils.d.ts +9 -9
  76. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  77. package/dest/entrypoints/client/bundle/utils.js +21 -12
  78. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  79. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  80. package/dest/entrypoints/client/lazy/index.js +2 -1
  81. package/dest/entrypoints/client/lazy/utils.d.ts +8 -8
  82. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/client/lazy/utils.js +20 -11
  84. package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
  85. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  86. package/dest/entrypoints/server/index.d.ts +4 -2
  87. package/dest/entrypoints/server/index.d.ts.map +1 -1
  88. package/dest/entrypoints/server/index.js +2 -1
  89. package/dest/entrypoints/server/utils.d.ts +5 -24
  90. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  91. package/dest/entrypoints/server/utils.js +17 -45
  92. package/dest/error_enriching.d.ts +11 -0
  93. package/dest/error_enriching.d.ts.map +1 -0
  94. package/dest/{pxe_service/error_enriching.js → error_enriching.js} +3 -0
  95. package/dest/events/index.d.ts +2 -0
  96. package/dest/events/index.d.ts.map +1 -0
  97. package/dest/events/index.js +1 -0
  98. package/dest/events/private_event_filter_validator.d.ts +8 -0
  99. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  100. package/dest/events/private_event_filter_validator.js +39 -0
  101. package/dest/oracle_version.d.ts +3 -3
  102. package/dest/oracle_version.js +2 -2
  103. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +3 -3
  104. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  105. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +7 -7
  106. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
  107. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +6 -6
  108. package/dest/private_kernel/hints/index.d.ts +1 -1
  109. package/dest/private_kernel/index.d.ts +1 -1
  110. package/dest/private_kernel/private_kernel_execution_prover.d.ts +9 -2
  111. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  112. package/dest/private_kernel/private_kernel_execution_prover.js +38 -32
  113. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
  114. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  115. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +8 -7
  116. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  117. package/dest/pxe.d.ts +240 -0
  118. package/dest/pxe.d.ts.map +1 -0
  119. package/dest/{pxe_service/pxe_service.js → pxe.js} +227 -241
  120. package/dest/storage/address_data_provider/address_data_provider.d.ts +2 -4
  121. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -1
  122. package/dest/storage/address_data_provider/address_data_provider.js +0 -3
  123. package/dest/storage/address_data_provider/index.d.ts +1 -1
  124. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +3 -5
  125. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -1
  126. package/dest/storage/capsule_data_provider/capsule_data_provider.js +1 -5
  127. package/dest/storage/capsule_data_provider/index.d.ts +1 -1
  128. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +6 -17
  129. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -1
  130. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -15
  131. package/dest/storage/contract_data_provider/index.d.ts +1 -1
  132. package/dest/storage/contract_data_provider/private_functions_tree.d.ts +1 -1
  133. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -1
  134. package/dest/storage/contract_data_provider/private_functions_tree.js +1 -1
  135. package/dest/storage/index.d.ts +1 -2
  136. package/dest/storage/index.d.ts.map +1 -1
  137. package/dest/storage/index.js +0 -1
  138. package/dest/storage/metadata.d.ts +1 -1
  139. package/dest/storage/note_data_provider/index.d.ts +2 -2
  140. package/dest/storage/note_data_provider/index.d.ts.map +1 -1
  141. package/dest/storage/note_data_provider/index.js +1 -1
  142. package/dest/storage/note_data_provider/note_data_provider.d.ts +75 -11
  143. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
  144. package/dest/storage/note_data_provider/note_data_provider.js +143 -81
  145. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +31 -17
  146. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +1 -1
  147. package/dest/storage/private_event_data_provider/private_event_data_provider.js +47 -28
  148. package/dest/storage/sync_data_provider/index.d.ts +1 -1
  149. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +4 -5
  150. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -1
  151. package/dest/storage/sync_data_provider/sync_data_provider.js +0 -3
  152. package/dest/storage/tagging_data_provider/index.d.ts +1 -1
  153. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +29 -7
  154. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -1
  155. package/dest/storage/tagging_data_provider/tagging_data_provider.js +46 -39
  156. package/dest/synchronizer/index.d.ts +1 -1
  157. package/dest/synchronizer/synchronizer.d.ts +3 -2
  158. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  159. package/dest/synchronizer/synchronizer.js +4 -4
  160. package/dest/tagging/constants.d.ts +2 -0
  161. package/dest/tagging/constants.d.ts.map +1 -0
  162. package/dest/tagging/constants.js +2 -0
  163. package/dest/tagging/index.d.ts +7 -0
  164. package/dest/tagging/index.d.ts.map +1 -0
  165. package/dest/tagging/index.js +5 -0
  166. package/dest/tagging/siloed_tag.d.ts +14 -0
  167. package/dest/tagging/siloed_tag.d.ts.map +1 -0
  168. package/dest/tagging/siloed_tag.js +20 -0
  169. package/dest/tagging/tag.d.ts +12 -0
  170. package/dest/tagging/tag.d.ts.map +1 -0
  171. package/dest/tagging/tag.js +17 -0
  172. package/dest/tagging/utils.d.ts +18 -0
  173. package/dest/tagging/utils.d.ts.map +1 -0
  174. package/dest/tagging/utils.js +24 -0
  175. package/package.json +22 -24
  176. package/src/bin/check_oracle_version.ts +134 -10
  177. package/src/config/index.ts +18 -32
  178. package/src/config/package_info.ts +1 -1
  179. package/src/contract_function_simulator/contract_function_simulator.ts +151 -62
  180. package/src/contract_function_simulator/execution_data_provider.ts +47 -65
  181. package/src/contract_function_simulator/execution_note_cache.ts +33 -17
  182. package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
  183. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  184. package/src/contract_function_simulator/index.ts +3 -1
  185. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  186. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  187. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +10 -5
  188. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +14 -2
  189. package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
  190. package/src/contract_function_simulator/oracle/index.ts +1 -1
  191. package/src/contract_function_simulator/oracle/interfaces.ts +176 -0
  192. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  193. package/src/contract_function_simulator/oracle/note_packing_utils.ts +21 -5
  194. package/src/contract_function_simulator/oracle/oracle.ts +135 -80
  195. package/src/contract_function_simulator/oracle/private_execution.ts +10 -17
  196. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +123 -49
  197. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +68 -80
  198. package/src/contract_function_simulator/pick_notes.ts +1 -1
  199. package/src/contract_function_simulator/pxe_oracle_interface.ts +291 -271
  200. package/src/entrypoints/client/bundle/index.ts +3 -1
  201. package/src/entrypoints/client/bundle/utils.ts +21 -23
  202. package/src/entrypoints/client/lazy/index.ts +3 -1
  203. package/src/entrypoints/client/lazy/utils.ts +20 -23
  204. package/src/entrypoints/pxe_creation_options.ts +4 -1
  205. package/src/entrypoints/server/index.ts +3 -1
  206. package/src/entrypoints/server/utils.ts +20 -68
  207. package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +5 -1
  208. package/src/events/index.ts +1 -0
  209. package/src/events/private_event_filter_validator.ts +47 -0
  210. package/src/oracle_version.ts +2 -2
  211. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +5 -9
  212. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +6 -6
  213. package/src/private_kernel/private_kernel_execution_prover.ts +51 -43
  214. package/src/private_kernel/private_kernel_oracle.ts +2 -1
  215. package/src/private_kernel/private_kernel_oracle_impl.ts +4 -3
  216. package/src/{pxe_service/pxe_service.ts → pxe.ts} +256 -308
  217. package/src/storage/address_data_provider/address_data_provider.ts +1 -7
  218. package/src/storage/capsule_data_provider/capsule_data_provider.ts +2 -12
  219. package/src/storage/contract_data_provider/contract_data_provider.ts +4 -27
  220. package/src/storage/contract_data_provider/private_functions_tree.ts +1 -1
  221. package/src/storage/index.ts +0 -1
  222. package/src/storage/note_data_provider/index.ts +1 -1
  223. package/src/storage/note_data_provider/note_data_provider.ts +171 -109
  224. package/src/storage/private_event_data_provider/private_event_data_provider.ts +69 -41
  225. package/src/storage/sync_data_provider/sync_data_provider.ts +3 -8
  226. package/src/storage/tagging_data_provider/tagging_data_provider.ts +52 -55
  227. package/src/synchronizer/synchronizer.ts +4 -4
  228. package/src/tagging/constants.ts +2 -0
  229. package/src/tagging/index.ts +6 -0
  230. package/src/tagging/siloed_tag.ts +22 -0
  231. package/src/tagging/tag.ts +16 -0
  232. package/src/tagging/utils.ts +31 -0
  233. package/dest/bin/index.d.ts +0 -3
  234. package/dest/bin/index.d.ts.map +0 -1
  235. package/dest/bin/index.js +0 -48
  236. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts +0 -87
  237. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +0 -1
  238. package/dest/contract_function_simulator/oracle/typed_oracle.js +0 -146
  239. package/dest/contract_function_simulator/tagging_utils.d.ts +0 -17
  240. package/dest/contract_function_simulator/tagging_utils.d.ts.map +0 -1
  241. package/dest/contract_function_simulator/tagging_utils.js +0 -23
  242. package/dest/pxe_service/error_enriching.d.ts +0 -11
  243. package/dest/pxe_service/error_enriching.d.ts.map +0 -1
  244. package/dest/pxe_service/index.d.ts +0 -3
  245. package/dest/pxe_service/index.d.ts.map +0 -1
  246. package/dest/pxe_service/index.js +0 -2
  247. package/dest/pxe_service/pxe_service.d.ts +0 -100
  248. package/dest/pxe_service/pxe_service.d.ts.map +0 -1
  249. package/dest/storage/data_provider.d.ts +0 -4
  250. package/dest/storage/data_provider.d.ts.map +0 -1
  251. package/dest/storage/data_provider.js +0 -1
  252. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  253. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  254. package/dest/storage/note_data_provider/note_dao.js +0 -102
  255. package/dest/test/pxe_test_suite.d.ts +0 -3
  256. package/dest/test/pxe_test_suite.d.ts.map +0 -1
  257. package/dest/test/pxe_test_suite.js +0 -97
  258. package/src/bin/index.ts +0 -62
  259. package/src/contract_function_simulator/oracle/typed_oracle.ts +0 -289
  260. package/src/contract_function_simulator/tagging_utils.ts +0 -32
  261. package/src/pxe_service/index.ts +0 -2
  262. package/src/storage/data_provider.ts +0 -3
  263. package/src/storage/note_data_provider/note_dao.ts +0 -154
  264. package/src/test/pxe_test_suite.ts +0 -113
@@ -1,5 +1,7 @@
1
- export * from '../../../pxe_service/index.js';
1
+ export * from '../../../pxe.js';
2
2
  export * from '../../../config/index.js';
3
+ export * from '../../../error_enriching.js';
3
4
  export * from '../../../storage/index.js';
4
5
  export * from './utils.js';
5
6
  export { PXEOracleInterface } from '../../../contract_function_simulator/pxe_oracle_interface.js';
7
+ export type { PXECreationOptions } from '../../pxe_creation_options.js';
@@ -1,28 +1,29 @@
1
- import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/client/wasm/bundle';
2
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
2
+ import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
3
+ import { randomBytes } from '@aztec/foundation/crypto/random';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import { createStore } from '@aztec/kv-store/indexeddb';
5
6
  import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
6
7
  import { WASMSimulator } from '@aztec/simulator/client';
7
8
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
8
9
 
9
- import type { PXEServiceConfig } from '../../../config/index.js';
10
- import { PXEService } from '../../../pxe_service/pxe_service.js';
10
+ import type { PXEConfig } from '../../../config/index.js';
11
+ import { PXE } from '../../../pxe.js';
11
12
  import type { PXECreationOptions } from '../../pxe_creation_options.js';
12
13
 
13
14
  /**
14
- * Create and start an PXEService instance with the given AztecNode.
15
+ * Create and start an PXE instance with the given AztecNode.
15
16
  * If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
16
- * Returns a Promise that resolves to the started PXEService instance.
17
+ * Returns a Promise that resolves to the started PXE instance.
17
18
  *
18
19
  * @param aztecNode - The AztecNode instance to be used by the server.
19
- * @param config - The PXE Service Config to use
20
- * @param options - (Optional) Optional information for creating an PXEService.
21
- * @returns A Promise that resolves to the started PXEService instance.
20
+ * @param config - The PXE Config to use
21
+ * @param options - (Optional) Optional information for creating an PXE.
22
+ * @returns A Promise that resolves to the started PXE instance.
22
23
  */
23
- export async function createPXEService(
24
+ export async function createPXE(
24
25
  aztecNode: AztecNode,
25
- config: PXEServiceConfig,
26
+ config: PXEConfig,
26
27
  options: PXECreationOptions = { loggers: {} },
27
28
  ) {
28
29
  const logSuffix =
@@ -38,29 +39,26 @@ export async function createPXEService(
38
39
  const configWithContracts = {
39
40
  ...config,
40
41
  l1Contracts,
41
- } as PXEServiceConfig;
42
+ } as PXEConfig;
42
43
 
43
44
  const storeLogger = loggers.store ? loggers.store : createLogger('pxe:data:idb' + (logSuffix ? `:${logSuffix}` : ''));
44
45
 
45
46
  const store = options.store ?? (await createStore('pxe_data', configWithContracts, storeLogger));
46
47
 
47
- const simulator = new WASMSimulator();
48
+ const simulator = options.simulator ?? new WASMSimulator();
48
49
  const proverLogger = loggers.prover
49
50
  ? loggers.prover
50
51
  : createLogger('pxe:bb:wasm:bundle' + (logSuffix ? `:${logSuffix}` : ''));
51
52
 
52
- const prover = options.prover ?? new BBWASMBundlePrivateKernelProver(simulator, 16, proverLogger);
53
+ let prover;
54
+ if (options.proverOrOptions instanceof BBPrivateKernelProver) {
55
+ prover = options.proverOrOptions;
56
+ } else {
57
+ prover = new BBBundlePrivateKernelProver(simulator, { ...options.proverOrOptions, logger: proverLogger });
58
+ }
53
59
  const protocolContractsProvider = new BundledProtocolContractsProvider();
54
60
 
55
61
  const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
56
- const pxe = await PXEService.create(
57
- aztecNode,
58
- store,
59
- prover,
60
- simulator,
61
- protocolContractsProvider,
62
- config,
63
- pxeLogger,
64
- );
62
+ const pxe = await PXE.create(aztecNode, store, prover, simulator, protocolContractsProvider, config, pxeLogger);
65
63
  return pxe;
66
64
  }
@@ -1,5 +1,7 @@
1
- export * from '../../../pxe_service/index.js';
1
+ export * from '../../../pxe.js';
2
2
  export * from '../../../config/index.js';
3
3
  export * from '../../../storage/index.js';
4
+ export * from '../../../error_enriching.js';
4
5
  export * from './utils.js';
5
6
  export { PXEOracleInterface } from '../../../contract_function_simulator/pxe_oracle_interface.js';
7
+ export { type PXECreationOptions } from '../../pxe_creation_options.js';
@@ -1,27 +1,28 @@
1
- import { BBWASMLazyPrivateKernelProver } from '@aztec/bb-prover/client/wasm/lazy';
2
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
2
+ import { BBLazyPrivateKernelProver } from '@aztec/bb-prover/client/lazy';
3
+ import { randomBytes } from '@aztec/foundation/crypto/random';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import { createStore } from '@aztec/kv-store/indexeddb';
5
6
  import { LazyProtocolContractsProvider } from '@aztec/protocol-contracts/providers/lazy';
6
7
  import { WASMSimulator } from '@aztec/simulator/client';
7
8
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
8
9
 
9
- import type { PXEServiceConfig } from '../../../config/index.js';
10
- import { PXEService } from '../../../pxe_service/pxe_service.js';
10
+ import type { PXEConfig } from '../../../config/index.js';
11
+ import { PXE } from '../../../pxe.js';
11
12
  import type { PXECreationOptions } from '../../pxe_creation_options.js';
12
13
 
13
14
  /**
14
- * Create and start an PXEService instance with the given AztecNode.
15
- * Returns a Promise that resolves to the started PXEService instance.
15
+ * Create and start an PXE instance with the given AztecNode.
16
+ * Returns a Promise that resolves to the started PXE instance.
16
17
  *
17
18
  * @param aztecNode - The AztecNode instance to be used by the server.
18
- * @param config - The PXE Service Config to use
19
+ * @param config - The PXE Config to use
19
20
  * @param
20
- * @returns A Promise that resolves to the started PXEService instance.
21
+ * @returns A Promise that resolves to the started PXE instance.
21
22
  */
22
- export async function createPXEService(
23
+ export async function createPXE(
23
24
  aztecNode: AztecNode,
24
- config: PXEServiceConfig,
25
+ config: PXEConfig,
25
26
  options: PXECreationOptions = { loggers: {} },
26
27
  ) {
27
28
  const logSuffix =
@@ -35,7 +36,7 @@ export async function createPXEService(
35
36
  const configWithContracts = {
36
37
  ...config,
37
38
  l1Contracts,
38
- } as PXEServiceConfig;
39
+ } as PXEConfig;
39
40
 
40
41
  const loggers = options.loggers ?? {};
41
42
 
@@ -43,24 +44,20 @@ export async function createPXEService(
43
44
 
44
45
  const store = options.store ?? (await createStore('pxe_data', configWithContracts, storeLogger));
45
46
 
46
- const simulator = new WASMSimulator();
47
+ const simulator = options.simulator ?? new WASMSimulator();
47
48
  const proverLogger = loggers.prover
48
49
  ? loggers.prover
49
50
  : createLogger('pxe:bb:wasm:bundle' + (logSuffix ? `:${logSuffix}` : ''));
50
51
 
51
- const prover = options.prover ?? new BBWASMLazyPrivateKernelProver(simulator, 16, proverLogger);
52
-
52
+ let prover;
53
+ if (options.proverOrOptions instanceof BBPrivateKernelProver) {
54
+ prover = options.proverOrOptions;
55
+ } else {
56
+ prover = new BBLazyPrivateKernelProver(simulator, { ...options.proverOrOptions, logger: proverLogger });
57
+ }
53
58
  const protocolContractsProvider = new LazyProtocolContractsProvider();
54
59
 
55
60
  const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
56
- const pxe = await PXEService.create(
57
- aztecNode,
58
- store,
59
- prover,
60
- simulator,
61
- protocolContractsProvider,
62
- config,
63
- pxeLogger,
64
- );
61
+ const pxe = await PXE.create(aztecNode, store, prover, simulator, protocolContractsProvider, config, pxeLogger);
65
62
  return pxe;
66
63
  }
@@ -1,10 +1,13 @@
1
+ import type { BBPrivateKernelProverOptions } from '@aztec/bb-prover/client';
1
2
  import type { Logger } from '@aztec/foundation/log';
2
3
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
+ import type { CircuitSimulator } from '@aztec/simulator/client';
3
5
  import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
4
6
 
5
7
  export type PXECreationOptions = {
6
8
  loggers?: { store?: Logger; pxe?: Logger; prover?: Logger };
7
9
  useLogSuffix?: boolean | string;
8
- prover?: PrivateKernelProver;
10
+ proverOrOptions?: PrivateKernelProver | BBPrivateKernelProverOptions;
9
11
  store?: AztecAsyncKVStore;
12
+ simulator?: CircuitSimulator;
10
13
  };
@@ -1,6 +1,8 @@
1
- export * from '../../pxe_service/index.js';
1
+ export * from '../../pxe.js';
2
2
  export * from '../../config/index.js';
3
+ export * from '../../error_enriching.js';
3
4
  export * from '../../storage/index.js';
4
5
  export * from './utils.js';
5
6
  export { PXEOracleInterface } from '../../contract_function_simulator/pxe_oracle_interface.js';
6
7
  export { ORACLE_VERSION } from '../../oracle_version.js';
8
+ export { type PXECreationOptions } from '../pxe_creation_options.js';
@@ -1,63 +1,30 @@
1
- import { BBNativePrivateKernelProver } from '@aztec/bb-prover/client/native';
2
- import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/client/wasm/bundle';
3
- import { randomBytes } from '@aztec/foundation/crypto';
4
- import { type Logger, createLogger } from '@aztec/foundation/log';
1
+ import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
2
+ import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
3
+ import { randomBytes } from '@aztec/foundation/crypto/random';
4
+ import { createLogger } from '@aztec/foundation/log';
5
+ import { createStore } from '@aztec/kv-store/lmdb-v2';
5
6
  import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
6
- import {
7
- type CircuitSimulator,
8
- MemoryCircuitRecorder,
9
- SimulatorRecorderWrapper,
10
- WASMSimulator,
11
- } from '@aztec/simulator/client';
7
+ import { MemoryCircuitRecorder, SimulatorRecorderWrapper, WASMSimulator } from '@aztec/simulator/client';
12
8
  import { FileCircuitRecorder } from '@aztec/simulator/testing';
13
9
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
14
10
 
15
- import type { PXEServiceConfig } from '../../config/index.js';
16
- import { PXEService } from '../../pxe_service/pxe_service.js';
11
+ import type { PXEConfig } from '../../config/index.js';
12
+ import { PXE } from '../../pxe.js';
17
13
  import { PXE_DATA_SCHEMA_VERSION } from '../../storage/index.js';
18
14
  import type { PXECreationOptions } from '../pxe_creation_options.js';
19
15
 
20
- type PXEConfigWithoutDefaults = Omit<
21
- PXEServiceConfig,
22
- 'l1Contracts' | 'l1ChainId' | 'l2BlockBatchSize' | 'rollupVersion'
23
- >;
16
+ type PXEConfigWithoutDefaults = Omit<PXEConfig, 'l1Contracts' | 'l1ChainId' | 'l2BlockBatchSize' | 'rollupVersion'>;
24
17
 
25
- /**
26
- * Create and start an PXEService instance with the given AztecNode and config.
27
- *
28
- * @param aztecNode - The AztecNode instance to be used by the server.
29
- * @param config - The PXE Service Config to use
30
- * @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
31
- * @returns A Promise that resolves to the started PXEService instance.
32
- */
33
- export function createPXEService(
18
+ export async function createPXE(
34
19
  aztecNode: AztecNode,
35
20
  config: PXEConfigWithoutDefaults,
36
21
  options: PXECreationOptions = { loggers: {} },
37
22
  ) {
38
- const simulator = new WASMSimulator();
39
23
  const recorder = process.env.CIRCUIT_RECORD_DIR
40
24
  ? new FileCircuitRecorder(process.env.CIRCUIT_RECORD_DIR)
41
25
  : new MemoryCircuitRecorder();
42
- const simulatorWithRecorder = new SimulatorRecorderWrapper(simulator, recorder);
43
- return createPXEServiceWithSimulator(aztecNode, simulatorWithRecorder, config, options);
44
- }
26
+ const simulator = new SimulatorRecorderWrapper(new WASMSimulator(), recorder);
45
27
 
46
- /**
47
- * Create and start an PXEService instance with the given AztecNode, Simulator and config.
48
- *
49
- * @param aztecNode - The AztecNode instance to be used by the server.
50
- * @param simulator - The Simulator to use
51
- * @param config - The PXE Service Config to use
52
- * @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
53
- * @returns A Promise that resolves to the started PXEService instance.
54
- */
55
- export async function createPXEServiceWithSimulator(
56
- aztecNode: AztecNode,
57
- simulator: CircuitSimulator,
58
- config: PXEConfigWithoutDefaults,
59
- options: PXECreationOptions = { loggers: {} },
60
- ) {
61
28
  const logSuffix =
62
29
  typeof options.useLogSuffix === 'boolean'
63
30
  ? options.useLogSuffix
@@ -67,7 +34,7 @@ export async function createPXEServiceWithSimulator(
67
34
  const loggers = options.loggers ?? {};
68
35
 
69
36
  const { l1ChainId, l1ContractAddresses: l1Contracts, rollupVersion } = await aztecNode.getNodeInfo();
70
- const configWithContracts: PXEServiceConfig = {
37
+ const configWithContracts: PXEConfig = {
71
38
  ...config,
72
39
  l1Contracts,
73
40
  l1ChainId,
@@ -76,9 +43,6 @@ export async function createPXEServiceWithSimulator(
76
43
  };
77
44
 
78
45
  if (!options.store) {
79
- // TODO once https://github.com/AztecProtocol/aztec-packages/issues/13656 is fixed, we can remove this and always
80
- // import the lmdb-v2 version
81
- const { createStore } = await import('@aztec/kv-store/lmdb-v2');
82
46
  const storeLogger = loggers.store
83
47
  ? loggers.store
84
48
  : createLogger('pxe:data:lmdb' + (logSuffix ? `:${logSuffix}` : ''));
@@ -88,11 +52,17 @@ export async function createPXEServiceWithSimulator(
88
52
  ? loggers.prover
89
53
  : createLogger('pxe:bb:native' + (logSuffix ? `:${logSuffix}` : ''));
90
54
 
91
- const prover = options.prover ?? (await createProver(config, simulator, proverLogger));
55
+ let prover;
56
+ if (options.proverOrOptions instanceof BBPrivateKernelProver) {
57
+ prover = options.proverOrOptions;
58
+ } else {
59
+ prover = new BBBundlePrivateKernelProver(simulator, { ...options.proverOrOptions, logger: proverLogger });
60
+ }
61
+
92
62
  const protocolContractsProvider = new BundledProtocolContractsProvider();
93
63
 
94
64
  const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
95
- const pxe = await PXEService.create(
65
+ const pxe = await PXE.create(
96
66
  aztecNode,
97
67
  options.store,
98
68
  prover,
@@ -103,21 +73,3 @@ export async function createPXEServiceWithSimulator(
103
73
  );
104
74
  return pxe;
105
75
  }
106
-
107
- function createProver(
108
- config: Pick<PXEServiceConfig, 'bbBinaryPath' | 'bbWorkingDirectory'>,
109
- simulator: CircuitSimulator,
110
- logger?: Logger,
111
- ) {
112
- if (!config.bbBinaryPath || !config.bbWorkingDirectory) {
113
- return new BBWASMBundlePrivateKernelProver(simulator, 16, logger);
114
- } else {
115
- const bbConfig = config as Required<Pick<PXEServiceConfig, 'bbBinaryPath' | 'bbWorkingDirectory'>> &
116
- PXEServiceConfig;
117
- return BBNativePrivateKernelProver.new(
118
- { bbSkipCleanup: false, numConcurrentIVCVerifiers: 1, bbIVCConcurrency: 1, ...bbConfig },
119
- simulator,
120
- logger,
121
- );
122
- }
123
- }
@@ -4,7 +4,7 @@ import { FunctionSelector } from '@aztec/stdlib/abi';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  import { type SimulationError, isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
6
6
 
7
- import type { ContractDataProvider } from '../storage/contract_data_provider/contract_data_provider.js';
7
+ import type { ContractDataProvider } from './storage/contract_data_provider/contract_data_provider.js';
8
8
 
9
9
  /**
10
10
  * Adds contract and function names to a simulation error, if they
@@ -76,6 +76,10 @@ export async function enrichPublicSimulationError(
76
76
  const callStack = err.getCallStack();
77
77
  const originalFailingFunction = callStack[callStack.length - 1];
78
78
 
79
+ if (!originalFailingFunction) {
80
+ throw new Error(`Original failing function not found when enriching public simulation, missing callstack`);
81
+ }
82
+
79
83
  const artifact = await contractDataProvider.getPublicFunctionArtifact(originalFailingFunction.contractAddress);
80
84
  if (!artifact) {
81
85
  throw new Error(
@@ -0,0 +1 @@
1
+ export * from './private_event_filter_validator.js';
@@ -0,0 +1,47 @@
1
+ import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
2
+ import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
3
+ import { BlockNumber } from '@aztec/foundation/branded-types';
4
+
5
+ import type { PrivateEventDataProviderFilter, SyncDataProvider } from '../storage/index.js';
6
+
7
+ export class PrivateEventFilterValidator {
8
+ constructor(private syncDataProvider: SyncDataProvider) {}
9
+
10
+ async validate(filter: PrivateEventFilter): Promise<PrivateEventDataProviderFilter> {
11
+ let { fromBlock, toBlock } = filter;
12
+
13
+ // Block range filters in Aztec Node are defined as closed-open intervals [fromBlock, toBlock), so
14
+ // we respect that convention here for consistency.
15
+ // We then default to [INITIAL_L2_BLOCK_NUM, latestKnownBlock + 1), ie: by default return events from
16
+ // the first block to the latest known block.
17
+ if (!fromBlock || !toBlock) {
18
+ const lastKnownBlock = await this.syncDataProvider.getBlockNumber();
19
+ fromBlock = fromBlock ?? BlockNumber(INITIAL_L2_BLOCK_NUM);
20
+ toBlock = toBlock ?? BlockNumber(lastKnownBlock + 1);
21
+ }
22
+
23
+ if (filter.scopes.length === 0) {
24
+ throw new Error('At least one scope is required to get private events');
25
+ }
26
+
27
+ if (fromBlock < 1) {
28
+ throw new Error('fromBlock must be greater than or equal to 1');
29
+ }
30
+
31
+ if (toBlock < 1) {
32
+ throw new Error('toBlock must be greater than or equal to 1');
33
+ }
34
+
35
+ if (fromBlock >= toBlock) {
36
+ throw new Error('toBlock must be strictly greater than fromBlock');
37
+ }
38
+
39
+ return {
40
+ contractAddress: filter.contractAddress,
41
+ scopes: filter.scopes,
42
+ txHash: filter.txHash,
43
+ toBlock,
44
+ fromBlock,
45
+ };
46
+ }
47
+ }
@@ -4,8 +4,8 @@
4
4
  ///
5
5
  /// @dev Whenever a contract function or Noir test is run, the `utilityAssertCompatibleOracleVersion` oracle is called
6
6
  /// and if the oracle version is incompatible an error is thrown.
7
- export const ORACLE_VERSION = 1;
7
+ export const ORACLE_VERSION = 5;
8
8
 
9
9
  /// This hash is computed as by hashing the Oracle interface and it is used to detect when the Oracle interface changes,
10
10
  /// which in turn implies that you need to update the ORACLE_VERSION constant.
11
- export const ORACLE_INTERFACE_HASH = 'b48d38f93eaa084033fc5970bf96e559c33c4cdc07d889ab00b4d63f9590739d';
11
+ export const ORACLE_INTERFACE_HASH = 'd603c17a97034d978ca453d2bce3aacae139539dee28bbc46e8f8c7177a348ec';
@@ -9,7 +9,7 @@ import {
9
9
  } from '@aztec/constants';
10
10
  import { makeTuple } from '@aztec/foundation/array';
11
11
  import { padArrayEnd } from '@aztec/foundation/collection';
12
- import type { Fr } from '@aztec/foundation/fields';
12
+ import type { Fr } from '@aztec/foundation/curves/bn254';
13
13
  import { type Tuple, assertLength } from '@aztec/foundation/serialize';
14
14
  import { MembershipWitness } from '@aztec/foundation/trees';
15
15
  import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
@@ -24,7 +24,6 @@ import {
24
24
  PrivateKernelResetDimensions,
25
25
  PrivateKernelResetHints,
26
26
  type PrivateKernelSimulateOutput,
27
- type ReadRequest,
28
27
  ReadRequestActionEnum,
29
28
  ReadRequestResetActions,
30
29
  type ScopedKeyValidationRequestAndGenerator,
@@ -47,12 +46,10 @@ import type { PrivateKernelOracle } from '../private_kernel_oracle.js';
47
46
 
48
47
  function collectNestedReadRequests<N extends number>(
49
48
  executionStack: PrivateCallExecutionResult[],
50
- extractReadRequests: (execution: PrivateCallExecutionResult) => ClaimedLengthArray<ReadRequest, N>,
49
+ extractReadRequests: (execution: PrivateCallExecutionResult) => ClaimedLengthArray<ScopedReadRequest, N>,
51
50
  ): ScopedReadRequest[] {
52
51
  return collectNested(executionStack, executionResult => {
53
- return extractReadRequests(executionResult)
54
- .getActiveItems()
55
- .map(readRequest => new ScopedReadRequest(readRequest, executionResult.publicInputs.callContext.contractAddress));
52
+ return extractReadRequests(executionResult).getActiveItems();
56
53
  });
57
54
  }
58
55
 
@@ -104,7 +101,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
104
101
  private previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>,
105
102
  private executionStack: PrivateCallExecutionResult[],
106
103
  private noteHashNullifierCounterMap: Map<number, number>,
107
- private validationRequestsSplitCounter: number,
104
+ private splitCounter: number,
108
105
  ) {
109
106
  this.previousKernel = previousKernelOutput.publicInputs;
110
107
  this.requestedDimensions = PrivateKernelResetDimensions.empty();
@@ -206,7 +203,6 @@ export class PrivateKernelResetPrivateInputsBuilder {
206
203
  oracle,
207
204
  ),
208
205
  this.transientDataSquashingHints,
209
- this.validationRequestsSplitCounter,
210
206
  ),
211
207
  dimensions,
212
208
  );
@@ -403,7 +399,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
403
399
  futureNoteHashReads,
404
400
  futureNullifierReads,
405
401
  this.noteHashNullifierCounterMap,
406
- this.validationRequestsSplitCounter,
402
+ this.splitCounter,
407
403
  );
408
404
 
409
405
  if (this.nextIteration && !numTransientData) {
@@ -31,8 +31,8 @@ export function computeTxIncludeByTimestamp(
31
31
  );
32
32
  }
33
33
 
34
- const blockTimestamp = previousKernel.constants.historicalHeader.globalVariables.timestamp;
35
- const maxTimestamp = blockTimestamp + BigInt(maxDuration);
34
+ const anchorBlockTimestamp = previousKernel.constants.anchorBlockHeader.globalVariables.timestamp;
35
+ const maxTimestamp = anchorBlockTimestamp + BigInt(maxDuration);
36
36
  const includeByTimestamp = previousKernel.includeByTimestamp;
37
37
 
38
38
  // If the includeByTimestamp set during the tx execution is greater than or equal to the max allowed duration,
@@ -44,13 +44,13 @@ export function computeTxIncludeByTimestamp(
44
44
 
45
45
  // Round it down to the nearest hour/min/second to reduce precision and avoid revealing the exact value.
46
46
  // This makes it harder for others to infer what function calls may have been used to produce a specific timestamp.
47
- const roundedTimestamp = roundTimestamp(blockTimestamp, includeByTimestamp);
47
+ const roundedTimestamp = roundTimestamp(anchorBlockTimestamp, includeByTimestamp);
48
48
 
49
- // The tx can't be published if the timestamp is the same or less than the historical block's timestamp.
49
+ // The tx can't be published if the timestamp is the same or less than the anchor block's timestamp.
50
50
  // Future blocks will have a greater timestamp, so the tx would never be included.
51
- if (roundedTimestamp <= blockTimestamp) {
51
+ if (roundedTimestamp <= anchorBlockTimestamp) {
52
52
  throw new Error(
53
- `Include-by timestamp must be greater than the historical block timestamp. Block timestamp: ${blockTimestamp}. Include-by timestamp: ${includeByTimestamp}.`,
53
+ `Include-by timestamp must be greater than the anchor block timestamp. Anchor block timestamp: ${anchorBlockTimestamp}. Include-by timestamp: ${includeByTimestamp}.`,
54
54
  );
55
55
  }
56
56