@aztec/prover-node 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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 (80) hide show
  1. package/dest/bond/bond-manager.js +10 -12
  2. package/dest/bond/config.js +3 -4
  3. package/dest/bond/escrow-contract.js +23 -15
  4. package/dest/bond/factory.js +4 -2
  5. package/dest/bond/index.js +0 -1
  6. package/dest/bond/token-contract.js +52 -29
  7. package/dest/config.js +20 -21
  8. package/dest/factory.js +26 -14
  9. package/dest/http.js +1 -3
  10. package/dest/index.js +0 -1
  11. package/dest/job/epoch-proving-job.js +230 -190
  12. package/dest/metrics.js +33 -23
  13. package/dest/monitors/claims-monitor.js +52 -51
  14. package/dest/monitors/epoch-monitor.js +48 -47
  15. package/dest/monitors/index.js +0 -1
  16. package/dest/prover-coordination/config.js +2 -3
  17. package/dest/prover-coordination/factory.js +8 -7
  18. package/dest/prover-coordination/index.js +0 -1
  19. package/dest/prover-node-publisher.js +46 -43
  20. package/dest/prover-node.js +303 -308
  21. package/dest/quote-provider/http.js +11 -5
  22. package/dest/quote-provider/index.js +1 -2
  23. package/dest/quote-provider/simple.js +7 -3
  24. package/dest/quote-provider/utils.js +2 -3
  25. package/dest/quote-signer.js +6 -3
  26. package/dest/test/index.js +2 -1
  27. package/package.json +19 -19
  28. package/src/prover-node.ts +34 -62
  29. package/dest/bond/bond-manager.d.ts +0 -22
  30. package/dest/bond/bond-manager.d.ts.map +0 -1
  31. package/dest/bond/config.d.ts +0 -8
  32. package/dest/bond/config.d.ts.map +0 -1
  33. package/dest/bond/escrow-contract.d.ts +0 -19
  34. package/dest/bond/escrow-contract.d.ts.map +0 -1
  35. package/dest/bond/factory.d.ts +0 -6
  36. package/dest/bond/factory.d.ts.map +0 -1
  37. package/dest/bond/index.d.ts +0 -3
  38. package/dest/bond/index.d.ts.map +0 -1
  39. package/dest/bond/token-contract.d.ts +0 -26
  40. package/dest/bond/token-contract.d.ts.map +0 -1
  41. package/dest/config.d.ts +0 -31
  42. package/dest/config.d.ts.map +0 -1
  43. package/dest/factory.d.ts +0 -22
  44. package/dest/factory.d.ts.map +0 -1
  45. package/dest/http.d.ts +0 -8
  46. package/dest/http.d.ts.map +0 -1
  47. package/dest/index.d.ts +0 -6
  48. package/dest/index.d.ts.map +0 -1
  49. package/dest/job/epoch-proving-job.d.ts +0 -50
  50. package/dest/job/epoch-proving-job.d.ts.map +0 -1
  51. package/dest/metrics.d.ts +0 -23
  52. package/dest/metrics.d.ts.map +0 -1
  53. package/dest/monitors/claims-monitor.d.ts +0 -24
  54. package/dest/monitors/claims-monitor.d.ts.map +0 -1
  55. package/dest/monitors/epoch-monitor.d.ts +0 -22
  56. package/dest/monitors/epoch-monitor.d.ts.map +0 -1
  57. package/dest/monitors/index.d.ts +0 -3
  58. package/dest/monitors/index.d.ts.map +0 -1
  59. package/dest/prover-coordination/config.d.ts +0 -7
  60. package/dest/prover-coordination/config.d.ts.map +0 -1
  61. package/dest/prover-coordination/factory.d.ts +0 -22
  62. package/dest/prover-coordination/factory.d.ts.map +0 -1
  63. package/dest/prover-coordination/index.d.ts +0 -3
  64. package/dest/prover-coordination/index.d.ts.map +0 -1
  65. package/dest/prover-node-publisher.d.ts +0 -67
  66. package/dest/prover-node-publisher.d.ts.map +0 -1
  67. package/dest/prover-node.d.ts +0 -107
  68. package/dest/prover-node.d.ts.map +0 -1
  69. package/dest/quote-provider/http.d.ts +0 -15
  70. package/dest/quote-provider/http.d.ts.map +0 -1
  71. package/dest/quote-provider/index.d.ts +0 -6
  72. package/dest/quote-provider/index.d.ts.map +0 -1
  73. package/dest/quote-provider/simple.d.ts +0 -9
  74. package/dest/quote-provider/simple.d.ts.map +0 -1
  75. package/dest/quote-provider/utils.d.ts +0 -4
  76. package/dest/quote-provider/utils.d.ts.map +0 -1
  77. package/dest/quote-signer.d.ts +0 -13
  78. package/dest/quote-signer.d.ts.map +0 -1
  79. package/dest/test/index.d.ts +0 -10
  80. package/dest/test/index.d.ts.map +0 -1
@@ -1,24 +0,0 @@
1
- import { type EpochProofClaim } from '@aztec/circuit-types';
2
- import { type EthAddress } from '@aztec/circuits.js';
3
- import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
4
- import { type ProverNodePublisher } from '../prover-node-publisher.js';
5
- export interface ClaimsMonitorHandler {
6
- handleClaim(proofClaim: EpochProofClaim): Promise<void>;
7
- }
8
- export declare class ClaimsMonitor implements Traceable {
9
- private readonly l1Publisher;
10
- private options;
11
- private runningPromise;
12
- private log;
13
- private handler;
14
- private lastClaimEpochNumber;
15
- readonly tracer: Tracer;
16
- constructor(l1Publisher: ProverNodePublisher, options: {
17
- pollingIntervalMs: number;
18
- }, telemetry?: TelemetryClient);
19
- start(handler: ClaimsMonitorHandler): void;
20
- stop(): Promise<void>;
21
- work(): Promise<void>;
22
- protected getProverAddress(): EthAddress;
23
- }
24
- //# sourceMappingURL=claims-monitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claims-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/claims-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,qBAAa,aAAc,YAAW,SAAS;IAU3C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,GAAG,CAA8C;IAEzD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,oBAAoB,CAAqB;IAEjD,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGZ,WAAW,EAAE,mBAAmB,EACzC,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EAC9C,SAAS,GAAE,eAAsC;IAM5C,KAAK,CAAC,OAAO,EAAE,oBAAoB;IAM7B,IAAI;IAOJ,IAAI;IAgBjB,SAAS,CAAC,gBAAgB,IAAI,UAAU;CAGzC"}
@@ -1,22 +0,0 @@
1
- import { type L2BlockSource } from '@aztec/circuit-types';
2
- import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
3
- export interface EpochMonitorHandler {
4
- handleInitialEpochSync(epochNumber: bigint): Promise<void>;
5
- handleEpochCompleted(epochNumber: bigint): Promise<void>;
6
- }
7
- export declare class EpochMonitor implements Traceable {
8
- private readonly l2BlockSource;
9
- private options;
10
- private runningPromise;
11
- private log;
12
- readonly tracer: Tracer;
13
- private handler;
14
- private latestEpochNumber;
15
- constructor(l2BlockSource: L2BlockSource, options: {
16
- pollingIntervalMs: number;
17
- }, telemetry?: TelemetryClient);
18
- start(handler: EpochMonitorHandler): void;
19
- stop(): Promise<void>;
20
- work(): Promise<void>;
21
- }
22
- //# sourceMappingURL=epoch-monitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"epoch-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/epoch-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,qBAAa,YAAa,YAAW,SAAS;IAU1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,GAAG,CAA6C;IACxD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,OAAO,CAAkC;IAEjD,OAAO,CAAC,iBAAiB,CAAqB;gBAG3B,aAAa,EAAE,aAAa,EACrC,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EAC9C,SAAS,GAAE,eAAsC;IAM5C,KAAK,CAAC,OAAO,EAAE,mBAAmB;IAM5B,IAAI;IAMJ,IAAI;CAelB"}
@@ -1,3 +0,0 @@
1
- export * from './claims-monitor.js';
2
- export * from './epoch-monitor.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monitors/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -1,7 +0,0 @@
1
- import { type ConfigMappingsType } from '@aztec/foundation/config';
2
- export type ProverCoordinationConfig = {
3
- proverCoordinationNodeUrl: string | undefined;
4
- };
5
- export declare const proverCoordinationConfigMappings: ConfigMappingsType<ProverCoordinationConfig>;
6
- export declare function getTxProviderConfigFromEnv(): ProverCoordinationConfig;
7
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAyB,MAAM,0BAA0B,CAAC;AAE1F,MAAM,MAAM,wBAAwB,GAAG;IACrC,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,kBAAkB,CAAC,wBAAwB,CAMzF,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,wBAAwB,CAErE"}
@@ -1,22 +0,0 @@
1
- import { type ArchiveSource, type Archiver } from '@aztec/archiver';
2
- import { type ProverCoordination, type WorldStateSynchronizer } from '@aztec/circuit-types';
3
- import { type EpochCache } from '@aztec/epoch-cache';
4
- import { type DataStoreConfig } from '@aztec/kv-store/config';
5
- import { type TelemetryClient } from '@aztec/telemetry-client';
6
- import { type ProverNodeConfig } from '../config.js';
7
- type ProverCoordinationDeps = {
8
- aztecNodeTxProvider?: ProverCoordination;
9
- worldStateSynchronizer?: WorldStateSynchronizer;
10
- archiver?: Archiver | ArchiveSource;
11
- telemetry?: TelemetryClient;
12
- epochCache?: EpochCache;
13
- };
14
- /**
15
- * Creates a prover coordination service.
16
- * If p2p is enabled, prover coordination is done via p2p.
17
- * If an Aztec node URL is provided, prover coordination is done via the Aztec node over http.
18
- * If an aztec node is provided, it is returned directly.
19
- */
20
- export declare function createProverCoordination(config: ProverNodeConfig & DataStoreConfig, deps: ProverCoordinationDeps): Promise<ProverCoordination>;
21
- export {};
22
- //# sourceMappingURL=factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,KAAK,sBAAsB,GAAG;IAC5B,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAoC7B"}
@@ -1,3 +0,0 @@
1
- export * from './config.js';
2
- export * from './factory.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -1,67 +0,0 @@
1
- import { AZTEC_MAX_EPOCH_DURATION, type Proof } from '@aztec/circuits.js';
2
- import { type FeeRecipient, type RootRollupPublicInputs } from '@aztec/circuits.js/rollup';
3
- import { type L1TxUtils, type RollupContract } from '@aztec/ethereum';
4
- import { EthAddress } from '@aztec/foundation/eth-address';
5
- import { Fr } from '@aztec/foundation/fields';
6
- import { type Tuple } from '@aztec/foundation/serialize';
7
- import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client';
8
- import { type TelemetryClient } from '@aztec/telemetry-client';
9
- /**
10
- * Stats for a sent transaction.
11
- */
12
- /** Arguments to the submitEpochProof method of the rollup contract */
13
- export type L1SubmitEpochProofArgs = {
14
- epochSize: number;
15
- previousArchive: Fr;
16
- endArchive: Fr;
17
- previousBlockHash: Fr;
18
- endBlockHash: Fr;
19
- endTimestamp: Fr;
20
- outHash: Fr;
21
- proverId: Fr;
22
- fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>;
23
- proof: Proof;
24
- };
25
- export declare class ProverNodePublisher {
26
- private interruptibleSleep;
27
- private sleepTimeMs;
28
- private interrupted;
29
- private metrics;
30
- protected log: import("@aztec/foundation/log").Logger;
31
- protected rollupContract: RollupContract;
32
- readonly l1TxUtils: L1TxUtils;
33
- constructor(config: TxSenderConfig & PublisherConfig, deps: {
34
- rollupContract: RollupContract;
35
- l1TxUtils: L1TxUtils;
36
- telemetry?: TelemetryClient;
37
- });
38
- /**
39
- * Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
40
- * Be warned, the call may return false even if the tx subsequently gets successfully mined.
41
- * In practice this shouldn't matter, as we'll only ever be calling `interrupt` when we know it's going to fail.
42
- * A call to `restart` is required before you can continue publishing.
43
- */
44
- interrupt(): void;
45
- /** Restarts the publisher after calling `interrupt`. */
46
- restart(): void;
47
- getSenderAddress(): EthAddress;
48
- getProofClaim(): Promise<{
49
- epochToProve: bigint;
50
- basisPointFee: bigint;
51
- bondAmount: bigint;
52
- bondProvider: EthAddress;
53
- proposerClaimant: EthAddress;
54
- } | undefined>;
55
- submitEpochProof(args: {
56
- epochNumber: number;
57
- fromBlock: number;
58
- toBlock: number;
59
- publicInputs: RootRollupPublicInputs;
60
- proof: Proof;
61
- }): Promise<boolean>;
62
- private validateEpochProofSubmission;
63
- private sendSubmitEpochProofTx;
64
- private getSubmitEpochProofArgs;
65
- protected sleepOrInterrupted(): Promise<void>;
66
- }
67
- //# sourceMappingURL=prover-node-publisher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,wBAAwB,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAI5E,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF;;GAEG;AACH,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,iBAAiB,EAAE,EAAE,CAAC;IACtB,YAAY,EAAE,EAAE,CAAC;IACjB,YAAY,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;IACZ,QAAQ,EAAE,EAAE,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,CAAC;IAC3D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAoB;IAEnC,SAAS,CAAC,GAAG,yCAA+C;IAE5D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEzC,SAAgB,SAAS,EAAE,SAAS,CAAC;gBAGnC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE;QACJ,cAAc,EAAE,cAAc,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B;IAYH;;;;;OAKG;IACI,SAAS;IAKhB,wDAAwD;IACjD,OAAO;IAIP,gBAAgB;IAIhB,aAAa;;;;;;;IAIP,gBAAgB,CAAC,IAAI,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,OAAO,CAAC,OAAO,CAAC;YA0CN,4BAA4B;YAyD5B,sBAAsB;IAmDpC,OAAO,CAAC,uBAAuB;cA8Bf,kBAAkB;CAGnC"}
@@ -1,107 +0,0 @@
1
- import { type EpochProofClaim, type EpochProofQuote, type EpochProverManager, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type P2PClientType, type ProverCoordination, type ProverNodeApi, type Service, type Tx, type WorldStateSynchronizer } from '@aztec/circuit-types';
2
- import { type ContractDataSource } from '@aztec/circuits.js';
3
- import { type Maybe } from '@aztec/foundation/types';
4
- import { type P2P } from '@aztec/p2p';
5
- import { PublicProcessorFactory } from '@aztec/simulator/server';
6
- import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
7
- import { type BondManager } from './bond/bond-manager.js';
8
- import { EpochProvingJob, type EpochProvingJobState } from './job/epoch-proving-job.js';
9
- import { type ClaimsMonitor, type ClaimsMonitorHandler } from './monitors/claims-monitor.js';
10
- import { type EpochMonitor, type EpochMonitorHandler } from './monitors/epoch-monitor.js';
11
- import { type ProverNodePublisher } from './prover-node-publisher.js';
12
- import { type QuoteProvider } from './quote-provider/index.js';
13
- import { type QuoteSigner } from './quote-signer.js';
14
- export type ProverNodeOptions = {
15
- pollingIntervalMs: number;
16
- maxPendingJobs: number;
17
- maxParallelBlocksPerEpoch: number;
18
- txGatheringTimeoutMs: number;
19
- txGatheringIntervalMs: number;
20
- txGatheringMaxParallelRequests: number;
21
- };
22
- /**
23
- * An Aztec Prover Node is a standalone process that monitors the unfinalised chain on L1 for unproven blocks,
24
- * submits bids for proving them, and monitors if they are accepted. If so, the prover node fetches the txs
25
- * from a tx source in the p2p network or an external node, re-executes their public functions, creates a rollup
26
- * proof for the epoch, and submits it to L1.
27
- */
28
- export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, ProverNodeApi, Traceable {
29
- protected readonly prover: EpochProverManager;
30
- protected readonly publisher: ProverNodePublisher;
31
- protected readonly l2BlockSource: L2BlockSource & Maybe<Service>;
32
- protected readonly l1ToL2MessageSource: L1ToL2MessageSource;
33
- protected readonly contractDataSource: ContractDataSource;
34
- protected readonly worldState: WorldStateSynchronizer;
35
- protected readonly coordination: ProverCoordination & Maybe<Service>;
36
- protected readonly quoteProvider: QuoteProvider;
37
- protected readonly quoteSigner: QuoteSigner;
38
- protected readonly claimsMonitor: ClaimsMonitor;
39
- protected readonly epochsMonitor: EpochMonitor;
40
- protected readonly bondManager: BondManager;
41
- protected readonly telemetryClient: TelemetryClient;
42
- private log;
43
- private dateProvider;
44
- private latestEpochWeAreProving;
45
- private jobs;
46
- private cachedEpochData;
47
- private options;
48
- private metrics;
49
- readonly tracer: Tracer;
50
- constructor(prover: EpochProverManager, publisher: ProverNodePublisher, l2BlockSource: L2BlockSource & Maybe<Service>, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, worldState: WorldStateSynchronizer, coordination: ProverCoordination & Maybe<Service>, quoteProvider: QuoteProvider, quoteSigner: QuoteSigner, claimsMonitor: ClaimsMonitor, epochsMonitor: EpochMonitor, bondManager: BondManager, options?: Partial<ProverNodeOptions>, telemetryClient?: TelemetryClient);
51
- getP2P(): P2P<P2PClientType.Prover> | undefined;
52
- handleClaim(proofClaim: EpochProofClaim): Promise<void>;
53
- /**
54
- * Handles the epoch number to prove when the prover node starts by checking if there
55
- * is an existing claim for it. If not, it creates and sends a quote for it.
56
- * @param epochNumber - The epoch immediately before the current one when the prover node starts.
57
- */
58
- handleInitialEpochSync(epochNumber: bigint): Promise<void>;
59
- /**
60
- * Handles an epoch being completed by sending a quote for proving it.
61
- * @param epochNumber - The epoch number that was just completed.
62
- */
63
- handleEpochCompleted(epochNumber: bigint): Promise<void>;
64
- /**
65
- * Starts the prover node so it periodically checks for unproven epochs in the unfinalised chain from L1 and sends
66
- * quotes for them, as well as monitors the claims for the epochs it has sent quotes for and starts proving jobs.
67
- * This method returns once the prover node has deposited an initial bond into the escrow contract.
68
- */
69
- start(): Promise<void>;
70
- /**
71
- * Stops the prover node and all its dependencies.
72
- */
73
- stop(): Promise<void>;
74
- /** Sends an epoch proof quote to the coordinator. */
75
- sendEpochProofQuote(quote: EpochProofQuote): Promise<void>;
76
- private doSendEpochProofQuote;
77
- /**
78
- * Creates a proof for a block range. Returns once the proof has been submitted to L1.
79
- */
80
- prove(epochNumber: number | bigint): Promise<void>;
81
- /**
82
- * Starts a proving process and returns immediately.
83
- */
84
- startProof(epochNumber: number | bigint): Promise<void>;
85
- /**
86
- * Returns the prover instance.
87
- */
88
- getProver(): EpochProverManager;
89
- /**
90
- * Returns an array of jobs being processed.
91
- */
92
- getJobs(): Promise<{
93
- uuid: string;
94
- status: EpochProvingJobState;
95
- }[]>;
96
- private checkMaximumPendingJobs;
97
- private createProvingJob;
98
- private getL1Constants;
99
- private gatherEpochData;
100
- private gatherBlocks;
101
- private gatherTxs;
102
- /** Extracted for testing purposes. */
103
- protected doCreateEpochProvingJob(epochNumber: bigint, deadline: Date | undefined, blocks: L2Block[], txs: Tx[], publicProcessorFactory: PublicProcessorFactory, cleanUp: () => Promise<void>): EpochProvingJob;
104
- /** Extracted for testing purposes. */
105
- protected triggerMonitors(): Promise<void>;
106
- }
107
- //# sourceMappingURL=prover-node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { type L2Block } from '@aztec/circuit-types';
2
- import { type QuoteProvider, type QuoteProviderResult } from './index.js';
3
- export declare class HttpQuoteProvider implements QuoteProvider {
4
- private readonly url;
5
- constructor(url: string);
6
- getQuote(epochNumber: number, epoch: L2Block[]): Promise<QuoteProviderResult | undefined>;
7
- }
8
- export type HttpQuoteRequestPayload = {
9
- epochNumber: number;
10
- fromBlock: number;
11
- toBlock: number;
12
- totalFees: string;
13
- txCount: number;
14
- };
15
- //# sourceMappingURL=http.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/quote-provider/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG1E,qBAAa,iBAAkB,YAAW,aAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,MAAM;IAE3B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;CA8BvG;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { type EpochProofQuotePayload, type L2Block } from '@aztec/circuit-types';
2
- export type QuoteProviderResult = Pick<EpochProofQuotePayload, 'basisPointFee' | 'bondAmount'> & Partial<Pick<EpochProofQuotePayload, 'validUntilSlot'>>;
3
- export interface QuoteProvider {
4
- getQuote(epochNumber: number, epoch: L2Block[]): Promise<QuoteProviderResult | undefined>;
5
- }
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/quote-provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,eAAe,GAAG,YAAY,CAAC,GAC5F,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;CAC3F"}
@@ -1,9 +0,0 @@
1
- import { type EpochProofQuotePayload, type L2Block } from '@aztec/circuit-types';
2
- import { type QuoteProvider } from './index.js';
3
- export declare class SimpleQuoteProvider implements QuoteProvider {
4
- readonly basisPointFee: number;
5
- readonly bondAmount: bigint;
6
- constructor(basisPointFee: number, bondAmount: bigint);
7
- getQuote(_epochNumber: number, _epoch: L2Block[]): Promise<Pick<EpochProofQuotePayload, 'basisPointFee' | 'bondAmount'>>;
8
- }
9
- //# sourceMappingURL=simple.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../src/quote-provider/simple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qBAAa,mBAAoB,YAAW,aAAa;aAC3B,aAAa,EAAE,MAAM;aAAkB,UAAU,EAAE,MAAM;gBAAzD,aAAa,EAAE,MAAM,EAAkB,UAAU,EAAE,MAAM;IAErF,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,GAAG,YAAY,CAAC,CAAC;CAIzE"}
@@ -1,4 +0,0 @@
1
- import { type L2Block } from '@aztec/circuit-types';
2
- export declare function getTotalFees(epoch: L2Block[]): bigint;
3
- export declare function getTxCount(epoch: L2Block[]): number;
4
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/quote-provider/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,UAE5C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,UAE1C"}
@@ -1,13 +0,0 @@
1
- import { EpochProofQuote, type EpochProofQuotePayload } from '@aztec/circuit-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
3
- import { Secp256k1Signer } from '@aztec/foundation/crypto';
4
- import { type RollupAbi } from '@aztec/l1-artifacts';
5
- import { type GetContractReturnType, type PublicClient } from 'viem';
6
- export declare class QuoteSigner {
7
- private readonly signer;
8
- private readonly quoteToDigest;
9
- constructor(signer: Secp256k1Signer, quoteToDigest: (payload: EpochProofQuotePayload) => Promise<Buffer32>);
10
- static new(privateKey: Buffer32, rollupContract: GetContractReturnType<typeof RollupAbi, PublicClient>): QuoteSigner;
11
- sign(payload: EpochProofQuotePayload): Promise<EpochProofQuote>;
12
- }
13
- //# sourceMappingURL=quote-signer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quote-signer.d.ts","sourceRoot":"","sources":["../src/quote-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAErE,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,QAAQ,CAAC;IAGxF,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,YAAY,CAAC,GAAG,WAAW;IAMvG,IAAI,CAAC,OAAO,EAAE,sBAAsB;CAIlD"}
@@ -1,10 +0,0 @@
1
- import { type EpochProverManager } from '@aztec/circuit-types';
2
- import { type ProverNodePublisher } from '../prover-node-publisher.js';
3
- import { ProverNode } from '../prover-node.js';
4
- declare class TestProverNode_ extends ProverNode {
5
- prover: EpochProverManager;
6
- publisher: ProverNodePublisher;
7
- }
8
- export type TestProverNode = TestProverNode_;
9
- export {};
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,cAAM,eAAgB,SAAQ,UAAU;IACtB,MAAM,EAAG,kBAAkB,CAAC;IAC5B,SAAS,EAAG,mBAAmB,CAAC;CACjD;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC"}