@aztec/prover-node 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107

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 (48) hide show
  1. package/dest/actions/download-epoch-proving-job.d.ts +4 -4
  2. package/dest/actions/index.d.ts +1 -1
  3. package/dest/actions/rerun-epoch-proving-job.d.ts +2 -2
  4. package/dest/actions/upload-epoch-proof-failure.d.ts +1 -1
  5. package/dest/bin/run-failed-epoch.d.ts +1 -1
  6. package/dest/bin/run-failed-epoch.js +1 -1
  7. package/dest/config.d.ts +7 -4
  8. package/dest/config.d.ts.map +1 -1
  9. package/dest/config.js +21 -15
  10. package/dest/factory.d.ts +2 -4
  11. package/dest/factory.d.ts.map +1 -1
  12. package/dest/factory.js +24 -13
  13. package/dest/index.d.ts +1 -1
  14. package/dest/job/epoch-proving-job-data.d.ts +8 -6
  15. package/dest/job/epoch-proving-job-data.d.ts.map +1 -1
  16. package/dest/job/epoch-proving-job-data.js +25 -18
  17. package/dest/job/epoch-proving-job.d.ts +11 -16
  18. package/dest/job/epoch-proving-job.d.ts.map +1 -1
  19. package/dest/job/epoch-proving-job.js +493 -77
  20. package/dest/metrics.d.ts +4 -3
  21. package/dest/metrics.d.ts.map +1 -1
  22. package/dest/metrics.js +9 -3
  23. package/dest/monitors/epoch-monitor.d.ts +5 -2
  24. package/dest/monitors/epoch-monitor.d.ts.map +1 -1
  25. package/dest/monitors/epoch-monitor.js +393 -10
  26. package/dest/monitors/index.d.ts +1 -1
  27. package/dest/prover-node-publisher.d.ts +9 -10
  28. package/dest/prover-node-publisher.d.ts.map +1 -1
  29. package/dest/prover-node-publisher.js +51 -53
  30. package/dest/prover-node.d.ts +8 -7
  31. package/dest/prover-node.d.ts.map +1 -1
  32. package/dest/prover-node.js +435 -50
  33. package/dest/prover-publisher-factory.d.ts +6 -2
  34. package/dest/prover-publisher-factory.d.ts.map +1 -1
  35. package/dest/prover-publisher-factory.js +6 -0
  36. package/dest/test/index.d.ts +1 -1
  37. package/dest/test/index.d.ts.map +1 -1
  38. package/package.json +26 -25
  39. package/src/bin/run-failed-epoch.ts +2 -2
  40. package/src/config.ts +33 -30
  41. package/src/factory.ts +26 -20
  42. package/src/job/epoch-proving-job-data.ts +31 -25
  43. package/src/job/epoch-proving-job.ts +138 -82
  44. package/src/metrics.ts +16 -4
  45. package/src/monitors/epoch-monitor.ts +15 -5
  46. package/src/prover-node-publisher.ts +74 -73
  47. package/src/prover-node.ts +52 -45
  48. package/src/prover-publisher-factory.ts +12 -1
@@ -8,11 +8,11 @@ export declare function downloadEpochProvingJob(location: string, log: Logger, c
8
8
  dataDirectory: string;
9
9
  jobDataDownloadPath: string;
10
10
  }): Promise<{
11
- rollupVersion: number;
12
11
  l2BlockNumber: number;
13
12
  l2BlockHash: string;
14
- rollupAddress: import("@aztec/foundation/schemas").EthAddress;
15
- l1ChainId: number;
16
13
  l1BlockNumber: number;
14
+ l1ChainId: number;
15
+ rollupVersion: number;
16
+ rollupAddress: import("../../../foundation/dest/eth-address/index.js").EthAddress;
17
17
  }>;
18
- //# sourceMappingURL=download-epoch-proving-job.d.ts.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtZXBvY2gtcHJvdmluZy1qb2IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL2Rvd25sb2FkLWVwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBVXBEOzs7O0dBSUc7QUFDSCx3QkFBc0IsdUJBQXVCLENBQzNDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLEdBQUcsRUFBRSxNQUFNLEVBQ1gsTUFBTSxFQUFFO0lBQ04sYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixtQkFBbUIsRUFBRSxNQUFNLENBQUM7Q0FDN0I7Ozs7Ozs7R0FxQkYifQ==
@@ -1,3 +1,3 @@
1
1
  export * from './download-epoch-proving-job.js';
2
2
  export * from './rerun-epoch-proving-job.js';
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQyJ9
@@ -7,5 +7,5 @@ import { ProverBrokerConfig } from '@aztec/prover-client/broker';
7
7
  * using the state snapshots, and creates a new epoch proving job to prove the downloaded proving job.
8
8
  * Proving is done with a local proving broker and agents as specified by the config.
9
9
  */
10
- export declare function rerunEpochProvingJob(localPath: string, log: Logger, config: DataStoreConfig & ProverBrokerConfig & ProverClientConfig): Promise<"initialized" | "processing" | "awaiting-prover" | "publishing-proof" | "completed" | "failed" | "stopped" | "timed-out" | "reorg">;
11
- //# sourceMappingURL=rerun-epoch-proving-job.d.ts.map
10
+ export declare function rerunEpochProvingJob(localPath: string, log: Logger, config: DataStoreConfig & ProverBrokerConfig & ProverClientConfig): Promise<"awaiting-prover" | "completed" | "failed" | "initialized" | "processing" | "publishing-proof" | "reorg" | "stopped" | "timed-out">;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVydW4tZXBvY2gtcHJvdmluZy1qb2IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL3JlcnVuLWVwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBK0IsTUFBTSw2QkFBNkIsQ0FBQztBQVc5Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUN4QyxTQUFTLEVBQUUsTUFBTSxFQUNqQixHQUFHLEVBQUUsTUFBTSxFQUNYLE1BQU0sRUFBRSxlQUFlLEdBQUcsa0JBQWtCLEdBQUcsa0JBQWtCLCtJQXFDbEUifQ==
@@ -12,4 +12,4 @@ type UploadEpochProofConfig = Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> &
12
12
  */
13
13
  export declare function uploadEpochProofFailure(location: string, jobId: string, jobData: EpochProvingJobData, archiver: Archiver, worldState: WorldStateSynchronizer, config: UploadEpochProofConfig, log: Logger): Promise<string>;
14
14
  export {};
15
- //# sourceMappingURL=upload-epoch-proof-failure.d.ts.map
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWVwb2NoLXByb29mLWZhaWx1cmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL3VwbG9hZC1lcG9jaC1wcm9vZi1mYWlsdXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsS0FBSyxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUTlFLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUFnQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFHLEtBQUssc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUt4SDs7OztHQUlHO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUMzQyxRQUFRLEVBQUUsTUFBTSxFQUNoQixLQUFLLEVBQUUsTUFBTSxFQUNiLE9BQU8sRUFBRSxtQkFBbUIsRUFDNUIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsVUFBVSxFQUFFLHNCQUFzQixFQUNsQyxNQUFNLEVBQUUsc0JBQXNCLEVBQzlCLEdBQUcsRUFBRSxNQUFNLG1CQXVDWiJ9
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=run-failed-epoch.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWZhaWxlZC1lcG9jaC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9ydW4tZmFpbGVkLWVwb2NoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -18,7 +18,7 @@ async function rerunFailedEpoch(provingJobUrl, baseLocalDir) {
18
18
  const config = {
19
19
  ...getProverNodeConfigFromEnv(),
20
20
  dataDirectory: dataDir,
21
- dataStoreMapSizeKB: env.dataStoreMapSizeKB ?? 1024 * 1024,
21
+ dataStoreMapSizeKb: env.dataStoreMapSizeKb ?? 1024 * 1024,
22
22
  proverId: env.proverId ?? EthAddress.random()
23
23
  };
24
24
  let metadata;
package/dest/config.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import { type ArchiverConfig } from '@aztec/archiver/config';
2
2
  import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
3
- import { type GenesisStateConfig } from '@aztec/ethereum';
3
+ import { type GenesisStateConfig } from '@aztec/ethereum/config';
4
4
  import { type ConfigMappingsType } from '@aztec/foundation/config';
5
5
  import { type DataStoreConfig } from '@aztec/kv-store/config';
6
- import { type KeyStore, type KeyStoreConfig } from '@aztec/node-keystore';
6
+ import { type KeyStoreConfig } from '@aztec/node-keystore/config';
7
+ import type { KeyStore } from '@aztec/node-keystore/types';
7
8
  import { type SharedNodeConfig } from '@aztec/node-lib/config';
8
9
  import { type P2PConfig } from '@aztec/p2p/config';
9
- import { type ProverAgentConfig, type ProverBrokerConfig } from '@aztec/prover-client/broker';
10
+ import { type ProverAgentConfig, type ProverBrokerConfig } from '@aztec/prover-client/broker/config';
10
11
  import { type ProverClientUserConfig } from '@aztec/prover-client/config';
11
12
  import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client/config';
12
13
  import { type WorldStateConfig } from '@aztec/world-state/config';
@@ -16,6 +17,8 @@ export type SpecificProverNodeConfig = {
16
17
  proverNodePollingIntervalMs: number;
17
18
  proverNodeMaxParallelBlocksPerEpoch: number;
18
19
  proverNodeFailedEpochStore: string | undefined;
20
+ proverNodeEpochProvingDelayMs: number | undefined;
21
+ proverNodeDisableProofPublish?: boolean;
19
22
  txGatheringTimeoutMs: number;
20
23
  txGatheringIntervalMs: number;
21
24
  txGatheringBatchSize: number;
@@ -26,4 +29,4 @@ export declare function getProverNodeConfigFromEnv(): ProverNodeConfig;
26
29
  export declare function getProverNodeBrokerConfigFromEnv(): ProverBrokerConfig;
27
30
  export declare function getProverNodeAgentConfigFromEnv(): ProverAgentConfig & BBConfig & ACVMConfig;
28
31
  export declare function createKeyStoreForProver(config: ProverNodeConfig): KeyStore | undefined;
29
- //# sourceMappingURL=config.d.ts.map
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBMEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sd0JBQXdCLENBQUM7QUFDN0YsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBMEIsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBNEIsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBQ3RCLEtBQUssa0JBQWtCLEVBR3hCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssc0JBQXNCLEVBQWdELE1BQU0sNkJBQTZCLENBQUM7QUFDeEgsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUNwQixLQUFLLGNBQWMsRUFHcEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBNEIsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RixNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxHQUMzQyxzQkFBc0IsR0FDdEIsU0FBUyxHQUNULGdCQUFnQixHQUNoQixlQUFlLEdBQ2YsY0FBYyxHQUNkLGVBQWUsR0FDZixjQUFjLEdBQ2QsZ0JBQWdCLEdBQ2hCLHdCQUF3QixHQUN4QixrQkFBa0IsQ0FBQztBQUVyQixNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDO0lBQ2pDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxtQ0FBbUMsRUFBRSxNQUFNLENBQUM7SUFDNUMsMEJBQTBCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMvQyw2QkFBNkIsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2xELDZCQUE2QixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ3hDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQztDQUMvQyxDQUFDO0FBc0RGLGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FZekUsQ0FBQztBQUVGLHdCQUFnQiwwQkFBMEIsSUFBSSxnQkFBZ0IsQ0FFN0Q7QUFFRCx3QkFBZ0IsZ0NBQWdDLElBQUksa0JBQWtCLENBSXJFO0FBRUQsd0JBQWdCLCtCQUErQixJQUFJLGlCQUFpQixHQUFHLFFBQVEsR0FBRyxVQUFVLENBSzNGO0FBMERELHdCQUFnQix1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FNdEYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,sBAAsB,EAAgD,MAAM,6BAA6B,CAAC;AACxH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAE5F,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,sBAAsB,GACtB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,wBAAwB,GACxB,kBAAkB,CAAC;AAErB,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qCAAqC,EAAE,MAAM,CAAC;CAC/C,CAAC;AA6CF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAYzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F;AAkED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,wBAM/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,sBAAsB,EAAgD,MAAM,6BAA6B,CAAC;AACxH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAE5F,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,sBAAsB,GACtB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,wBAAwB,GACxB,kBAAkB,CAAC;AAErB,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qCAAqC,EAAE,MAAM,CAAC;CAC/C,CAAC;AAsDF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAYzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F;AA0DD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAMtF"}
package/dest/config.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { archiverConfigMappings } from '@aztec/archiver/config';
2
- import { genesisStateConfigMappings } from '@aztec/ethereum';
3
- import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
2
+ import { genesisStateConfigMappings } from '@aztec/ethereum/config';
3
+ import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
4
4
  import { dataConfigMappings } from '@aztec/kv-store/config';
5
- import { keyStoreConfigMappings } from '@aztec/node-keystore';
5
+ import { keyStoreConfigMappings } from '@aztec/node-keystore/config';
6
+ import { ethPrivateKeySchema } from '@aztec/node-keystore/schemas';
6
7
  import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
7
8
  import { p2pConfigMappings } from '@aztec/p2p/config';
8
- import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
9
+ import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker/config';
9
10
  import { bbConfigMappings, proverClientConfigMappings } from '@aztec/prover-client/config';
10
11
  import { getPublisherConfigMappings, getTxSenderConfigMappings } from '@aztec/sequencer-client/config';
11
12
  import { worldStateConfigMappings } from '@aztec/world-state/config';
@@ -30,6 +31,10 @@ const specificProverNodeConfigMappings = {
30
31
  description: 'File store where to upload node state when an epoch fails to be proven',
31
32
  defaultValue: undefined
32
33
  },
34
+ proverNodeEpochProvingDelayMs: {
35
+ description: 'Optional delay in milliseconds to wait before proving a new epoch',
36
+ defaultValue: undefined
37
+ },
33
38
  txGatheringIntervalMs: {
34
39
  env: 'PROVER_NODE_TX_GATHERING_INTERVAL_MS',
35
40
  description: 'How often to check that tx data is available',
@@ -49,6 +54,11 @@ const specificProverNodeConfigMappings = {
49
54
  env: 'PROVER_NODE_TX_GATHERING_TIMEOUT_MS',
50
55
  description: 'How long to wait for tx data to be available before giving up',
51
56
  ...numberConfigHelper(120_000)
57
+ },
58
+ proverNodeDisableProofPublish: {
59
+ env: 'PROVER_NODE_DISABLE_PROOF_PUBLISH',
60
+ description: 'Whether the prover node skips publishing proofs to L1',
61
+ ...booleanConfigHelper(false)
52
62
  }
53
63
  };
54
64
  export const proverNodeConfigMappings = {
@@ -79,14 +89,12 @@ export function getProverNodeAgentConfigFromEnv() {
79
89
  };
80
90
  }
81
91
  function createKeyStoreFromWeb3Signer(config) {
82
- // See what we have been given for proverId.
83
- const proverId = config.proverId ? config.proverId.toString() : undefined;
84
92
  // If we don't have a valid prover Id then we can't build a valid key store with remote signers
85
- if (proverId === undefined) {
93
+ if (config.proverId === undefined) {
86
94
  return undefined;
87
95
  }
88
96
  // Also, we need at least one publisher address.
89
- const publishers = config.publisherAddresses ? config.publisherAddresses.map((k)=>k.toChecksumString()) : [];
97
+ const publishers = config.publisherAddresses ?? [];
90
98
  if (publishers.length === 0) {
91
99
  return undefined;
92
100
  }
@@ -94,7 +102,7 @@ function createKeyStoreFromWeb3Signer(config) {
94
102
  schemaVersion: 1,
95
103
  slasher: undefined,
96
104
  prover: {
97
- id: proverId,
105
+ id: config.proverId,
98
106
  publisher: publishers
99
107
  },
100
108
  remoteSigner: config.web3SignerUrl,
@@ -104,21 +112,19 @@ function createKeyStoreFromWeb3Signer(config) {
104
112
  }
105
113
  function createKeyStoreFromPublisherKeys(config) {
106
114
  // Extract the publisher keys from the provided config.
107
- const publisherKeys = config.publisherPrivateKeys ? config.publisherPrivateKeys.map((k)=>k.getValue()) : [];
115
+ const publisherKeys = config.publisherPrivateKeys ? config.publisherPrivateKeys.map((k)=>ethPrivateKeySchema.parse(k.getValue())) : [];
108
116
  // There must be at least 1.
109
117
  if (publisherKeys.length === 0) {
110
118
  return undefined;
111
119
  }
112
- // Now see what we have been given for proverId.
113
- const proverId = config.proverId ? config.proverId.toString() : undefined;
114
120
  // If we have a valid proverId then create a prover key store of the form { id, publisher: [publisherKeys] }
115
121
  // Otherwise create one of the form ("0x12345678....." as EthAccount).
116
122
  const keyStore = {
117
123
  schemaVersion: 1,
118
124
  slasher: undefined,
119
- prover: proverId === undefined ? publisherKeys[0] : {
120
- id: proverId,
121
- publisher: publisherKeys.map((key)=>key)
125
+ prover: config.proverId === undefined ? publisherKeys[0] : {
126
+ id: config.proverId,
127
+ publisher: publisherKeys
122
128
  },
123
129
  remoteSigner: undefined,
124
130
  validators: undefined
package/dest/factory.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { type Archiver } from '@aztec/archiver';
2
- import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
3
- import { L1TxUtils } from '@aztec/ethereum';
2
+ import { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
4
3
  import { type Logger } from '@aztec/foundation/log';
5
4
  import { DateProvider } from '@aztec/foundation/timer';
6
5
  import type { DataStoreConfig } from '@aztec/kv-store/config';
@@ -17,7 +16,6 @@ export type ProverNodeDeps = {
17
16
  aztecNodeTxProvider?: Pick<AztecNode, 'getTxsByHash'>;
18
17
  archiver?: Archiver;
19
18
  publisherFactory?: ProverPublisherFactory;
20
- blobSinkClient?: BlobSinkClientInterface;
21
19
  broker?: ProvingJobBroker;
22
20
  l1TxUtils?: L1TxUtils;
23
21
  dateProvider?: DateProvider;
@@ -26,4 +24,4 @@ export type ProverNodeDeps = {
26
24
  export declare function createProverNode(userConfig: ProverNodeConfig & DataStoreConfig & KeyStoreConfig, deps?: ProverNodeDeps, options?: {
27
25
  prefilledPublicData?: PublicDataTreeLeaf[];
28
26
  }): Promise<ProverNode>;
29
- //# sourceMappingURL=factory.d.ts.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBTWhFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBa0QsTUFBTSxzQkFBc0IsQ0FBQztBQU0zRyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlELE9BQU8sRUFBYSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUs5RixPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBMkIsTUFBTSxhQUFhLENBQUM7QUFFN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZFLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQzVCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNiLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RCxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDcEIsZ0JBQWdCLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztJQUMxQyxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUMxQixTQUFTLENBQUMsRUFBRSxTQUFTLENBQUM7SUFDdEIsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFDO0NBQzdCLENBQUM7QUFFRixnREFBZ0Q7QUFDaEQsd0JBQXNCLGdCQUFnQixDQUNwQyxVQUFVLEVBQUUsZ0JBQWdCLEdBQUcsZUFBZSxHQUFHLGNBQWMsRUFDL0QsSUFBSSxHQUFFLGNBQW1CLEVBQ3pCLE9BQU8sR0FBRTtJQUNQLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztDQUN2Qyx1QkEwS1AifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAEL,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAkD,MAAM,sBAAsB,CAAC;AAK3G,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK9F,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,cAAc,EAC/D,IAAI,GAAE,cAAmB,EACzB,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,uBAgKP"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAMhE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAkD,MAAM,sBAAsB,CAAC;AAM3G,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK9F,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,cAAc,EAC/D,IAAI,GAAE,cAAmB,EACzB,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,uBA0KP"}
package/dest/factory.js CHANGED
@@ -1,13 +1,16 @@
1
1
  import { createArchiver } from '@aztec/archiver';
2
2
  import { BBCircuitVerifier, QueuedIVCVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
3
- import { createBlobSinkClient } from '@aztec/blob-sink/client';
3
+ import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
4
4
  import { EpochCache } from '@aztec/epoch-cache';
5
- import { PublisherManager, RollupContract, createEthereumChain, createL1TxUtilsFromEthSigner } from '@aztec/ethereum';
5
+ import { createEthereumChain } from '@aztec/ethereum/chain';
6
+ import { RollupContract } from '@aztec/ethereum/contracts';
7
+ import { PublisherManager } from '@aztec/ethereum/publisher-manager';
6
8
  import { pick } from '@aztec/foundation/collection';
7
9
  import { createLogger } from '@aztec/foundation/log';
8
10
  import { DateProvider } from '@aztec/foundation/timer';
9
11
  import { KeystoreManager, loadKeystores, mergeKeystores } from '@aztec/node-keystore';
10
12
  import { trySnapshotSync } from '@aztec/node-lib/actions';
13
+ import { createL1TxUtilsFromEthSignerWithStore } from '@aztec/node-lib/factories';
11
14
  import { NodeRpcTxSource, createP2PClient } from '@aztec/p2p';
12
15
  import { createProverClient } from '@aztec/prover-client';
13
16
  import { createAndStartProvingBroker } from '@aztec/prover-client/broker';
@@ -26,9 +29,7 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
26
29
  };
27
30
  const telemetry = deps.telemetry ?? getTelemetryClient();
28
31
  const dateProvider = deps.dateProvider ?? new DateProvider();
29
- const blobSinkClient = deps.blobSinkClient ?? createBlobSinkClient(config, {
30
- logger: createLogger('prover-node:blob-sink:client')
31
- });
32
+ const blobClient = await createBlobClientWithFileStores(config, createLogger('prover-node:blob-client:client'));
32
33
  const log = deps.log ?? createLogger('prover-node');
33
34
  // Build a key store from file if given or from environment otherwise
34
35
  let keyStoreManager;
@@ -42,6 +43,7 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
42
43
  keyStoreManager = new KeystoreManager(keyStore);
43
44
  }
44
45
  }
46
+ await keyStoreManager?.validateSigners();
45
47
  // Extract the prover signers from the key store and verify that we have one.
46
48
  const proverSigners = keyStoreManager?.createProverSigners();
47
49
  if (proverSigners === undefined) {
@@ -51,6 +53,7 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
51
53
  } else if (!keyStoreProvided) {
52
54
  log.warn('KEY STORE CREATED FROM ENVIRONMENT, IT IS RECOMMENDED TO USE A FILE-BASED KEY STORE IN PRODUCTION ENVIRONMENTS');
53
55
  }
56
+ log.info(`Creating prover with publishers ${proverSigners.signers.map((signer)=>signer.address.toString()).join()}`);
54
57
  // Only consider user provided config if it is valid
55
58
  const proverIdInUserConfig = config.proverId === undefined || config.proverId.isZero() ? undefined : config.proverId;
56
59
  // ProverId: Take from key store if provided, otherwise from user config if valid, otherwise address of first signer
@@ -63,7 +66,7 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
63
66
  await trySnapshotSync(config, log);
64
67
  const epochCache = await EpochCache.create(config.l1Contracts.rollupAddress, config);
65
68
  const archiver = deps.archiver ?? await createArchiver(config, {
66
- blobSinkClient,
69
+ blobClient,
67
70
  epochCache,
68
71
  telemetry,
69
72
  dateProvider
@@ -83,21 +86,28 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
83
86
  const chain = createEthereumChain(rpcUrls, chainId);
84
87
  const publicClient = createPublicClient({
85
88
  chain: chain.chainInfo,
86
- transport: fallback(config.l1RpcUrls.map((url)=>http(url))),
89
+ transport: fallback(config.l1RpcUrls.map((url)=>http(url, {
90
+ batch: false
91
+ }))),
87
92
  pollingInterval: config.viemPollingIntervalMS
88
93
  });
89
94
  const rollupContract = new RollupContract(publicClient, config.l1Contracts.rollupAddress.toString());
90
95
  const l1TxUtils = deps.l1TxUtils ? [
91
96
  deps.l1TxUtils
92
- ] : proverSigners.signers.map((signer)=>{
93
- return createL1TxUtilsFromEthSigner(publicClient, signer, log, dateProvider, config);
97
+ ] : await createL1TxUtilsFromEthSignerWithStore(publicClient, proverSigners.signers, {
98
+ ...config,
99
+ scope: 'prover'
100
+ }, {
101
+ telemetry,
102
+ logger: log.createChild('l1-tx-utils'),
103
+ dateProvider
94
104
  });
95
105
  const publisherFactory = deps.publisherFactory ?? new ProverPublisherFactory(config, {
96
106
  rollupContract,
97
- publisherManager: new PublisherManager(l1TxUtils),
107
+ publisherManager: new PublisherManager(l1TxUtils, config),
98
108
  telemetry
99
109
  });
100
- const proofVerifier = new QueuedIVCVerifier(config, config.realProofs ? await BBCircuitVerifier.new(config) : new TestCircuitVerifier());
110
+ const proofVerifier = new QueuedIVCVerifier(config, config.realProofs || config.debugForceTxProofVerification ? await BBCircuitVerifier.new(config) : new TestCircuitVerifier(config.proverTestVerificationDelayMs));
101
111
  const p2pClient = await createP2PClient(P2PClientType.Prover, config, archiver, proofVerifier, worldStateSynchronizer, epochCache, getPackageVersion() ?? '', dateProvider, telemetry, {
102
112
  txCollectionNodeSources: deps.aztecNodeTxProvider ? [
103
113
  new NodeRpcTxSource(deps.aztecNodeTxProvider, 'TestNode')
@@ -105,10 +115,11 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
105
115
  });
106
116
  await p2pClient.start();
107
117
  const proverNodeConfig = {
108
- ...pick(config, 'proverNodeMaxPendingJobs', 'proverNodeMaxParallelBlocksPerEpoch', 'proverNodePollingIntervalMs', 'txGatheringMaxParallelRequests', 'txGatheringIntervalMs', 'txGatheringTimeoutMs', 'proverNodeFailedEpochStore', 'dataDirectory', 'l1ChainId', 'rollupVersion')
118
+ ...pick(config, 'proverNodeMaxPendingJobs', 'proverNodeMaxParallelBlocksPerEpoch', 'proverNodePollingIntervalMs', 'proverNodeEpochProvingDelayMs', 'txGatheringMaxParallelRequests', 'txGatheringIntervalMs', 'txGatheringTimeoutMs', 'proverNodeFailedEpochStore', 'proverNodeDisableProofPublish', 'dataDirectory', 'l1ChainId', 'rollupVersion')
109
119
  };
110
120
  const epochMonitor = await EpochMonitor.create(archiver, {
111
- pollingIntervalMs: config.proverNodePollingIntervalMs
121
+ pollingIntervalMs: config.proverNodePollingIntervalMs,
122
+ provingDelayMs: config.proverNodeEpochProvingDelayMs
112
123
  }, telemetry);
113
124
  const l1Metrics = new L1Metrics(telemetry.getMeter('ProverNodeL1Metrics'), publicClient, l1TxUtils.map((utils)=>utils.getSenderAddress()));
114
125
  return new ProverNode(prover, publisherFactory, archiver, archiver, archiver, worldStateSynchronizer, p2pClient, epochMonitor, rollupContract, l1Metrics, proverNodeConfig, telemetry);
package/dest/index.d.ts CHANGED
@@ -3,4 +3,4 @@ export * from './config.js';
3
3
  export * from './factory.js';
4
4
  export * from './prover-node-publisher.js';
5
5
  export * from './prover-node.js';
6
- //# sourceMappingURL=index.d.ts.map
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQkFBa0IsQ0FBQyJ9
@@ -1,16 +1,18 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { CommitteeAttestation, L2Block } from '@aztec/stdlib/block';
1
+ import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { CommitteeAttestation } from '@aztec/stdlib/block';
4
+ import { Checkpoint } from '@aztec/stdlib/checkpoint';
3
5
  import { BlockHeader, Tx } from '@aztec/stdlib/tx';
4
6
  /** All data from an epoch used in proving. */
5
7
  export type EpochProvingJobData = {
6
- epochNumber: bigint;
7
- blocks: L2Block[];
8
+ epochNumber: EpochNumber;
9
+ checkpoints: Checkpoint[];
8
10
  txs: Map<string, Tx>;
9
- l1ToL2Messages: Record<number, Fr[]>;
11
+ l1ToL2Messages: Record<CheckpointNumber, Fr[]>;
10
12
  previousBlockHeader: BlockHeader;
11
13
  attestations: CommitteeAttestation[];
12
14
  };
13
15
  export declare function validateEpochProvingJobData(data: EpochProvingJobData): void;
14
16
  export declare function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer;
15
17
  export declare function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData;
16
- //# sourceMappingURL=epoch-proving-job-data.d.ts.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2ItZGF0YS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pvYi9lcG9jaC1wcm92aW5nLWpvYi1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsOENBQThDO0FBQzlDLE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQ3pCLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUMxQixHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQixjQUFjLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO0lBQ2pDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0NBQ3RDLENBQUM7QUFFRix3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixRQWtCcEU7QUFFRCx3QkFBZ0IsNEJBQTRCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixHQUFHLE1BQU0sQ0FzQjlFO0FBRUQsd0JBQWdCLDhCQUE4QixDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsbUJBQW1CLENBb0IvRSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-proving-job-data.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,mBAAmB,EAAE,WAAW,CAAC;IACjC,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,QAcpE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAsB9E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAoB/E"}
1
+ {"version":3,"file":"epoch-proving-job-data.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,mBAAmB,EAAE,WAAW,CAAC;IACjC,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,QAkBpE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAsB9E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAoB/E"}
@@ -1,40 +1,47 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
- import { CommitteeAttestation, L2Block } from '@aztec/stdlib/block';
4
+ import { CommitteeAttestation } from '@aztec/stdlib/block';
5
+ import { Checkpoint } from '@aztec/stdlib/checkpoint';
4
6
  import { BlockHeader, Tx } from '@aztec/stdlib/tx';
5
7
  export function validateEpochProvingJobData(data) {
6
- if (data.blocks.length > 0 && data.previousBlockHeader.getBlockNumber() + 1 !== data.blocks[0].number) {
7
- throw new Error(`Initial block number ${data.blocks[0].number} does not match previous block header ${data.previousBlockHeader.getBlockNumber()}`);
8
+ if (data.checkpoints.length === 0) {
9
+ throw new Error('No checkpoints to prove');
8
10
  }
9
- for (const blockNumber of data.blocks.map((block)=>block.number)){
10
- if (!(blockNumber in data.l1ToL2Messages)) {
11
- throw new Error(`Missing L1 to L2 messages for block number ${blockNumber}`);
11
+ const firstBlockNumber = data.checkpoints[0].blocks[0].number;
12
+ const previousBlockNumber = data.previousBlockHeader.getBlockNumber();
13
+ if (previousBlockNumber + 1 !== firstBlockNumber) {
14
+ throw new Error(`Initial block number ${firstBlockNumber} does not match previous block header ${previousBlockNumber}`);
15
+ }
16
+ for (const checkpoint of data.checkpoints){
17
+ if (!(checkpoint.number in data.l1ToL2Messages)) {
18
+ throw new Error(`Missing L1 to L2 messages for checkpoint number ${checkpoint.number}`);
12
19
  }
13
20
  }
14
21
  }
15
22
  export function serializeEpochProvingJobData(data) {
16
- const blocks = data.blocks.map((block)=>block.toBuffer());
23
+ const checkpoints = data.checkpoints.map((checkpoint)=>checkpoint.toBuffer());
17
24
  const txs = Array.from(data.txs.values()).map((tx)=>tx.toBuffer());
18
- const l1ToL2Messages = Object.entries(data.l1ToL2Messages).map(([blockNumber, messages])=>[
19
- Number(blockNumber),
25
+ const l1ToL2Messages = Object.entries(data.l1ToL2Messages).map(([checkpointNumber, messages])=>[
26
+ Number(checkpointNumber),
20
27
  messages.length,
21
28
  ...messages
22
29
  ]);
23
30
  const attestations = data.attestations.map((attestation)=>attestation.toBuffer());
24
- return serializeToBuffer(Number(data.epochNumber), data.previousBlockHeader, blocks.length, ...blocks, txs.length, ...txs, l1ToL2Messages.length, ...l1ToL2Messages, attestations.length, ...attestations);
31
+ return serializeToBuffer(data.epochNumber, data.previousBlockHeader, checkpoints.length, ...checkpoints, txs.length, ...txs, l1ToL2Messages.length, ...l1ToL2Messages, attestations.length, ...attestations);
25
32
  }
26
33
  export function deserializeEpochProvingJobData(buf) {
27
34
  const reader = BufferReader.asReader(buf);
28
- const epochNumber = BigInt(reader.readNumber());
35
+ const epochNumber = EpochNumber(reader.readNumber());
29
36
  const previousBlockHeader = reader.readObject(BlockHeader);
30
- const blocks = reader.readVector(L2Block);
37
+ const checkpoints = reader.readVector(Checkpoint);
31
38
  const txArray = reader.readVector(Tx);
32
- const l1ToL2MessageBlockCount = reader.readNumber();
39
+ const l1ToL2MessageCheckpointCount = reader.readNumber();
33
40
  const l1ToL2Messages = {};
34
- for(let i = 0; i < l1ToL2MessageBlockCount; i++){
35
- const blockNumber = reader.readNumber();
41
+ for(let i = 0; i < l1ToL2MessageCheckpointCount; i++){
42
+ const checkpointNumber = CheckpointNumber(reader.readNumber());
36
43
  const messages = reader.readVector(Fr);
37
- l1ToL2Messages[blockNumber] = messages;
44
+ l1ToL2Messages[checkpointNumber] = messages;
38
45
  }
39
46
  const attestations = reader.readVector(CommitteeAttestation);
40
47
  const txs = new Map(txArray.map((tx)=>[
@@ -44,7 +51,7 @@ export function deserializeEpochProvingJobData(buf) {
44
51
  return {
45
52
  epochNumber,
46
53
  previousBlockHeader,
47
- blocks,
54
+ checkpoints,
48
55
  txs,
49
56
  l1ToL2Messages,
50
57
  attestations
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import type { PublicProcessorFactory } from '@aztec/simulator/server';
2
3
  import type { L2BlockSource } from '@aztec/stdlib/block';
3
4
  import { type EpochProver, type EpochProvingJobState, EpochProvingJobTerminalState, type ForkMerkleTreeOperations } from '@aztec/stdlib/interfaces/server';
@@ -5,6 +6,11 @@ import { type Traceable, type Tracer } from '@aztec/telemetry-client';
5
6
  import type { ProverNodeJobMetrics } from '../metrics.js';
6
7
  import type { ProverNodePublisher } from '../prover-node-publisher.js';
7
8
  import { type EpochProvingJobData } from './epoch-proving-job-data.js';
9
+ export type EpochProvingJobOptions = {
10
+ parallelBlockLimit?: number;
11
+ skipEpochCheck?: boolean;
12
+ skipSubmitProof?: boolean;
13
+ };
8
14
  /**
9
15
  * Job that grabs a range of blocks from the unfinalized chain from L1, gets their txs given their hashes,
10
16
  * re-executes their public calls, generates a rollup proof, and submits it to L1. This job will update the
@@ -27,41 +33,30 @@ export declare class EpochProvingJob implements Traceable {
27
33
  private epochCheckPromise;
28
34
  private deadlineTimeoutHandler;
29
35
  readonly tracer: Tracer;
30
- constructor(data: EpochProvingJobData, dbProvider: Pick<ForkMerkleTreeOperations, 'fork'>, prover: EpochProver, publicProcessorFactory: PublicProcessorFactory, publisher: Pick<ProverNodePublisher, 'submitEpochProof'>, l2BlockSource: L2BlockSource | undefined, metrics: ProverNodeJobMetrics, deadline: Date | undefined, config: {
31
- parallelBlockLimit?: number;
32
- skipEpochCheck?: boolean;
33
- });
36
+ constructor(data: EpochProvingJobData, dbProvider: Pick<ForkMerkleTreeOperations, 'fork'>, prover: EpochProver, publicProcessorFactory: PublicProcessorFactory, publisher: Pick<ProverNodePublisher, 'submitEpochProof'>, l2BlockSource: L2BlockSource | undefined, metrics: ProverNodeJobMetrics, deadline: Date | undefined, config: EpochProvingJobOptions);
34
37
  getId(): string;
35
38
  getState(): EpochProvingJobState;
36
- getEpochNumber(): bigint;
39
+ getEpochNumber(): EpochNumber;
37
40
  getDeadline(): Date | undefined;
38
41
  getProvingData(): EpochProvingJobData;
39
42
  private get epochNumber();
40
- private get blocks();
43
+ private get checkpoints();
41
44
  private get txs();
42
45
  private get attestations();
43
46
  /**
44
47
  * Proves the given epoch and submits the proof to L1.
45
48
  */
46
49
  run(): Promise<void>;
47
- /**
48
- * Create a new db fork for tx processing, inserting all L1 to L2.
49
- * REFACTOR: The prover already spawns a db fork of its own for each block, so we may be able to do away with just one fork.
50
- */
51
50
  private createFork;
52
51
  private progressState;
53
52
  private checkState;
54
53
  stop(state?: EpochProvingJobTerminalState): Promise<void>;
55
54
  private scheduleDeadlineStop;
56
- /**
57
- * Kicks off a running promise that queries the archiver for the set of L2 blocks of the current epoch.
58
- * If those change, stops the proving job with a `rerun` state, so the node re-enqueues it.
59
- */
60
55
  private scheduleEpochCheck;
61
- private getBlockHeader;
56
+ private gatherPreviousBlockHeaders;
62
57
  private getTxs;
63
58
  private getL1ToL2Messages;
64
59
  private processTxs;
65
60
  }
66
61
  export { type EpochProvingJobState };
67
- //# sourceMappingURL=epoch-proving-job.d.ts.map
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qb2IvZXBvY2gtcHJvdmluZy1qb2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUzNFLE9BQU8sS0FBSyxFQUFtQixzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZGLE9BQU8sS0FBSyxFQUFjLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJFLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFDaEIsS0FBSyxvQkFBb0IsRUFDekIsNEJBQTRCLEVBQzVCLEtBQUssd0JBQXdCLEVBQzlCLE1BQU0saUNBQWlDLENBQUM7QUFJekMsT0FBTyxFQUFjLEtBQUssU0FBUyxFQUFFLEtBQUssTUFBTSxFQUFhLE1BQU0seUJBQXlCLENBQUM7QUFJN0YsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBK0IsTUFBTSw2QkFBNkIsQ0FBQztBQUVwRyxNQUFNLE1BQU0sc0JBQXNCLEdBQUc7SUFDbkMsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ3pCLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUMzQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHFCQUFhLGVBQWdCLFlBQVcsU0FBUztJQVk3QyxPQUFPLENBQUMsSUFBSTtJQUNaLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLHNCQUFzQjtJQUM5QixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxNQUFNO0lBbkJoQixPQUFPLENBQUMsS0FBSyxDQUF1QztJQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFpRDtJQUM1RCxPQUFPLENBQUMsSUFBSSxDQUFTO0lBRXJCLE9BQU8sQ0FBQyxVQUFVLENBQTRCO0lBQzlDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBNkI7SUFDdEQsT0FBTyxDQUFDLHNCQUFzQixDQUE2QjtJQUUzRCxTQUFnQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRS9CLFlBQ1UsSUFBSSxFQUFFLG1CQUFtQixFQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxFQUNsRCxNQUFNLEVBQUUsV0FBVyxFQUNuQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyxFQUN4RCxhQUFhLEVBQUUsYUFBYSxHQUFHLFNBQVMsRUFDeEMsT0FBTyxFQUFFLG9CQUFvQixFQUM3QixRQUFRLEVBQUUsSUFBSSxHQUFHLFNBQVMsRUFDMUIsTUFBTSxFQUFFLHNCQUFzQixFQUt2QztJQUVNLEtBQUssSUFBSSxNQUFNLENBRXJCO0lBRU0sUUFBUSxJQUFJLG9CQUFvQixDQUV0QztJQUVNLGNBQWMsSUFBSSxXQUFXLENBRW5DO0lBRU0sV0FBVyxJQUFJLElBQUksR0FBRyxTQUFTLENBRXJDO0lBRU0sY0FBYyxJQUFJLG1CQUFtQixDQUUzQztJQUVELE9BQU8sS0FBSyxXQUFXLEdBRXRCO0lBRUQsT0FBTyxLQUFLLFdBQVcsR0FFdEI7SUFFRCxPQUFPLEtBQUssR0FBRyxHQUVkO0lBRUQsT0FBTyxLQUFLLFlBQVksR0FFdkI7SUFFRDs7T0FFRztJQUlVLEdBQUcsa0JBaUxmO1lBTWEsVUFBVTtJQWdCeEIsT0FBTyxDQUFDLGFBQWE7SUFLckIsT0FBTyxDQUFDLFVBQVU7SUFNTCxJQUFJLENBQUMsS0FBSyxHQUFFLDRCQUF3QyxpQkFNaEU7SUFFRCxPQUFPLENBQUMsb0JBQW9CO1lBd0JkLGtCQUFrQjtJQStCaEMsT0FBTyxDQUFDLDBCQUEwQjtJQUtsQyxPQUFPLENBQUMsTUFBTTtJQUlkLE9BQU8sQ0FBQyxpQkFBaUI7WUFJWCxVQUFVO0NBbUJ6QjtBQVNELE9BQU8sRUFBRSxLQUFLLG9CQUFvQixFQUFFLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,KAAK,mBAAmB,EAA+B,MAAM,6BAA6B,CAAC;AAEpG;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAY7C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IAnBhB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAiD;IAC5D,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGrB,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAClD,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EACxD,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAOpE,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,oBAAoB;IAIhC,cAAc,IAAI,MAAM;IAIxB,WAAW,IAAI,IAAI,GAAG,SAAS;IAI/B,cAAc,IAAI,mBAAmB;IAI5C,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IAIU,GAAG;IAwHhB;;;OAGG;YACW,UAAU;IAgBxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAML,IAAI,CAAC,KAAK,GAAE,4BAAwC;IASjE,OAAO,CAAC,oBAAoB;IAoB5B;;;OAGG;YACW,kBAAkB;IAiChC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAmBzB;AASD,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAS3E,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,KAAK,mBAAmB,EAA+B,MAAM,6BAA6B,CAAC;AAEpG,MAAM,MAAM,sBAAsB,GAAG;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAY7C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IAnBhB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAiD;IAC5D,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,YACU,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAClD,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EACxD,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE,sBAAsB,EAKvC;IAEM,KAAK,IAAI,MAAM,CAErB;IAEM,QAAQ,IAAI,oBAAoB,CAEtC;IAEM,cAAc,IAAI,WAAW,CAEnC;IAEM,WAAW,IAAI,IAAI,GAAG,SAAS,CAErC;IAEM,cAAc,IAAI,mBAAmB,CAE3C;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IAIU,GAAG,kBAiLf;YAMa,UAAU;IAgBxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAML,IAAI,CAAC,KAAK,GAAE,4BAAwC,iBAMhE;IAED,OAAO,CAAC,oBAAoB;YAwBd,kBAAkB;IA+BhC,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAmBzB;AASD,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}