@aztec/pxe 0.0.0-test.0

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 (182) hide show
  1. package/README.md +13 -0
  2. package/dest/bin/index.d.ts +3 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +28 -0
  5. package/dest/config/index.d.ts +48 -0
  6. package/dest/config/index.d.ts.map +1 -0
  7. package/dest/config/index.js +74 -0
  8. package/dest/config/package_info.d.ts +5 -0
  9. package/dest/config/package_info.d.ts.map +1 -0
  10. package/dest/config/package_info.js +6 -0
  11. package/dest/entrypoints/client/bundle/index.d.ts +6 -0
  12. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -0
  13. package/dest/entrypoints/client/bundle/index.js +5 -0
  14. package/dest/entrypoints/client/bundle/utils.d.ts +16 -0
  15. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -0
  16. package/dest/entrypoints/client/bundle/utils.js +30 -0
  17. package/dest/entrypoints/client/lazy/index.d.ts +6 -0
  18. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -0
  19. package/dest/entrypoints/client/lazy/index.js +5 -0
  20. package/dest/entrypoints/client/lazy/utils.d.ts +15 -0
  21. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -0
  22. package/dest/entrypoints/client/lazy/utils.js +29 -0
  23. package/dest/entrypoints/client/pxe_creation_options.d.ts +11 -0
  24. package/dest/entrypoints/client/pxe_creation_options.d.ts.map +1 -0
  25. package/dest/entrypoints/client/pxe_creation_options.js +1 -0
  26. package/dest/entrypoints/server/index.d.ts +7 -0
  27. package/dest/entrypoints/server/index.d.ts.map +1 -0
  28. package/dest/entrypoints/server/index.js +6 -0
  29. package/dest/entrypoints/server/utils.d.ts +16 -0
  30. package/dest/entrypoints/server/utils.d.ts.map +1 -0
  31. package/dest/entrypoints/server/utils.js +45 -0
  32. package/dest/kernel_oracle/index.d.ts +45 -0
  33. package/dest/kernel_oracle/index.d.ts.map +1 -0
  34. package/dest/kernel_oracle/index.js +76 -0
  35. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts +28 -0
  36. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -0
  37. package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +270 -0
  38. package/dest/kernel_prover/hints/index.d.ts +2 -0
  39. package/dest/kernel_prover/hints/index.d.ts.map +1 -0
  40. package/dest/kernel_prover/hints/index.js +1 -0
  41. package/dest/kernel_prover/index.d.ts +3 -0
  42. package/dest/kernel_prover/index.d.ts.map +1 -0
  43. package/dest/kernel_prover/index.js +2 -0
  44. package/dest/kernel_prover/kernel_prover.d.ts +38 -0
  45. package/dest/kernel_prover/kernel_prover.d.ts.map +1 -0
  46. package/dest/kernel_prover/kernel_prover.js +217 -0
  47. package/dest/kernel_prover/proving_data_oracle.d.ts +73 -0
  48. package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -0
  49. package/dest/kernel_prover/proving_data_oracle.js +4 -0
  50. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +11 -0
  51. package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +1 -0
  52. package/dest/note_decryption_utils/add_public_values_to_payload.js +47 -0
  53. package/dest/pxe_http/index.d.ts +2 -0
  54. package/dest/pxe_http/index.d.ts.map +1 -0
  55. package/dest/pxe_http/index.js +1 -0
  56. package/dest/pxe_http/pxe_http_server.d.ts +16 -0
  57. package/dest/pxe_http/pxe_http_server.d.ts.map +1 -0
  58. package/dest/pxe_http/pxe_http_server.js +27 -0
  59. package/dest/pxe_oracle_interface/index.d.ts +159 -0
  60. package/dest/pxe_oracle_interface/index.d.ts.map +1 -0
  61. package/dest/pxe_oracle_interface/index.js +692 -0
  62. package/dest/pxe_oracle_interface/tagging_utils.d.ts +17 -0
  63. package/dest/pxe_oracle_interface/tagging_utils.d.ts.map +1 -0
  64. package/dest/pxe_oracle_interface/tagging_utils.js +23 -0
  65. package/dest/pxe_service/error_enriching.d.ts +11 -0
  66. package/dest/pxe_service/error_enriching.d.ts.map +1 -0
  67. package/dest/pxe_service/error_enriching.js +69 -0
  68. package/dest/pxe_service/index.d.ts +3 -0
  69. package/dest/pxe_service/index.d.ts.map +1 -0
  70. package/dest/pxe_service/index.js +2 -0
  71. package/dest/pxe_service/pxe_service.d.ts +111 -0
  72. package/dest/pxe_service/pxe_service.d.ts.map +1 -0
  73. package/dest/pxe_service/pxe_service.js +664 -0
  74. package/dest/storage/address_data_provider/address_data_provider.d.ts +13 -0
  75. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -0
  76. package/dest/storage/address_data_provider/address_data_provider.js +50 -0
  77. package/dest/storage/address_data_provider/index.d.ts +2 -0
  78. package/dest/storage/address_data_provider/index.d.ts.map +1 -0
  79. package/dest/storage/address_data_provider/index.js +1 -0
  80. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts +11 -0
  81. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts.map +1 -0
  82. package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.js +20 -0
  83. package/dest/storage/auth_witness_data_provider/index.d.ts +2 -0
  84. package/dest/storage/auth_witness_data_provider/index.d.ts.map +1 -0
  85. package/dest/storage/auth_witness_data_provider/index.js +1 -0
  86. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +16 -0
  87. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -0
  88. package/dest/storage/capsule_data_provider/capsule_data_provider.js +57 -0
  89. package/dest/storage/capsule_data_provider/index.d.ts +2 -0
  90. package/dest/storage/capsule_data_provider/index.d.ts.map +1 -0
  91. package/dest/storage/capsule_data_provider/index.js +1 -0
  92. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +109 -0
  93. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -0
  94. package/dest/storage/contract_data_provider/contract_data_provider.js +183 -0
  95. package/dest/storage/contract_data_provider/index.d.ts +3 -0
  96. package/dest/storage/contract_data_provider/index.d.ts.map +1 -0
  97. package/dest/storage/contract_data_provider/index.js +2 -0
  98. package/dest/storage/contract_data_provider/private_functions_tree.d.ts +66 -0
  99. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -0
  100. package/dest/storage/contract_data_provider/private_functions_tree.js +99 -0
  101. package/dest/storage/data_provider.d.ts +4 -0
  102. package/dest/storage/data_provider.d.ts.map +1 -0
  103. package/dest/storage/data_provider.js +1 -0
  104. package/dest/storage/index.d.ts +10 -0
  105. package/dest/storage/index.d.ts.map +1 -0
  106. package/dest/storage/index.js +9 -0
  107. package/dest/storage/note_data_provider/index.d.ts +3 -0
  108. package/dest/storage/note_data_provider/index.d.ts.map +1 -0
  109. package/dest/storage/note_data_provider/index.js +2 -0
  110. package/dest/storage/note_data_provider/note_dao.d.ts +106 -0
  111. package/dest/storage/note_data_provider/note_dao.d.ts.map +1 -0
  112. package/dest/storage/note_data_provider/note_dao.js +106 -0
  113. package/dest/storage/note_data_provider/note_data_provider.d.ts +20 -0
  114. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -0
  115. package/dest/storage/note_data_provider/note_data_provider.js +249 -0
  116. package/dest/storage/sync_data_provider/index.d.ts +2 -0
  117. package/dest/storage/sync_data_provider/index.d.ts.map +1 -0
  118. package/dest/storage/sync_data_provider/index.js +1 -0
  119. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +12 -0
  120. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -0
  121. package/dest/storage/sync_data_provider/sync_data_provider.js +29 -0
  122. package/dest/storage/tagging_data_provider/index.d.ts +2 -0
  123. package/dest/storage/tagging_data_provider/index.d.ts.map +1 -0
  124. package/dest/storage/tagging_data_provider/index.js +1 -0
  125. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +18 -0
  126. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -0
  127. package/dest/storage/tagging_data_provider/tagging_data_provider.js +65 -0
  128. package/dest/synchronizer/index.d.ts +2 -0
  129. package/dest/synchronizer/index.d.ts.map +1 -0
  130. package/dest/synchronizer/index.js +1 -0
  131. package/dest/synchronizer/synchronizer.d.ts +37 -0
  132. package/dest/synchronizer/synchronizer.d.ts.map +1 -0
  133. package/dest/synchronizer/synchronizer.js +103 -0
  134. package/dest/test/pxe_test_suite.d.ts +3 -0
  135. package/dest/test/pxe_test_suite.d.ts.map +1 -0
  136. package/dest/test/pxe_test_suite.js +97 -0
  137. package/package.json +105 -0
  138. package/src/bin/index.ts +38 -0
  139. package/src/config/index.ts +124 -0
  140. package/src/config/package_info.ts +3 -0
  141. package/src/entrypoints/client/bundle/index.ts +5 -0
  142. package/src/entrypoints/client/bundle/utils.ts +58 -0
  143. package/src/entrypoints/client/lazy/index.ts +5 -0
  144. package/src/entrypoints/client/lazy/utils.ts +53 -0
  145. package/src/entrypoints/client/pxe_creation_options.ts +7 -0
  146. package/src/entrypoints/server/index.ts +6 -0
  147. package/src/entrypoints/server/utils.ts +71 -0
  148. package/src/kernel_oracle/index.ts +117 -0
  149. package/src/kernel_prover/hints/build_private_kernel_reset_private_inputs.ts +472 -0
  150. package/src/kernel_prover/hints/index.ts +1 -0
  151. package/src/kernel_prover/index.ts +2 -0
  152. package/src/kernel_prover/kernel_prover.ts +351 -0
  153. package/src/kernel_prover/proving_data_oracle.ts +83 -0
  154. package/src/note_decryption_utils/add_public_values_to_payload.ts +64 -0
  155. package/src/pxe_http/index.ts +1 -0
  156. package/src/pxe_http/pxe_http_server.ts +29 -0
  157. package/src/pxe_oracle_interface/index.ts +925 -0
  158. package/src/pxe_oracle_interface/tagging_utils.ts +32 -0
  159. package/src/pxe_service/error_enriching.ts +106 -0
  160. package/src/pxe_service/index.ts +2 -0
  161. package/src/pxe_service/pxe_service.ts +949 -0
  162. package/src/storage/address_data_provider/address_data_provider.ts +71 -0
  163. package/src/storage/address_data_provider/index.ts +1 -0
  164. package/src/storage/auth_witness_data_provider/auth_witness_data_provider.ts +34 -0
  165. package/src/storage/auth_witness_data_provider/index.ts +1 -0
  166. package/src/storage/capsule_data_provider/capsule_data_provider.ts +80 -0
  167. package/src/storage/capsule_data_provider/index.ts +1 -0
  168. package/src/storage/contract_data_provider/contract_data_provider.ts +261 -0
  169. package/src/storage/contract_data_provider/index.ts +2 -0
  170. package/src/storage/contract_data_provider/private_functions_tree.ts +131 -0
  171. package/src/storage/data_provider.ts +3 -0
  172. package/src/storage/index.ts +10 -0
  173. package/src/storage/note_data_provider/index.ts +2 -0
  174. package/src/storage/note_data_provider/note_dao.ts +162 -0
  175. package/src/storage/note_data_provider/note_data_provider.ts +345 -0
  176. package/src/storage/sync_data_provider/index.ts +1 -0
  177. package/src/storage/sync_data_provider/sync_data_provider.ts +40 -0
  178. package/src/storage/tagging_data_provider/index.ts +1 -0
  179. package/src/storage/tagging_data_provider/tagging_data_provider.ts +92 -0
  180. package/src/synchronizer/index.ts +1 -0
  181. package/src/synchronizer/synchronizer.ts +121 -0
  182. package/src/test/pxe_test_suite.ts +111 -0
package/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # PXE Service & PXE
2
+
3
+ `PXE Service` (pronounced "pixie service") is a server-side software that provides a set of apis for interacting with the Aztec network. It acts as a bridge between the network and client applications by exposing methods to manage accounts, deploy contracts, create transactions, and retrieve public and account-specific information. It provides a secure environment for the execution of sensitive operations, ensuring private information and decrypted data are not accessible to unauthorized applications. The PXE Service is a critical component of the Aztec network, and its security and reliability are essential to the overall trustworthiness of user's data.
4
+
5
+ `PXE` is the interface the PXE Service and every client-side instance implement. Various implementations of the client-side can exist, including those for different platforms such as mobile apps and web browsers. It is a relay between the dApps and the actual PXE Service.
6
+
7
+ ### Main Components in an PXE Service
8
+
9
+ - [Simulator](../simulator/)
10
+ - [Key Store](../key-store/)
11
+ - [Account State](./src/account_state/account_state.ts): It coordinates other components to synchronize and decrypt data, simulate transactions, and generate kernel proofs, for a specific account.
12
+
13
+ ![Pixie](./pixie.png)
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node --no-warnings
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env -S node --no-warnings
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
4
+ import { getPXEServiceConfig } from '../config/index.js';
5
+ import { createPXEService } from '../entrypoints/server/utils.js';
6
+ import { startPXEHttpServer } from '../pxe_http/index.js';
7
+ const { PXE_PORT = 8080, AZTEC_NODE_URL = 'http://localhost:8079' } = process.env;
8
+ const logger = createLogger('pxe:service');
9
+ /**
10
+ * Create and start a new PXE HTTP Server
11
+ */ async function main() {
12
+ logger.info(`Setting up PXE...`);
13
+ const pxeConfig = getPXEServiceConfig();
14
+ const nodeRpcClient = createAztecNodeClient(AZTEC_NODE_URL, {});
15
+ const pxeService = await createPXEService(nodeRpcClient, pxeConfig);
16
+ const shutdown = ()=>{
17
+ logger.info('Shutting down...');
18
+ process.exit(0);
19
+ };
20
+ process.once('SIGINT', shutdown);
21
+ process.once('SIGTERM', shutdown);
22
+ startPXEHttpServer(pxeService, PXE_PORT);
23
+ logger.info(`PXE listening on port ${PXE_PORT}`);
24
+ }
25
+ main().catch((err)=>{
26
+ logger.error(err);
27
+ process.exit(1);
28
+ });
@@ -0,0 +1,48 @@
1
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
2
+ import { type DataStoreConfig } from '@aztec/kv-store/config';
3
+ import { type ChainConfig } from '@aztec/stdlib/config';
4
+ import type { Network } from '@aztec/stdlib/network';
5
+ export { getPackageInfo } from './package_info.js';
6
+ /**
7
+ * Temporary configuration until WASM can be used instead of native
8
+ */
9
+ export interface BBProverConfig {
10
+ bbWorkingDirectory?: string;
11
+ bbBinaryPath?: string;
12
+ bbSkipCleanup?: boolean;
13
+ }
14
+ /**
15
+ * Configuration settings for the prover factory
16
+ */
17
+ export interface KernelProverConfig {
18
+ /** Whether we are running with real proofs */
19
+ proverEnabled?: boolean;
20
+ }
21
+ /**
22
+ * Configuration settings for the PXE.
23
+ */
24
+ export interface PXEConfig {
25
+ /** L2 block to start scanning from for new accounts */
26
+ l2StartingBlock: number;
27
+ }
28
+ export type PXEServiceConfig = PXEConfig & KernelProverConfig & BBProverConfig & DataStoreConfig & ChainConfig;
29
+ export type CliPXEOptions = {
30
+ /** External Aztec network to connect to. e.g. devnet */
31
+ network?: Network;
32
+ /** API Key required by the external network's node */
33
+ apiKey?: string;
34
+ /** Custom Aztec Node URL to connect to */
35
+ nodeUrl?: string;
36
+ };
37
+ export declare const pxeConfigMappings: ConfigMappingsType<PXEServiceConfig>;
38
+ /**
39
+ * Creates an instance of PXEServiceConfig out of environment variables using sensible defaults for integration testing if not set.
40
+ */
41
+ export declare function getPXEServiceConfig(): PXEServiceConfig;
42
+ export declare const pxeCliConfigMappings: ConfigMappingsType<CliPXEOptions>;
43
+ export declare const allPxeConfigMappings: ConfigMappingsType<CliPXEOptions & PXEServiceConfig>;
44
+ /**
45
+ * Creates an instance of CliPxeOptions out of environment variables
46
+ */
47
+ export declare function getCliPXEOptions(): CliPXEOptions & PXEServiceConfig;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,CAAC;AAE/G,MAAM,MAAM,aAAa,GAAG;IAC1B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,gBAAgB,CA0BlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,CAclE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,GAAG,gBAAgB,CAUrF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,gBAAgB,CAQnE"}
@@ -0,0 +1,74 @@
1
+ import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
+ import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, parseBooleanEnv } from '@aztec/foundation/config';
3
+ import { dataConfigMappings } from '@aztec/kv-store/config';
4
+ import { chainConfigMappings } from '@aztec/stdlib/config';
5
+ export { getPackageInfo } from './package_info.js';
6
+ export const pxeConfigMappings = {
7
+ ...dataConfigMappings,
8
+ ...chainConfigMappings,
9
+ l2StartingBlock: {
10
+ env: 'PXE_L2_STARTING_BLOCK',
11
+ ...numberConfigHelper(INITIAL_L2_BLOCK_NUM),
12
+ description: 'L2 block to start scanning from for new accounts'
13
+ },
14
+ bbBinaryPath: {
15
+ env: 'BB_BINARY_PATH',
16
+ description: 'Path to the BB binary'
17
+ },
18
+ bbWorkingDirectory: {
19
+ env: 'BB_WORKING_DIRECTORY',
20
+ description: 'Working directory for the BB binary'
21
+ },
22
+ bbSkipCleanup: {
23
+ env: 'BB_SKIP_CLEANUP',
24
+ description: 'True to skip cleanup of temporary files for debugging purposes',
25
+ ...booleanConfigHelper()
26
+ },
27
+ proverEnabled: {
28
+ env: 'PXE_PROVER_ENABLED',
29
+ description: 'Enable real proofs',
30
+ ...booleanConfigHelper()
31
+ }
32
+ };
33
+ /**
34
+ * Creates an instance of PXEServiceConfig out of environment variables using sensible defaults for integration testing if not set.
35
+ */ export function getPXEServiceConfig() {
36
+ return getConfigFromMappings(pxeConfigMappings);
37
+ }
38
+ export const pxeCliConfigMappings = {
39
+ network: {
40
+ env: 'NETWORK',
41
+ parseEnv: (val)=>val,
42
+ description: 'External Aztec network to connect to. e.g. devnet'
43
+ },
44
+ apiKey: {
45
+ env: 'API_KEY',
46
+ description: "API Key required by the external network's node"
47
+ },
48
+ nodeUrl: {
49
+ env: 'AZTEC_NODE_URL',
50
+ description: 'Custom Aztec Node URL to connect to'
51
+ }
52
+ };
53
+ export const allPxeConfigMappings = {
54
+ ...pxeConfigMappings,
55
+ ...pxeCliConfigMappings,
56
+ ...dataConfigMappings,
57
+ proverEnabled: {
58
+ env: 'PXE_PROVER_ENABLED',
59
+ parseEnv: (val)=>parseBooleanEnv(val) || !!process.env.NETWORK,
60
+ description: 'Enable real proofs',
61
+ isBoolean: true
62
+ }
63
+ };
64
+ /**
65
+ * Creates an instance of CliPxeOptions out of environment variables
66
+ */ export function getCliPXEOptions() {
67
+ const pxeConfig = getPXEServiceConfig();
68
+ const cliOptions = getConfigFromMappings(pxeCliConfigMappings);
69
+ return {
70
+ ...pxeConfig,
71
+ ...cliOptions,
72
+ proverEnabled: pxeConfig.proverEnabled || !!cliOptions.network
73
+ };
74
+ }
@@ -0,0 +1,5 @@
1
+ export declare function getPackageInfo(): {
2
+ version: string;
3
+ name: string;
4
+ };
5
+ //# sourceMappingURL=package_info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package_info.d.ts","sourceRoot":"","sources":["../../src/config/package_info.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc;;;EAE7B"}
@@ -0,0 +1,6 @@
1
+ export function getPackageInfo() {
2
+ return {
3
+ version: '0.1.0',
4
+ name: '@aztec/pxe'
5
+ };
6
+ }
@@ -0,0 +1,6 @@
1
+ export * from '../../../pxe_service/index.js';
2
+ export * from '../../../config/index.js';
3
+ export * from '../../../storage/index.js';
4
+ export * from './utils.js';
5
+ export { PXEOracleInterface } from '../../../pxe_oracle_interface/index.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from '../../../pxe_service/index.js';
2
+ export * from '../../../config/index.js';
3
+ export * from '../../../storage/index.js';
4
+ export * from './utils.js';
5
+ export { PXEOracleInterface } from '../../../pxe_oracle_interface/index.js';
@@ -0,0 +1,16 @@
1
+ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
2
+ import type { PXEServiceConfig } from '../../../config/index.js';
3
+ import { PXEService } from '../../../pxe_service/pxe_service.js';
4
+ import type { PXECreationOptions } from '../pxe_creation_options.js';
5
+ /**
6
+ * Create and start an PXEService instance with the given AztecNode.
7
+ * If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
8
+ * Returns a Promise that resolves to the started PXEService instance.
9
+ *
10
+ * @param aztecNode - The AztecNode instance to be used by the server.
11
+ * @param config - The PXE Service Config to use
12
+ * @param options - (Optional) Optional information for creating an PXEService.
13
+ * @returns A Promise that resolves to the started PXEService instance.
14
+ */
15
+ export declare function createPXEService(aztecNode: AztecNode, config: PXEServiceConfig, options?: PXECreationOptions): Promise<PXEService>;
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,kBAAoC,uBAiC9C"}
@@ -0,0 +1,30 @@
1
+ import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/wasm/bundle';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { createStore } from '@aztec/kv-store/indexeddb';
4
+ import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
5
+ import { WASMSimulator } from '@aztec/simulator/client';
6
+ import { PXEService } from '../../../pxe_service/pxe_service.js';
7
+ /**
8
+ * Create and start an PXEService instance with the given AztecNode.
9
+ * If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
10
+ * Returns a Promise that resolves to the started PXEService instance.
11
+ *
12
+ * @param aztecNode - The AztecNode instance to be used by the server.
13
+ * @param config - The PXE Service Config to use
14
+ * @param options - (Optional) Optional information for creating an PXEService.
15
+ * @returns A Promise that resolves to the started PXEService instance.
16
+ */ export async function createPXEService(aztecNode, config, options = {
17
+ loggers: {}
18
+ }) {
19
+ const l1Contracts = await aztecNode.getL1ContractAddresses();
20
+ const configWithContracts = {
21
+ ...config,
22
+ l1Contracts
23
+ };
24
+ const store = await createStore('pxe_data', configWithContracts, options.loggers.store ?? createLogger('pxe:data:indexeddb'));
25
+ const simulationProvider = new WASMSimulator();
26
+ const prover = options.prover ?? new BBWASMBundlePrivateKernelProver(simulationProvider, 16, options.loggers.prover ?? createLogger('bb:wasm:bundle'));
27
+ const protocolContractsProvider = new BundledProtocolContractsProvider();
28
+ const pxe = await PXEService.create(aztecNode, store, prover, simulationProvider, protocolContractsProvider, config, options.loggers.pxe ?? createLogger('pxe:service'));
29
+ return pxe;
30
+ }
@@ -0,0 +1,6 @@
1
+ export * from '../../../pxe_service/index.js';
2
+ export * from '../../../config/index.js';
3
+ export * from '../../../storage/index.js';
4
+ export * from './utils.js';
5
+ export { PXEOracleInterface } from '../../../pxe_oracle_interface/index.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from '../../../pxe_service/index.js';
2
+ export * from '../../../config/index.js';
3
+ export * from '../../../storage/index.js';
4
+ export * from './utils.js';
5
+ export { PXEOracleInterface } from '../../../pxe_oracle_interface/index.js';
@@ -0,0 +1,15 @@
1
+ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
2
+ import type { PXEServiceConfig } from '../../../config/index.js';
3
+ import { PXEService } from '../../../pxe_service/pxe_service.js';
4
+ import type { PXECreationOptions } from '../pxe_creation_options.js';
5
+ /**
6
+ * Create and start an PXEService instance with the given AztecNode.
7
+ * Returns a Promise that resolves to the started PXEService instance.
8
+ *
9
+ * @param aztecNode - The AztecNode instance to be used by the server.
10
+ * @param config - The PXE Service Config to use
11
+ * @param
12
+ * @returns A Promise that resolves to the started PXEService instance.
13
+ */
14
+ export declare function createPXEService(aztecNode: AztecNode, config: PXEServiceConfig, options?: PXECreationOptions): Promise<PXEService>;
15
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,kBAAoC,uBA6B9C"}
@@ -0,0 +1,29 @@
1
+ import { BBWASMLazyPrivateKernelProver } from '@aztec/bb-prover/wasm/lazy';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { createStore } from '@aztec/kv-store/indexeddb';
4
+ import { LazyProtocolContractsProvider } from '@aztec/protocol-contracts/providers/lazy';
5
+ import { WASMSimulator } from '@aztec/simulator/client';
6
+ import { PXEService } from '../../../pxe_service/pxe_service.js';
7
+ /**
8
+ * Create and start an PXEService instance with the given AztecNode.
9
+ * Returns a Promise that resolves to the started PXEService instance.
10
+ *
11
+ * @param aztecNode - The AztecNode instance to be used by the server.
12
+ * @param config - The PXE Service Config to use
13
+ * @param
14
+ * @returns A Promise that resolves to the started PXEService instance.
15
+ */ export async function createPXEService(aztecNode, config, options = {
16
+ loggers: {}
17
+ }) {
18
+ const l1Contracts = await aztecNode.getL1ContractAddresses();
19
+ const configWithContracts = {
20
+ ...config,
21
+ l1Contracts
22
+ };
23
+ const store = await createStore('pxe_data', configWithContracts, options.loggers.store ?? createLogger('pxe:data:indexeddb'));
24
+ const simulationProvider = new WASMSimulator();
25
+ const prover = options.prover ?? new BBWASMLazyPrivateKernelProver(simulationProvider, 16, options.loggers.prover ?? createLogger('bb:wasm:lazy'));
26
+ const protocolContractsProvider = new LazyProtocolContractsProvider();
27
+ const pxe = await PXEService.create(aztecNode, store, prover, simulationProvider, protocolContractsProvider, config, options.loggers.pxe ?? createLogger('pxe:service'));
28
+ return pxe;
29
+ }
@@ -0,0 +1,11 @@
1
+ import type { Logger } from '@aztec/foundation/log';
2
+ import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
3
+ export type PXECreationOptions = {
4
+ loggers: {
5
+ store?: Logger;
6
+ pxe?: Logger;
7
+ prover?: Logger;
8
+ };
9
+ prover?: PrivateKernelProver;
10
+ };
11
+ //# sourceMappingURL=pxe_creation_options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pxe_creation_options.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/client/pxe_creation_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,CAAC"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,7 @@
1
+ export * from '../../pxe_service/index.js';
2
+ export * from '../../pxe_http/index.js';
3
+ export * from '../../config/index.js';
4
+ export * from '../../storage/index.js';
5
+ export * from './utils.js';
6
+ export { PXEOracleInterface } from '../../pxe_oracle_interface/index.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from '../../pxe_service/index.js';
2
+ export * from '../../pxe_http/index.js';
3
+ export * from '../../config/index.js';
4
+ export * from '../../storage/index.js';
5
+ export * from './utils.js';
6
+ export { PXEOracleInterface } from '../../pxe_oracle_interface/index.js';
@@ -0,0 +1,16 @@
1
+ import type { AztecNode, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
2
+ import type { PXEServiceConfig } from '../../config/index.js';
3
+ import { PXEService } from '../../pxe_service/pxe_service.js';
4
+ /**
5
+ * Create and start an PXEService instance with the given AztecNode.
6
+ * If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
7
+ * Returns a Promise that resolves to the started PXEService instance.
8
+ *
9
+ * @param aztecNode - The AztecNode instance to be used by the server.
10
+ * @param config - The PXE Service Config to use
11
+ * @param useLogSuffix - (Optional) Log suffix for PXE's logger.
12
+ * @param proofCreator - An optional proof creator to use in place of any other configuration
13
+ * @returns A Promise that resolves to the started PXEService instance.
14
+ */
15
+ export declare function createPXEService(aztecNode: AztecNode, config: PXEServiceConfig, useLogSuffix?: string | boolean | undefined, proofCreator?: PrivateKernelProver): Promise<PXEService>;
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,EACtD,YAAY,CAAC,EAAE,mBAAmB,uBA+BnC"}
@@ -0,0 +1,45 @@
1
+ import { BBNativePrivateKernelProver } from '@aztec/bb-prover';
2
+ import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/wasm/bundle';
3
+ import { randomBytes } from '@aztec/foundation/crypto';
4
+ import { createLogger } from '@aztec/foundation/log';
5
+ import { createStore } from '@aztec/kv-store/lmdb-v2';
6
+ import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
7
+ import { WASMSimulator } from '@aztec/simulator/client';
8
+ import { PXEService } from '../../pxe_service/pxe_service.js';
9
+ import { PXE_DATA_SCHEMA_VERSION } from './index.js';
10
+ /**
11
+ * Create and start an PXEService instance with the given AztecNode.
12
+ * If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
13
+ * Returns a Promise that resolves to the started PXEService instance.
14
+ *
15
+ * @param aztecNode - The AztecNode instance to be used by the server.
16
+ * @param config - The PXE Service Config to use
17
+ * @param useLogSuffix - (Optional) Log suffix for PXE's logger.
18
+ * @param proofCreator - An optional proof creator to use in place of any other configuration
19
+ * @returns A Promise that resolves to the started PXEService instance.
20
+ */ export async function createPXEService(aztecNode, config, useLogSuffix = undefined, proofCreator) {
21
+ const logSuffix = typeof useLogSuffix === 'boolean' ? useLogSuffix ? randomBytes(3).toString('hex') : undefined : useLogSuffix;
22
+ const l1Contracts = await aztecNode.getL1ContractAddresses();
23
+ const configWithContracts = {
24
+ ...config,
25
+ l1Contracts
26
+ };
27
+ const store = await createStore('pxe_data', PXE_DATA_SCHEMA_VERSION, configWithContracts, createLogger('pxe:data:lmdb'));
28
+ const simulationProvider = new WASMSimulator();
29
+ const prover = proofCreator ?? await createProver(config, simulationProvider, logSuffix);
30
+ const protocolContractsProvider = new BundledProtocolContractsProvider();
31
+ const pxe = await PXEService.create(aztecNode, store, prover, simulationProvider, protocolContractsProvider, config, logSuffix);
32
+ return pxe;
33
+ }
34
+ function createProver(config, simulationProvider, logSuffix) {
35
+ if (!config.bbBinaryPath || !config.bbWorkingDirectory) {
36
+ return new BBWASMBundlePrivateKernelProver(simulationProvider, 16);
37
+ } else {
38
+ const bbConfig = config;
39
+ const log = createLogger('pxe:bb-native-prover' + (logSuffix ? `:${logSuffix}` : ''));
40
+ return BBNativePrivateKernelProver.new({
41
+ bbSkipCleanup: false,
42
+ ...bbConfig
43
+ }, simulationProvider, log);
44
+ }
45
+ }
@@ -0,0 +1,45 @@
1
+ import { type NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
2
+ import type { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
3
+ import { MembershipWitness } from '@aztec/foundation/trees';
4
+ import type { KeyStore } from '@aztec/key-store';
5
+ import type { FunctionSelector } from '@aztec/stdlib/abi';
6
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
7
+ import type { L2BlockNumber } from '@aztec/stdlib/block';
8
+ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
9
+ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
10
+ import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
11
+ import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
12
+ import type { ContractDataProvider } from '../storage/contract_data_provider/contract_data_provider.js';
13
+ import type { ProvingDataOracle } from './../kernel_prover/proving_data_oracle.js';
14
+ /**
15
+ * A data oracle that provides information needed for simulating a transaction.
16
+ */
17
+ export declare class KernelOracle implements ProvingDataOracle {
18
+ private contractDataProvider;
19
+ private keyStore;
20
+ private node;
21
+ private blockNumber;
22
+ private log;
23
+ constructor(contractDataProvider: ContractDataProvider, keyStore: KeyStore, node: AztecNode, blockNumber?: L2BlockNumber, log?: import("@aztec/foundation/log").Logger);
24
+ getContractAddressPreimage(address: AztecAddress): Promise<{
25
+ version: 1;
26
+ salt: Fr;
27
+ deployer: AztecAddress;
28
+ currentContractClassId: Fr;
29
+ originalContractClassId: Fr;
30
+ initializationHash: Fr;
31
+ publicKeys: import("@aztec/aztec.js").PublicKeys;
32
+ address: AztecAddress;
33
+ saltedInitializationHash: Fr;
34
+ }>;
35
+ getContractClassIdPreimage(contractClassId: Fr): Promise<import("@aztec/stdlib/contract").ContractClassIdPreimage>;
36
+ getFunctionMembershipWitness(contractClassId: Fr, selector: FunctionSelector): Promise<MembershipWitness<5>>;
37
+ getVkMembershipWitness(vk: VerificationKeyAsFields): Promise<MembershipWitness<6>>;
38
+ getNoteHashMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
39
+ getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
40
+ getNoteHashTreeRoot(): Promise<Fr>;
41
+ getMasterSecretKey(masterPublicKey: Point): Promise<GrumpkinScalar>;
42
+ getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string>;
43
+ getUpdatedClassIdHints(contractAddress: AztecAddress): Promise<UpdatedClassIdHints>;
44
+ }
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel_oracle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAA2C,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AACxG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAInF;;GAEG;AACH,qBAAa,YAAa,YAAW,iBAAiB;IAElD,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;gBAJH,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,EACf,WAAW,GAAE,aAAwB,EACrC,GAAG,yCAAoC;IAGpC,0BAA0B,CAAC,OAAO,EAAE,YAAY;;;;;;;;;;;IAQhD,0BAA0B,CAAC,eAAe,EAAE,EAAE;IAK9C,4BAA4B,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB;IAIlF,sBAAsB,CAAC,EAAE,EAAE,uBAAuB;IAKnD,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAS/G,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IAIvF,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC;IAQjC,kBAAkB,CAAC,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IAInE,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1F,sBAAsB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA6BjG"}
@@ -0,0 +1,76 @@
1
+ import { PUBLIC_DATA_TREE_HEIGHT, VK_TREE_HEIGHT } from '@aztec/constants';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { MembershipWitness } from '@aztec/foundation/trees';
4
+ import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
5
+ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
6
+ import { computeContractClassIdPreimage, computeSaltedInitializationHash } from '@aztec/stdlib/contract';
7
+ import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
8
+ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
9
+ import { SharedMutableValues, SharedMutableValuesWithHash } from '@aztec/stdlib/shared-mutable';
10
+ // TODO: Block number should not be "latest".
11
+ // It should be fixed at the time the proof is being simulated. I.e., it should be the same as the value defined in the constant data.
12
+ /**
13
+ * A data oracle that provides information needed for simulating a transaction.
14
+ */ export class KernelOracle {
15
+ contractDataProvider;
16
+ keyStore;
17
+ node;
18
+ blockNumber;
19
+ log;
20
+ constructor(contractDataProvider, keyStore, node, blockNumber = 'latest', log = createLogger('pxe:kernel_oracle')){
21
+ this.contractDataProvider = contractDataProvider;
22
+ this.keyStore = keyStore;
23
+ this.node = node;
24
+ this.blockNumber = blockNumber;
25
+ this.log = log;
26
+ }
27
+ async getContractAddressPreimage(address) {
28
+ const instance = await this.contractDataProvider.getContractInstance(address);
29
+ return {
30
+ saltedInitializationHash: await computeSaltedInitializationHash(instance),
31
+ ...instance
32
+ };
33
+ }
34
+ async getContractClassIdPreimage(contractClassId) {
35
+ const contractClass = await this.contractDataProvider.getContractClass(contractClassId);
36
+ return computeContractClassIdPreimage(contractClass);
37
+ }
38
+ async getFunctionMembershipWitness(contractClassId, selector) {
39
+ return await this.contractDataProvider.getFunctionMembershipWitness(contractClassId, selector);
40
+ }
41
+ getVkMembershipWitness(vk) {
42
+ const leafIndex = getVKIndex(vk);
43
+ return Promise.resolve(new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
44
+ }
45
+ async getNoteHashMembershipWitness(leafIndex) {
46
+ const path = await this.node.getNoteHashSiblingPath(this.blockNumber, leafIndex);
47
+ return new MembershipWitness(path.pathSize, leafIndex, path.toFields());
48
+ }
49
+ getNullifierMembershipWitness(nullifier) {
50
+ return this.node.getNullifierMembershipWitness(this.blockNumber, nullifier);
51
+ }
52
+ async getNoteHashTreeRoot() {
53
+ const header = await this.node.getBlockHeader(this.blockNumber);
54
+ if (!header) {
55
+ throw new Error(`No block header found for block number ${this.blockNumber}`);
56
+ }
57
+ return header.state.partial.noteHashTree.root;
58
+ }
59
+ getMasterSecretKey(masterPublicKey) {
60
+ return this.keyStore.getMasterSecretKey(masterPublicKey);
61
+ }
62
+ getDebugFunctionName(contractAddress, selector) {
63
+ return this.contractDataProvider.getDebugFunctionName(contractAddress, selector);
64
+ }
65
+ async getUpdatedClassIdHints(contractAddress) {
66
+ const { sharedMutableSlot, sharedMutableHashSlot } = await SharedMutableValuesWithHash.getContractUpdateSlots(contractAddress);
67
+ const hashLeafSlot = await computePublicDataTreeLeafSlot(ProtocolContractAddress.ContractInstanceDeployer, sharedMutableHashSlot);
68
+ const updatedClassIdWitness = await this.node.getPublicDataTreeWitness(this.blockNumber, hashLeafSlot);
69
+ if (!updatedClassIdWitness) {
70
+ throw new Error(`No public data tree witness found for ${hashLeafSlot}`);
71
+ }
72
+ const readStorage = (storageSlot)=>this.node.getPublicStorageAt(this.blockNumber, ProtocolContractAddress.ContractInstanceDeployer, storageSlot);
73
+ const sharedMutableValues = await SharedMutableValues.readFromTree(sharedMutableSlot, readStorage);
74
+ return new UpdatedClassIdHints(new MembershipWitness(PUBLIC_DATA_TREE_HEIGHT, updatedClassIdWitness.index, updatedClassIdWitness.siblingPath.toTuple()), updatedClassIdWitness.leafPreimage, sharedMutableValues);
75
+ }
76
+ }
@@ -0,0 +1,28 @@
1
+ import { type PrivateKernelCircuitPublicInputs, PrivateKernelResetCircuitPrivateInputs, type PrivateKernelSimulateOutput } from '@aztec/stdlib/kernel';
2
+ import { type PrivateCallExecutionResult } from '@aztec/stdlib/tx';
3
+ import type { ProvingDataOracle } from '../proving_data_oracle.js';
4
+ export declare class PrivateKernelResetPrivateInputsBuilder {
5
+ private previousKernelOutput;
6
+ private executionStack;
7
+ private noteHashNullifierCounterMap;
8
+ private validationRequestsSplitCounter;
9
+ private previousKernel;
10
+ private nextIteration?;
11
+ private noteHashResetStates;
12
+ private nullifierResetStates;
13
+ private numTransientData?;
14
+ private transientDataIndexHints;
15
+ private requestedDimensions;
16
+ constructor(previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>, executionStack: PrivateCallExecutionResult[], noteHashNullifierCounterMap: Map<number, number>, validationRequestsSplitCounter: number);
17
+ needsReset(): boolean;
18
+ build(oracle: ProvingDataOracle, noteHashLeafIndexMap: Map<bigint, bigint>): Promise<PrivateKernelResetCircuitPrivateInputs>;
19
+ private reduceReadRequestStates;
20
+ private needsResetNoteHashReadRequests;
21
+ private needsResetNullifierReadRequests;
22
+ private needsResetNullifierKeys;
23
+ private needsResetTransientData;
24
+ private needsSiloNoteHashes;
25
+ private needsSiloNullifiers;
26
+ private needsSiloPrivateLogs;
27
+ }
28
+ //# sourceMappingURL=build_private_kernel_reset_private_inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build_private_kernel_reset_private_inputs.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/hints/build_private_kernel_reset_private_inputs.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,gCAAgC,EAErC,sCAAsC,EAGtC,KAAK,2BAA2B,EAkBjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,kBAAkB,CAAC;AAElF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAiDnE,qBAAa,sCAAsC;IAY/C,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,8BAA8B;IAdxC,OAAO,CAAC,cAAc,CAAmC;IAEzD,OAAO,CAAC,aAAa,CAAC,CAA6B;IAEnD,OAAO,CAAC,mBAAmB,CAAoE;IAC/F,OAAO,CAAC,oBAAoB,CAAoE;IAChG,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,uBAAuB,CAA8D;IAC7F,OAAO,CAAC,mBAAmB,CAA+B;gBAGhD,oBAAoB,EAAE,2BAA2B,CAAC,gCAAgC,CAAC,EACnF,cAAc,EAAE,0BAA0B,EAAE,EAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM;IAahD,UAAU,IAAI,OAAO;IAwBf,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAgEhF,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,8BAA8B;IAoDtC,OAAO,CAAC,+BAA+B;IAoDvC,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,uBAAuB;IAmE/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,oBAAoB;CAmB7B"}