@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
@@ -1,4 +1,4 @@
1
- import { AGGREGATION_OBJECT_LENGTH, AZTEC_MAX_EPOCH_DURATION } from '@aztec/circuits.js';
1
+ import { AGGREGATION_OBJECT_LENGTH, AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
3
  import { areArraysEqual, times } from '@aztec/foundation/collection';
4
4
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -12,28 +12,30 @@ import { getTelemetryClient } from '@aztec/telemetry-client';
12
12
  import { encodeFunctionData } from 'viem';
13
13
  import { ProverNodeMetrics } from './metrics.js';
14
14
  export class ProverNodePublisher {
15
- constructor(config, deps) {
16
- this.interruptibleSleep = new InterruptibleSleep();
17
- this.interrupted = false;
18
- this.log = createLogger('prover-node:l1-tx-publisher');
19
- this.sleepTimeMs = config?.l1PublishRetryIntervalMS ?? 60000;
15
+ interruptibleSleep = new InterruptibleSleep();
16
+ sleepTimeMs;
17
+ interrupted = false;
18
+ metrics;
19
+ log = createLogger('prover-node:l1-tx-publisher');
20
+ rollupContract;
21
+ l1TxUtils;
22
+ constructor(config, deps){
23
+ this.sleepTimeMs = config?.l1PublishRetryIntervalMS ?? 60_000;
20
24
  const telemetry = deps.telemetry ?? getTelemetryClient();
21
25
  this.metrics = new ProverNodeMetrics(telemetry, 'ProverNode');
22
26
  this.rollupContract = deps.rollupContract;
23
27
  this.l1TxUtils = deps.l1TxUtils;
24
28
  }
25
29
  /**
26
- * Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
27
- * Be warned, the call may return false even if the tx subsequently gets successfully mined.
28
- * In practice this shouldn't matter, as we'll only ever be calling `interrupt` when we know it's going to fail.
29
- * A call to `restart` is required before you can continue publishing.
30
- */
31
- interrupt() {
30
+ * Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
31
+ * Be warned, the call may return false even if the tx subsequently gets successfully mined.
32
+ * In practice this shouldn't matter, as we'll only ever be calling `interrupt` when we know it's going to fail.
33
+ * A call to `restart` is required before you can continue publishing.
34
+ */ interrupt() {
32
35
  this.interrupted = true;
33
36
  this.interruptibleSleep.interrupt();
34
37
  }
35
- /** Restarts the publisher after calling `interrupt`. */
36
- restart() {
38
+ /** Restarts the publisher after calling `interrupt`. */ restart() {
37
39
  this.interrupted = false;
38
40
  }
39
41
  getSenderAddress() {
@@ -41,7 +43,11 @@ export class ProverNodePublisher {
41
43
  }
42
44
  async submitEpochProof(args) {
43
45
  const { epochNumber, fromBlock, toBlock } = args;
44
- const ctx = { epochNumber, fromBlock, toBlock };
46
+ const ctx = {
47
+ epochNumber,
48
+ fromBlock,
49
+ toBlock
50
+ };
45
51
  if (!this.interrupted) {
46
52
  const timer = new Timer();
47
53
  // Validate epoch proof range and hashes are correct before submitting
@@ -50,6 +56,11 @@ export class ProverNodePublisher {
50
56
  if (!txReceipt) {
51
57
  return false;
52
58
  }
59
+ try {
60
+ this.metrics.recordSenderBalance(await this.l1TxUtils.getSenderBalance(), this.l1TxUtils.getSenderAddress());
61
+ } catch (err) {
62
+ this.log.warn(`Failed to record the ETH balance of the prover node: ${err}`);
63
+ }
53
64
  // Tx was mined successfully
54
65
  if (txReceipt.status) {
55
66
  const tx = await this.l1TxUtils.getTransactionStats(txReceipt.transactionHash);
@@ -62,9 +73,12 @@ export class ProverNodePublisher {
62
73
  sender: tx.sender,
63
74
  blobDataGas: 0n,
64
75
  blobGasUsed: 0n,
65
- eventName: 'proof-published-to-l1',
76
+ eventName: 'proof-published-to-l1'
66
77
  };
67
- this.log.info(`Published epoch proof to L1 rollup contract`, { ...stats, ...ctx });
78
+ this.log.info(`Published epoch proof to L1 rollup contract`, {
79
+ ...stats,
80
+ ...ctx
81
+ });
68
82
  this.metrics.recordSubmitProof(timer.ms(), stats);
69
83
  return true;
70
84
  }
@@ -104,12 +118,13 @@ export class ProverNodePublisher {
104
118
  }
105
119
  // Compare the public inputs computed by the contract with the ones injected
106
120
  const rollupPublicInputs = await this.rollupContract.getEpochProofPublicInputs(this.getSubmitEpochProofArgs(args));
107
- const aggregationObject = proof.isEmpty()
108
- ? times(AGGREGATION_OBJECT_LENGTH, Fr.zero)
109
- : proof.extractAggregationObject();
110
- const argsPublicInputs = [...publicInputs.toFields(), ...aggregationObject];
111
- if (!areArraysEqual(rollupPublicInputs.map(Fr.fromHexString), argsPublicInputs, (a, b) => a.equals(b))) {
112
- const fmt = (inputs) => inputs.map(x => x.toString()).join(', ');
121
+ const aggregationObject = proof.isEmpty() ? times(AGGREGATION_OBJECT_LENGTH, Fr.zero) : proof.extractAggregationObject();
122
+ const argsPublicInputs = [
123
+ ...publicInputs.toFields(),
124
+ ...aggregationObject
125
+ ];
126
+ if (!areArraysEqual(rollupPublicInputs.map(Fr.fromHexString), argsPublicInputs, (a, b)=>a.equals(b))) {
127
+ const fmt = (inputs)=>inputs.map((x)=>x.toString()).join(', ');
113
128
  throw new Error(`Root rollup public inputs mismatch:\nRollup: ${fmt(rollupPublicInputs)}\nComputed:${fmt(argsPublicInputs)}`);
114
129
  }
115
130
  }
@@ -124,32 +139,31 @@ export class ProverNodePublisher {
124
139
  fees: argsArray[3],
125
140
  blobPublicInputs: argsArray[4],
126
141
  aggregationObject: argsArray[5],
127
- proof: proofHex,
128
- },
142
+ proof: proofHex
143
+ }
129
144
  ];
130
145
  this.log.info(`SubmitEpochProof proofSize=${args.proof.withoutPublicInputs().length} bytes`);
131
146
  const data = encodeFunctionData({
132
147
  abi: RollupAbi,
133
148
  functionName: 'submitEpochRootProof',
134
- args: txArgs,
149
+ args: txArgs
135
150
  });
136
151
  try {
137
152
  const { receipt } = await this.l1TxUtils.sendAndMonitorTransaction({
138
153
  to: this.rollupContract.address,
139
- data,
154
+ data
140
155
  });
141
156
  return receipt;
142
- }
143
- catch (err) {
157
+ } catch (err) {
144
158
  this.log.error(`Rollup submit epoch proof failed`, err);
145
159
  const errorMsg = await this.l1TxUtils.tryGetErrorFromRevertedTx(data, {
146
- args: [...txArgs],
160
+ args: [
161
+ ...txArgs
162
+ ],
147
163
  functionName: 'submitEpochRootProof',
148
164
  abi: RollupAbi,
149
- address: this.rollupContract.address,
150
- },
151
- /*blobInputs*/ undefined,
152
- /*stateOverride*/ []);
165
+ address: this.rollupContract.address
166
+ }, /*blobInputs*/ undefined, /*stateOverride*/ []);
153
167
  this.log.error(`Rollup submit epoch proof tx reverted. ${errorMsg}`);
154
168
  return undefined;
155
169
  }
@@ -158,27 +172,21 @@ export class ProverNodePublisher {
158
172
  return [
159
173
  BigInt(args.fromBlock),
160
174
  BigInt(args.toBlock),
161
- [
162
- args.publicInputs.previousArchive.root.toString(),
163
- args.publicInputs.endArchive.root.toString(),
164
- args.publicInputs.previousBlockHash.toString(),
165
- args.publicInputs.endBlockHash.toString(),
166
- args.publicInputs.endTimestamp.toString(),
167
- args.publicInputs.outHash.toString(),
168
- args.publicInputs.proverId.toString(),
169
- ],
170
- makeTuple(AZTEC_MAX_EPOCH_DURATION * 2, i => i % 2 === 0
171
- ? args.publicInputs.fees[i / 2].recipient.toField().toString()
172
- : args.publicInputs.fees[(i - 1) / 2].value.toString()),
173
- `0x${args.publicInputs.blobPublicInputs
174
- .filter((_, i) => i < args.toBlock - args.fromBlock + 1)
175
- .map(b => b.toString())
176
- .join(``)}`,
177
- `0x${serializeToBuffer(args.proof.extractAggregationObject()).toString('hex')}`,
175
+ {
176
+ previousArchive: args.publicInputs.previousArchive.root.toString(),
177
+ endArchive: args.publicInputs.endArchive.root.toString(),
178
+ previousBlockHash: args.publicInputs.previousBlockHash.toString(),
179
+ endBlockHash: args.publicInputs.endBlockHash.toString(),
180
+ endTimestamp: args.publicInputs.endTimestamp.toBigInt(),
181
+ outHash: args.publicInputs.outHash.toString(),
182
+ proverId: EthAddress.fromField(args.publicInputs.proverId).toString()
183
+ },
184
+ makeTuple(AZTEC_MAX_EPOCH_DURATION * 2, (i)=>i % 2 === 0 ? args.publicInputs.fees[i / 2].recipient.toField().toString() : args.publicInputs.fees[(i - 1) / 2].value.toString()),
185
+ `0x${args.publicInputs.blobPublicInputs.filter((_, i)=>i < args.toBlock - args.fromBlock + 1).map((b)=>b.toString()).join(``)}`,
186
+ `0x${serializeToBuffer(args.proof.extractAggregationObject()).toString('hex')}`
178
187
  ];
179
188
  }
180
189
  async sleepOrInterrupted() {
181
190
  await this.interruptibleSleep.sleep(this.sleepTimeMs);
182
191
  }
183
192
  }
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUtcHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3Zlci1ub2RlLXB1Ymxpc2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQWMsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBd0Isa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEVBQXFDLGtCQUFrQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQW1CakQsTUFBTSxPQUFPLG1CQUFtQjtJQVk5QixZQUNFLE1BQXdDLEVBQ3hDLElBSUM7UUFqQkssdUJBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRTlDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR2xCLFFBQUcsR0FBRyxZQUFZLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQWMxRCxJQUFJLENBQUMs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
@@ -1,12 +1,16 @@
1
- import { 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';
1
+ import type { Maybe } from '@aztec/foundation/types';
2
+ import type { P2P } from '@aztec/p2p';
5
3
  import { PublicProcessorFactory } from '@aztec/simulator/server';
4
+ import type { L2Block, L2BlockSource } from '@aztec/stdlib/block';
5
+ import type { ContractDataSource } from '@aztec/stdlib/contract';
6
+ import { type EpochProverManager, type ProverCoordination, type ProverNodeApi, type Service, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
7
+ import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
8
+ import type { P2PClientType } from '@aztec/stdlib/p2p';
9
+ import type { Tx } from '@aztec/stdlib/tx';
6
10
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
7
11
  import { EpochProvingJob, type EpochProvingJobState } from './job/epoch-proving-job.js';
8
- import { type EpochMonitor, type EpochMonitorHandler } from './monitors/epoch-monitor.js';
9
- import { type ProverNodePublisher } from './prover-node-publisher.js';
12
+ import type { EpochMonitor, EpochMonitorHandler } from './monitors/epoch-monitor.js';
13
+ import type { ProverNodePublisher } from './prover-node-publisher.js';
10
14
  export type ProverNodeOptions = {
11
15
  pollingIntervalMs: number;
12
16
  maxPendingJobs: number;
@@ -42,12 +46,13 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
42
46
  private lastBlockNumber;
43
47
  readonly tracer: Tracer;
44
48
  constructor(prover: EpochProverManager, publisher: ProverNodePublisher, l2BlockSource: L2BlockSource & Maybe<Service>, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, worldState: WorldStateSynchronizer, coordination: ProverCoordination & Maybe<Service>, epochsMonitor: EpochMonitor, options?: Partial<ProverNodeOptions>, telemetryClient?: TelemetryClient);
49
+ getProverId(): import("@aztec/aztec.js").Fr;
45
50
  getP2P(): P2P<P2PClientType.Prover> | undefined;
46
51
  /**
47
52
  * Handles an epoch being completed by starting a proof for it if there are no active jobs for it.
48
53
  * @param epochNumber - The epoch number that was just completed.
49
54
  */
50
- handleEpochCompleted(epochNumber: bigint): Promise<void>;
55
+ handleEpochReadyToProve(epochNumber: bigint): Promise<void>;
51
56
  /**
52
57
  * Starts the prover node so it periodically checks for unproven epochs in the unfinalised chain from L1 and
53
58
  * starts proving jobs for them.
@@ -1 +1 @@
1
- {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,EAAE,EAEP,KAAK,sBAAsB,EAG5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM7D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,8BAA8B,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,mBAAmB,EAAE,aAAa,EAAE,SAAS;IAgB5E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB;IAC7C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,mBAAmB;IACjD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;IAChE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB;IAC3D,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;IACzD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,sBAAsB;IACrD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;IACpE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY;IAE9C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IAxBrD,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,uBAAuB,CAAqB;IACpD,OAAO,CAAC,IAAI,CAA2C;IACvD,OAAO,CAAC,eAAe,CAAgF;IACvG,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAoB;IAEnC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,eAAe,CAAqB;IAE5C,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGV,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,EAC7C,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,EACjD,aAAa,EAAE,YAAY,EAC9C,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM,EACrB,eAAe,GAAE,eAAsC;IAiBrE,MAAM;IAQb;;;OAGG;IACG,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9D;;;OAGG;IACH,KAAK;IAML;;OAEG;IACG,IAAI;IAcV;;OAEG;IACU,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAK/C;;OAEG;IACU,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAKpD;;OAEG;IACI,SAAS;IAIhB;;OAEG;IACI,OAAO,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;cAUhF,qBAAqB,CACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAA;KAAE,EAAE,CAAC;IAM5D,OAAO,CAAC,uBAAuB;YAMjB,gBAAgB;IAqC9B,OAAO,CAAC,cAAc;IAItB,kHAAkH;YAEpG,WAAW;YAeX,eAAe;YAQf,YAAY;YAQZ,SAAS;IAiBvB,sCAAsC;IACtC,SAAS,CAAC,uBAAuB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE,OAAO,EAAE,EACjB,GAAG,EAAE,EAAE,EAAE,EACT,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAmB9B,sCAAsC;cACtB,eAAe;CAGhC"}
1
+ {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}