@aztec/prover-node 0.76.4 → 0.77.0-testnet-ignition.21

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 (45) hide show
  1. package/dest/config.d.ts +5 -2
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +24 -30
  4. package/dest/factory.d.ts +6 -3
  5. package/dest/factory.d.ts.map +1 -1
  6. package/dest/factory.js +21 -14
  7. package/dest/http.d.ts +1 -1
  8. package/dest/http.d.ts.map +1 -1
  9. package/dest/http.js +2 -4
  10. package/dest/index.js +0 -1
  11. package/dest/job/epoch-proving-job.d.ts +7 -4
  12. package/dest/job/epoch-proving-job.d.ts.map +1 -1
  13. package/dest/job/epoch-proving-job.js +233 -193
  14. package/dest/metrics.d.ts +5 -2
  15. package/dest/metrics.d.ts.map +1 -1
  16. package/dest/metrics.js +50 -25
  17. package/dest/monitors/epoch-monitor.d.ts +22 -3
  18. package/dest/monitors/epoch-monitor.d.ts.map +1 -1
  19. package/dest/monitors/epoch-monitor.js +102 -48
  20. package/dest/monitors/index.js +0 -1
  21. package/dest/prover-coordination/config.js +2 -3
  22. package/dest/prover-coordination/factory.d.ts +5 -5
  23. package/dest/prover-coordination/factory.d.ts.map +1 -1
  24. package/dest/prover-coordination/factory.js +11 -8
  25. package/dest/prover-coordination/index.js +0 -1
  26. package/dest/prover-node-publisher.d.ts +5 -4
  27. package/dest/prover-node-publisher.d.ts.map +1 -1
  28. package/dest/prover-node-publisher.js +60 -52
  29. package/dest/prover-node.d.ts +12 -7
  30. package/dest/prover-node.d.ts.map +1 -1
  31. package/dest/prover-node.js +237 -224
  32. package/dest/test/index.d.ts +2 -2
  33. package/dest/test/index.d.ts.map +1 -1
  34. package/dest/test/index.js +2 -1
  35. package/package.json +21 -22
  36. package/src/config.ts +23 -31
  37. package/src/factory.ts +17 -8
  38. package/src/http.ts +2 -2
  39. package/src/job/epoch-proving-job.ts +11 -13
  40. package/src/metrics.ts +26 -5
  41. package/src/monitors/epoch-monitor.ts +57 -12
  42. package/src/prover-coordination/factory.ts +9 -12
  43. package/src/prover-node-publisher.ts +21 -14
  44. package/src/prover-node.ts +24 -22
  45. package/src/test/index.ts +2 -2
package/dest/metrics.js CHANGED
@@ -1,70 +1,92 @@
1
- import { Attributes, Metrics, ValueType, } from '@aztec/telemetry-client';
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
2
3
  import { formatEther } from 'viem';
3
4
  export class ProverNodeMetrics {
4
- constructor(client, name = 'ProverNode') {
5
+ client;
6
+ logger;
7
+ proverEpochExecutionDuration;
8
+ provingJobDuration;
9
+ provingJobBlocks;
10
+ provingJobTransactions;
11
+ gasPrice;
12
+ txCount;
13
+ txDuration;
14
+ txGas;
15
+ txCalldataSize;
16
+ txCalldataGas;
17
+ txBlobDataGasUsed;
18
+ txBlobDataGasCost;
19
+ senderBalance;
20
+ constructor(client, name = 'ProverNode', logger = createLogger('prover-node:publisher:metrics')){
5
21
  this.client = client;
22
+ this.logger = logger;
6
23
  const meter = client.getMeter(name);
7
24
  this.proverEpochExecutionDuration = meter.createHistogram(Metrics.PROVER_NODE_EXECUTION_DURATION, {
8
25
  description: 'Duration of execution of an epoch by the prover',
9
26
  unit: 'ms',
10
- valueType: ValueType.INT,
27
+ valueType: ValueType.INT
11
28
  });
12
29
  this.provingJobDuration = meter.createHistogram(Metrics.PROVER_NODE_JOB_DURATION, {
13
30
  description: 'Duration of proving job',
14
- unit: 'ms',
15
- valueType: ValueType.INT,
31
+ unit: 's',
32
+ valueType: ValueType.DOUBLE
16
33
  });
17
34
  this.provingJobBlocks = meter.createHistogram(Metrics.PROVER_NODE_JOB_BLOCKS, {
18
35
  description: 'Number of blocks in a proven epoch',
19
- valueType: ValueType.INT,
36
+ valueType: ValueType.INT
20
37
  });
21
38
  this.provingJobTransactions = meter.createHistogram(Metrics.PROVER_NODE_JOB_TRANSACTIONS, {
22
39
  description: 'Number of transactions in a proven epoch',
23
- valueType: ValueType.INT,
40
+ valueType: ValueType.INT
24
41
  });
25
42
  this.gasPrice = meter.createHistogram(Metrics.L1_PUBLISHER_GAS_PRICE, {
26
43
  description: 'The gas price used for transactions',
27
44
  unit: 'gwei',
28
- valueType: ValueType.DOUBLE,
45
+ valueType: ValueType.DOUBLE
29
46
  });
30
47
  this.txCount = meter.createUpDownCounter(Metrics.L1_PUBLISHER_TX_COUNT, {
31
- description: 'The number of transactions processed',
48
+ description: 'The number of transactions processed'
32
49
  });
33
50
  this.txDuration = meter.createHistogram(Metrics.L1_PUBLISHER_TX_DURATION, {
34
51
  description: 'The duration of transaction processing',
35
52
  unit: 'ms',
36
- valueType: ValueType.INT,
53
+ valueType: ValueType.INT
37
54
  });
38
55
  this.txGas = meter.createHistogram(Metrics.L1_PUBLISHER_TX_GAS, {
39
56
  description: 'The gas consumed by transactions',
40
57
  unit: 'gas',
41
- valueType: ValueType.INT,
58
+ valueType: ValueType.INT
42
59
  });
43
60
  this.txCalldataSize = meter.createHistogram(Metrics.L1_PUBLISHER_TX_CALLDATA_SIZE, {
44
61
  description: 'The size of the calldata in transactions',
45
62
  unit: 'By',
46
- valueType: ValueType.INT,
63
+ valueType: ValueType.INT
47
64
  });
48
65
  this.txCalldataGas = meter.createHistogram(Metrics.L1_PUBLISHER_TX_CALLDATA_GAS, {
49
66
  description: 'The gas consumed by the calldata in transactions',
50
67
  unit: 'gas',
51
- valueType: ValueType.INT,
68
+ valueType: ValueType.INT
52
69
  });
53
70
  this.txBlobDataGasUsed = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_USED, {
54
71
  description: 'The amount of blob gas used in transactions',
55
72
  unit: 'gas',
56
- valueType: ValueType.INT,
73
+ valueType: ValueType.INT
57
74
  });
58
75
  this.txBlobDataGasCost = meter.createHistogram(Metrics.L1_PUBLISHER_TX_BLOBDATA_GAS_COST, {
59
76
  description: 'The gas cost of blobs in transactions',
60
77
  unit: 'gwei',
61
- valueType: ValueType.INT,
78
+ valueType: ValueType.INT
79
+ });
80
+ this.senderBalance = meter.createGauge(Metrics.L1_PUBLISHER_BALANCE, {
81
+ unit: 'eth',
82
+ description: 'The balance of the sender address',
83
+ valueType: ValueType.DOUBLE
62
84
  });
63
85
  }
64
86
  recordFailedTx() {
65
87
  this.txCount.add(1, {
66
88
  [Attributes.L1_TX_TYPE]: 'submitProof',
67
- [Attributes.OK]: false,
89
+ [Attributes.OK]: false
68
90
  });
69
91
  }
70
92
  recordSubmitProof(durationMs, stats) {
@@ -72,22 +94,27 @@ export class ProverNodeMetrics {
72
94
  }
73
95
  recordProvingJob(executionTimeMs, totalTimeMs, numBlocks, numTxs) {
74
96
  this.proverEpochExecutionDuration.record(Math.ceil(executionTimeMs));
75
- this.provingJobDuration.record(Math.ceil(totalTimeMs));
97
+ this.provingJobDuration.record(totalTimeMs / 1000);
76
98
  this.provingJobBlocks.record(Math.floor(numBlocks));
77
99
  this.provingJobTransactions.record(Math.floor(numTxs));
78
100
  }
101
+ recordSenderBalance(wei, senderAddress) {
102
+ const eth = parseFloat(formatEther(wei, 'wei'));
103
+ this.senderBalance.record(eth, {
104
+ [Attributes.SENDER_ADDRESS]: senderAddress
105
+ });
106
+ }
79
107
  recordTx(durationMs, stats) {
80
108
  const attributes = {
81
109
  [Attributes.L1_TX_TYPE]: 'submitProof',
82
- [Attributes.L1_SENDER]: stats.sender,
110
+ [Attributes.L1_SENDER]: stats.sender
83
111
  };
84
112
  this.txCount.add(1, {
85
113
  ...attributes,
86
- [Attributes.OK]: true,
114
+ [Attributes.OK]: true
87
115
  });
88
116
  this.txDuration.record(Math.ceil(durationMs), attributes);
89
- this.txGas.record(
90
- // safe to downcast - total block limit is 30M gas which fits in a JS number
117
+ this.txGas.record(// safe to downcast - total block limit is 30M gas which fits in a JS number
91
118
  Number(stats.gasUsed), attributes);
92
119
  this.txCalldataGas.record(stats.calldataGas, attributes);
93
120
  this.txCalldataSize.record(stats.calldataSize, attributes);
@@ -95,10 +122,8 @@ export class ProverNodeMetrics {
95
122
  this.txBlobDataGasUsed.record(Number(stats.blobGasUsed), attributes);
96
123
  try {
97
124
  this.gasPrice.record(parseInt(formatEther(stats.gasPrice, 'gwei'), 10));
98
- }
99
- catch (e) {
100
- // ignore
125
+ } catch (e) {
126
+ // ignore
101
127
  }
102
128
  }
103
129
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxVQUFVLEVBRVYsT0FBTyxFQUdQLFNBQVMsR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkMsTUFBTSxPQUFPLGlCQUFpQjtJQWU1QixZQUE0QixNQUF1QixFQUFFLElBQUksR0FBRyxZQUFZO1FBQTVDLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ2pELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFO1lBQ2hHLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFO1lBQ2hGLFdBQVcsRUFBRSx5QkFBeUI7WUFDdEMsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFO1lBQzVFLFdBQVcsRUFBRSxvQ0FBb0M7WUFDakQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUN4RixXQUFXLEVBQUUsMENBQTBD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
@@ -1,21 +1,40 @@
1
- import { type L2BlockSource } from '@aztec/circuit-types';
1
+ import type { L2BlockSource } from '@aztec/stdlib/block';
2
+ import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
2
3
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
3
4
  export interface EpochMonitorHandler {
4
- handleEpochCompleted(epochNumber: bigint): Promise<void>;
5
+ handleEpochReadyToProve(epochNumber: bigint): Promise<void>;
5
6
  }
7
+ /**
8
+ * Fires an event when a new epoch ready to prove is detected.
9
+ *
10
+ * We define an epoch as ready to prove when:
11
+ * - The epoch is complete
12
+ * - Its blocks have not been reorg'd out due to a missing L2 proof
13
+ * - Its first block is the immediate successor of the last proven block
14
+ *
15
+ * This class periodically hits the L2BlockSource.
16
+ * On start it will trigger the event for the last epoch ready to prove.
17
+ */
6
18
  export declare class EpochMonitor implements Traceable {
7
19
  private readonly l2BlockSource;
20
+ private readonly l1Constants;
8
21
  private options;
9
22
  private runningPromise;
10
23
  private log;
11
24
  readonly tracer: Tracer;
12
25
  private handler;
13
26
  private latestEpochNumber;
14
- constructor(l2BlockSource: L2BlockSource, options: {
27
+ constructor(l2BlockSource: L2BlockSource, l1Constants: Pick<L1RollupConstants, 'epochDuration'>, options: {
15
28
  pollingIntervalMs: number;
16
29
  }, telemetry?: TelemetryClient);
30
+ static create(l2BlockSource: L2BlockSource, options: {
31
+ pollingIntervalMs: number;
32
+ }, telemetry?: TelemetryClient): Promise<EpochMonitor>;
17
33
  start(handler: EpochMonitorHandler): void;
34
+ /** Exposed for testing */
35
+ setHandler(handler: EpochMonitorHandler): void;
18
36
  stop(): Promise<void>;
19
37
  work(): Promise<void>;
38
+ private getEpochNumberToProve;
20
39
  }
21
40
  //# sourceMappingURL=epoch-monitor.d.ts.map
@@ -1 +1 @@
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,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
+ {"version":3,"file":"epoch-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/epoch-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,6BAA6B,CAAC;AACrF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,YAAW,SAAS;IAS1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,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;IACjD,OAAO,CAAC,iBAAiB,CAAqB;gBAG3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAC9D,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EAC9C,SAAS,GAAE,eAAsC;WAM/B,MAAM,CACxB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EACtC,SAAS,GAAE,eAAsC,GAChD,OAAO,CAAC,YAAY,CAAC;IAKjB,KAAK,CAAC,OAAO,EAAE,mBAAmB;IAMzC,0BAA0B;IACnB,UAAU,CAAC,OAAO,EAAE,mBAAmB;IAIjC,IAAI;IAMJ,IAAI;YAsBH,qBAAqB;CAYpC"}
@@ -1,50 +1,104 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
2
7
  import { createLogger } from '@aztec/foundation/log';
3
8
  import { RunningPromise } from '@aztec/foundation/running-promise';
4
- import { getTelemetryClient, trackSpan, } from '@aztec/telemetry-client';
5
- let EpochMonitor = (() => {
6
- var _a;
7
- let _instanceExtraInitializers = [];
8
- let _work_decorators;
9
- return _a = class EpochMonitor {
10
- constructor(l2BlockSource, options, telemetry = getTelemetryClient()) {
11
- this.l2BlockSource = (__runInitializers(this, _instanceExtraInitializers), l2BlockSource);
12
- this.options = options;
13
- this.log = createLogger('prover-node:epoch-monitor');
14
- this.tracer = telemetry.getTracer('EpochMonitor');
15
- this.runningPromise = new RunningPromise(this.work.bind(this), this.log, this.options.pollingIntervalMs);
16
- }
17
- start(handler) {
18
- this.handler = handler;
19
- this.runningPromise.start();
20
- this.log.info('Started EpochMonitor', this.options);
21
- }
22
- async stop() {
23
- await this.runningPromise.stop();
24
- this.log.info('Stopped EpochMonitor');
25
- }
26
- async work() {
27
- if (!this.latestEpochNumber) {
28
- const epochNumber = await this.l2BlockSource.getL2EpochNumber();
29
- if (epochNumber > 0n) {
30
- await this.handler?.handleEpochCompleted(epochNumber - 1n);
31
- }
32
- this.latestEpochNumber = epochNumber;
33
- return;
34
- }
35
- if (await this.l2BlockSource.isEpochComplete(this.latestEpochNumber)) {
36
- await this.handler?.handleEpochCompleted(this.latestEpochNumber);
37
- this.latestEpochNumber += 1n;
38
- }
39
- }
40
- },
41
- (() => {
42
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
43
- _work_decorators = [trackSpan('EpochMonitor.work')];
44
- __esDecorate(_a, null, _work_decorators, { kind: "method", name: "work", static: false, private: false, access: { has: obj => "work" in obj, get: obj => obj.work }, metadata: _metadata }, null, _instanceExtraInitializers);
45
- if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
46
- })(),
47
- _a;
48
- })();
49
- export { EpochMonitor };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb25pdG9ycy9lcG9jaC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFJTCxrQkFBa0IsRUFDbEIsU0FBUyxHQUNWLE1BQU0seUJBQXlCLENBQUM7SUFNcEIsWUFBWTs7OztzQkFBWixZQUFZO1lBU3ZCLFlBQ21CLGFBQTRCLEVBQ3JDLE9BQXNDLEVBQzlDLFlBQTZCLGtCQUFrQixFQUFFO2dCQUZoQyxrQkFBYSxJQVZyQixtREFBWSxFQVVKLGFBQWEsRUFBZTtnQkFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7Z0JBVHhDLFFBQUcsR0FBRyxZQUFZLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFZdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNHLENBQUM7WUFFTSxLQUFLLENBQUMsT0FBNEI7Z0JBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUVNLEtBQUssQ0FBQyxJQUFJO2dCQUNmLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBR00sS0FBSyxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUM1QixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDaEUsSUFBSSxXQUFXLEdBQUcsRUFBRSxFQUFFLENBQUM7d0JBQ3JCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQzdELENBQUM7b0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztvQkFDckMsT0FBTztnQkFDVCxDQUFDO2dCQUVELElBQUksTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO29CQUNyRSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ2pFLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7Z0JBQy9CLENBQUM7WUFDSCxDQUFDOzs7O2dDQWZBLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvQiw2SkFBYSxJQUFJLDZEQWNoQjs7Ozs7U0E1Q1UsWUFBWSJ9
9
+ import { getEpochAtSlot } from '@aztec/stdlib/epoch-helpers';
10
+ import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
11
+ /**
12
+ * Fires an event when a new epoch ready to prove is detected.
13
+ *
14
+ * We define an epoch as ready to prove when:
15
+ * - The epoch is complete
16
+ * - Its blocks have not been reorg'd out due to a missing L2 proof
17
+ * - Its first block is the immediate successor of the last proven block
18
+ *
19
+ * This class periodically hits the L2BlockSource.
20
+ * On start it will trigger the event for the last epoch ready to prove.
21
+ */ export class EpochMonitor {
22
+ l2BlockSource;
23
+ l1Constants;
24
+ options;
25
+ runningPromise;
26
+ log;
27
+ tracer;
28
+ handler;
29
+ latestEpochNumber;
30
+ constructor(l2BlockSource, l1Constants, options, telemetry = getTelemetryClient()){
31
+ this.l2BlockSource = l2BlockSource;
32
+ this.l1Constants = l1Constants;
33
+ this.options = options;
34
+ this.log = createLogger('prover-node:epoch-monitor');
35
+ this.tracer = telemetry.getTracer('EpochMonitor');
36
+ this.runningPromise = new RunningPromise(this.work.bind(this), this.log, this.options.pollingIntervalMs);
37
+ }
38
+ static async create(l2BlockSource, options, telemetry = getTelemetryClient()) {
39
+ const l1Constants = await l2BlockSource.getL1Constants();
40
+ return new EpochMonitor(l2BlockSource, l1Constants, options, telemetry);
41
+ }
42
+ start(handler) {
43
+ this.handler = handler;
44
+ this.runningPromise.start();
45
+ this.log.info('Started EpochMonitor', this.options);
46
+ }
47
+ /** Exposed for testing */ setHandler(handler) {
48
+ this.handler = handler;
49
+ }
50
+ async stop() {
51
+ await this.runningPromise.stop();
52
+ this.log.info('Stopped EpochMonitor');
53
+ }
54
+ async work() {
55
+ const { epochToProve, blockNumber, slotNumber } = await this.getEpochNumberToProve();
56
+ if (epochToProve === undefined) {
57
+ this.log.trace(`Next block to prove ${blockNumber} not yet mined`, {
58
+ blockNumber
59
+ });
60
+ return;
61
+ }
62
+ if (this.latestEpochNumber !== undefined && epochToProve <= this.latestEpochNumber) {
63
+ this.log.trace(`Epoch ${epochToProve} already processed`, {
64
+ epochToProve,
65
+ blockNumber,
66
+ slotNumber
67
+ });
68
+ return;
69
+ }
70
+ const isCompleted = await this.l2BlockSource.isEpochComplete(epochToProve);
71
+ if (!isCompleted) {
72
+ this.log.trace(`Epoch ${epochToProve} is not complete`, {
73
+ epochToProve,
74
+ blockNumber,
75
+ slotNumber
76
+ });
77
+ return;
78
+ }
79
+ this.log.debug(`Epoch ${epochToProve} is ready to be proven`);
80
+ await this.handler?.handleEpochReadyToProve(epochToProve);
81
+ this.latestEpochNumber = epochToProve;
82
+ }
83
+ async getEpochNumberToProve() {
84
+ const lastBlockProven = await this.l2BlockSource.getProvenBlockNumber();
85
+ const firstBlockToProve = lastBlockProven + 1;
86
+ const firstBlockHeaderToProve = await this.l2BlockSource.getBlockHeader(firstBlockToProve);
87
+ if (!firstBlockHeaderToProve) {
88
+ return {
89
+ epochToProve: undefined,
90
+ blockNumber: firstBlockToProve
91
+ };
92
+ }
93
+ const firstSlotOfEpochToProve = firstBlockHeaderToProve.getSlot();
94
+ const epochToProve = getEpochAtSlot(firstSlotOfEpochToProve, this.l1Constants);
95
+ return {
96
+ epochToProve,
97
+ blockNumber: firstBlockToProve,
98
+ slotNumber: firstSlotOfEpochToProve
99
+ };
100
+ }
101
+ }
102
+ _ts_decorate([
103
+ trackSpan('EpochMonitor.work')
104
+ ], EpochMonitor.prototype, "work", null);
@@ -1,2 +1 @@
1
1
  export * from './epoch-monitor.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uaXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyJ9
@@ -3,10 +3,9 @@ export const proverCoordinationConfigMappings = {
3
3
  proverCoordinationNodeUrl: {
4
4
  env: 'PROVER_COORDINATION_NODE_URL',
5
5
  description: 'The URL of the tx provider node',
6
- parseEnv: (val) => val,
7
- },
6
+ parseEnv: (val)=>val
7
+ }
8
8
  };
9
9
  export function getTxProviderConfigFromEnv() {
10
10
  return getConfigFromMappings(proverCoordinationConfigMappings);
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1jb29yZGluYXRpb24vY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU0xRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBaUQ7SUFDNUYseUJBQXlCLEVBQUU7UUFDekIsR0FBRyxFQUFFLDhCQUE4QjtRQUNuQyxXQUFXLEVBQUUsaUNBQWlDO1FBQzlDLFFBQVEsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRztLQUMvQjtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsMEJBQTBCO0lBQ3hDLE9BQU8scUJBQXFCLENBQTJCLGdDQUFnQyxDQUFDLENBQUM7QUFDM0YsQ0FBQyJ9
@@ -1,9 +1,9 @@
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';
1
+ import type { ArchiveSource, Archiver } from '@aztec/archiver';
2
+ import type { EpochCache } from '@aztec/epoch-cache';
3
+ import type { DataStoreConfig } from '@aztec/kv-store/config';
4
+ import type { ProverCoordination, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
5
5
  import { type TelemetryClient } from '@aztec/telemetry-client';
6
- import { type ProverNodeConfig } from '../config.js';
6
+ import type { ProverNodeConfig } from '../config.js';
7
7
  type ProverCoordinationDeps = {
8
8
  aztecNodeTxProvider?: ProverCoordination;
9
9
  worldStateSynchronizer?: WorldStateSynchronizer;
@@ -1 +1 @@
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,EAG5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,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,CAqC7B"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAGlG,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,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,CAqC7B"}
@@ -1,17 +1,18 @@
1
1
  import { BBCircuitVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
2
- import { P2PClientType, createAztecNodeClient, getComponentsVersionsFromConfig, } from '@aztec/circuit-types';
3
2
  import { createLogger } from '@aztec/foundation/log';
4
- import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vks';
3
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
5
4
  import { createP2PClient } from '@aztec/p2p';
6
5
  import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
6
+ import { createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
7
+ import { P2PClientType } from '@aztec/stdlib/p2p';
8
+ import { getComponentsVersionsFromConfig } from '@aztec/stdlib/versioning';
7
9
  import { makeTracedFetch } from '@aztec/telemetry-client';
8
10
  /**
9
11
  * Creates a prover coordination service.
10
12
  * If p2p is enabled, prover coordination is done via p2p.
11
13
  * If an Aztec node URL is provided, prover coordination is done via the Aztec node over http.
12
14
  * If an aztec node is provided, it is returned directly.
13
- */
14
- export async function createProverCoordination(config, deps) {
15
+ */ export async function createProverCoordination(config, deps) {
15
16
  const log = createLogger('prover-node:prover-coordination');
16
17
  if (deps.aztecNodeTxProvider) {
17
18
  log.info('Using prover coordination via aztec node');
@@ -30,10 +31,12 @@ export async function createProverCoordination(config, deps) {
30
31
  if (config.proverCoordinationNodeUrl) {
31
32
  log.info('Using prover coordination via node url');
32
33
  const versions = getComponentsVersionsFromConfig(config, protocolContractTreeRoot, getVKTreeRoot());
33
- return createAztecNodeClient(config.proverCoordinationNodeUrl, versions, makeTracedFetch([1, 2, 3], false));
34
- }
35
- else {
34
+ return createAztecNodeClient(config.proverCoordinationNodeUrl, versions, makeTracedFetch([
35
+ 1,
36
+ 2,
37
+ 3
38
+ ], false));
39
+ } else {
36
40
  throw new Error(`Aztec Node URL for Tx Provider is not set.`);
37
41
  }
38
42
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY29vcmRpbmF0aW9uL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUNMLGFBQWEsRUFHYixxQkFBcUIsRUFDckIsK0JBQStCLEdBQ2hDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFhaEY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxNQUEwQyxFQUMxQyxJQUE0QjtJQUU1QixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUU1RCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsR0FBRyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxRixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0saUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDMUcsTUFBTSxTQUFTLEdBQUcsTUFBTSxlQUFlLENBQ3JDLGFBQWEsQ0FBQyxNQUFNLEVBQ3BCLE1BQU0sRUFDTixJQUFJLENBQUMsUUFBUSxFQUNiLGFBQWEsRUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQzNCLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FDZixDQUFDO1FBQ0YsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFeEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLCtCQUErQixDQUFDLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDaEUsQ0FBQztBQUNILENBQUMifQ==
@@ -1,3 +1,2 @@
1
1
  export * from './config.js';
2
2
  export * from './factory.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWNvb3JkaW5hdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQyJ9
@@ -1,10 +1,11 @@
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';
1
+ import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
2
+ import type { L1TxUtils, RollupContract } from '@aztec/ethereum';
4
3
  import { EthAddress } from '@aztec/foundation/eth-address';
5
4
  import { Fr } from '@aztec/foundation/fields';
6
5
  import { type Tuple } from '@aztec/foundation/serialize';
7
- import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client';
6
+ import type { PublisherConfig, TxSenderConfig } from '@aztec/sequencer-client';
7
+ import type { Proof } from '@aztec/stdlib/proofs';
8
+ import type { FeeRecipient, RootRollupPublicInputs } from '@aztec/stdlib/rollup';
8
9
  import { type TelemetryClient } from '@aztec/telemetry-client';
9
10
  /**
10
11
  * Stats for a sent transaction.
@@ -1 +1 @@
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;IAIV,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;IAoDpC,OAAO,CAAC,uBAAuB;cA+Bf,kBAAkB;CAGnC"}
1
+ {"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjE,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,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,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;IAIV,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;YAgDN,4BAA4B;YAyD5B,sBAAsB;IAoDpC,OAAO,CAAC,uBAAuB;cA+Bf,kBAAkB;CAGnC"}