@aztec/prover-client 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dest/bin/get-proof-inputs.d.ts +2 -0
  2. package/dest/bin/get-proof-inputs.d.ts.map +1 -0
  3. package/dest/bin/get-proof-inputs.js +16 -18
  4. package/dest/block_builder/index.d.ts +6 -0
  5. package/dest/block_builder/index.d.ts.map +1 -0
  6. package/dest/block_builder/index.js +1 -0
  7. package/dest/block_builder/light.d.ts +31 -0
  8. package/dest/block_builder/light.d.ts.map +1 -0
  9. package/dest/block_builder/light.js +13 -23
  10. package/dest/config.d.ts +17 -0
  11. package/dest/config.d.ts.map +1 -0
  12. package/dest/config.js +11 -9
  13. package/dest/index.d.ts +4 -0
  14. package/dest/index.d.ts.map +1 -0
  15. package/dest/index.js +1 -0
  16. package/dest/mocks/fixtures.d.ts +19 -0
  17. package/dest/mocks/fixtures.d.ts.map +1 -0
  18. package/dest/mocks/fixtures.js +26 -28
  19. package/dest/mocks/test_context.d.ts +49 -0
  20. package/dest/mocks/test_context.d.ts.map +1 -0
  21. package/dest/mocks/test_context.js +31 -55
  22. package/dest/orchestrator/block-building-helpers.d.ts +50 -0
  23. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -0
  24. package/dest/orchestrator/block-building-helpers.js +90 -90
  25. package/dest/orchestrator/block-proving-state.d.ts +71 -0
  26. package/dest/orchestrator/block-proving-state.d.ts.map +1 -0
  27. package/dest/orchestrator/block-proving-state.js +70 -95
  28. package/dest/orchestrator/epoch-proving-state.d.ts +56 -0
  29. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -0
  30. package/dest/orchestrator/epoch-proving-state.js +40 -53
  31. package/dest/orchestrator/index.d.ts +2 -0
  32. package/dest/orchestrator/index.d.ts.map +1 -0
  33. package/dest/orchestrator/index.js +1 -0
  34. package/dest/orchestrator/orchestrator.d.ts +108 -0
  35. package/dest/orchestrator/orchestrator.d.ts.map +1 -0
  36. package/dest/orchestrator/orchestrator.js +653 -649
  37. package/dest/orchestrator/orchestrator_metrics.d.ts +8 -0
  38. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -0
  39. package/dest/orchestrator/orchestrator_metrics.js +3 -4
  40. package/dest/orchestrator/tx-proving-state.d.ts +31 -0
  41. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -0
  42. package/dest/orchestrator/tx-proving-state.js +51 -52
  43. package/dest/prover-agent/index.d.ts +4 -0
  44. package/dest/prover-agent/index.d.ts.map +1 -0
  45. package/dest/prover-agent/index.js +1 -0
  46. package/dest/prover-agent/memory-proving-queue.d.ts +82 -0
  47. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -0
  48. package/dest/prover-agent/memory-proving-queue.js +248 -237
  49. package/dest/prover-agent/prover-agent.d.ts +43 -0
  50. package/dest/prover-agent/prover-agent.d.ts.map +1 -0
  51. package/dest/prover-agent/prover-agent.js +187 -184
  52. package/dest/prover-agent/proving-error.d.ts +5 -0
  53. package/dest/prover-agent/proving-error.d.ts.map +1 -0
  54. package/dest/prover-agent/proving-error.js +1 -0
  55. package/dest/prover-agent/queue_metrics.d.ts +10 -0
  56. package/dest/prover-agent/queue_metrics.d.ts.map +1 -0
  57. package/dest/prover-agent/queue_metrics.js +5 -6
  58. package/dest/prover-agent/rpc.d.ts +11 -0
  59. package/dest/prover-agent/rpc.d.ts.map +1 -0
  60. package/dest/prover-agent/rpc.js +4 -6
  61. package/dest/prover-client/factory.d.ts +6 -0
  62. package/dest/prover-client/factory.d.ts.map +1 -0
  63. package/dest/prover-client/factory.js +1 -0
  64. package/dest/prover-client/index.d.ts +3 -0
  65. package/dest/prover-client/index.d.ts.map +1 -0
  66. package/dest/prover-client/index.js +1 -0
  67. package/dest/prover-client/prover-client.d.ts +42 -0
  68. package/dest/prover-client/prover-client.d.ts.map +1 -0
  69. package/dest/prover-client/prover-client.js +25 -30
  70. package/dest/prover-client/server-epoch-prover.d.ts +25 -0
  71. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -0
  72. package/dest/prover-client/server-epoch-prover.js +4 -4
  73. package/dest/proving_broker/broker_prover_facade.d.ts +39 -0
  74. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -0
  75. package/dest/proving_broker/broker_prover_facade.js +59 -70
  76. package/dest/proving_broker/config.d.ts +61 -0
  77. package/dest/proving_broker/config.d.ts.map +1 -0
  78. package/dest/proving_broker/config.js +37 -22
  79. package/dest/proving_broker/factory.d.ts +5 -0
  80. package/dest/proving_broker/factory.d.ts.map +1 -0
  81. package/dest/proving_broker/factory.js +2 -1
  82. package/dest/proving_broker/fixtures.d.ts +5 -0
  83. package/dest/proving_broker/fixtures.d.ts.map +1 -0
  84. package/dest/proving_broker/fixtures.js +1 -0
  85. package/dest/proving_broker/index.d.ts +10 -0
  86. package/dest/proving_broker/index.d.ts.map +1 -0
  87. package/dest/proving_broker/index.js +1 -0
  88. package/dest/proving_broker/proof_store/factory.d.ts +6 -0
  89. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -0
  90. package/dest/proving_broker/proof_store/factory.js +12 -9
  91. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +13 -0
  92. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -0
  93. package/dest/proving_broker/proof_store/gcs_proof_store.js +7 -11
  94. package/dest/proving_broker/proof_store/index.d.ts +4 -0
  95. package/dest/proving_broker/proof_store/index.d.ts.map +1 -0
  96. package/dest/proving_broker/proof_store/index.js +1 -0
  97. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +14 -0
  98. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -0
  99. package/dest/proving_broker/proof_store/inline_proof_store.js +7 -11
  100. package/dest/proving_broker/proof_store/proof_store.d.ts +35 -0
  101. package/dest/proving_broker/proof_store/proof_store.d.ts.map +1 -0
  102. package/dest/proving_broker/proof_store/proof_store.js +2 -3
  103. package/dest/proving_broker/proving_agent.d.ts +44 -0
  104. package/dest/proving_broker/proving_agent.d.ts.map +1 -0
  105. package/dest/proving_broker/proving_agent.js +110 -121
  106. package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
  107. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
  108. package/dest/proving_broker/proving_agent_instrumentation.js +3 -3
  109. package/dest/proving_broker/proving_broker.d.ts +75 -0
  110. package/dest/proving_broker/proving_broker.d.ts.map +1 -0
  111. package/dest/proving_broker/proving_broker.js +451 -491
  112. package/dest/proving_broker/proving_broker_database/memory.d.ts +16 -0
  113. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  114. package/dest/proving_broker/proving_broker_database/memory.js +13 -19
  115. package/dest/proving_broker/proving_broker_database/persisted.d.ts +21 -0
  116. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  117. package/dest/proving_broker/proving_broker_database/persisted.js +21 -41
  118. package/dest/proving_broker/proving_broker_database.d.ts +39 -0
  119. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  120. package/dest/proving_broker/proving_broker_database.js +2 -3
  121. package/dest/proving_broker/proving_broker_instrumentation.d.ts +25 -0
  122. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
  123. package/dest/proving_broker/proving_broker_instrumentation.js +21 -28
  124. package/dest/proving_broker/proving_job_controller.d.ts +31 -0
  125. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -0
  126. package/dest/proving_broker/proving_job_controller.js +62 -81
  127. package/dest/proving_broker/rpc.d.ts +11 -0
  128. package/dest/proving_broker/rpc.d.ts.map +1 -0
  129. package/dest/proving_broker/rpc.js +15 -23
  130. package/dest/test/mock_prover.d.ts +33 -0
  131. package/dest/test/mock_prover.d.ts.map +1 -0
  132. package/dest/test/mock_prover.js +9 -11
  133. package/package.json +11 -12
  134. package/src/index.ts +1 -1
  135. package/src/orchestrator/block-building-helpers.ts +1 -1
  136. package/src/proving_broker/proving_agent.ts +11 -30
  137. package/src/proving_broker/proving_broker.ts +27 -53
  138. package/src/proving_broker/rpc.ts +2 -8
@@ -1,201 +1,204 @@
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
- }
7
- import { ProvingRequestType, makeProvingRequestResult } from '@aztec/circuit-types';
1
+ import { __classPrivateFieldGet, __esDecorate, __runInitializers } from "tslib";
2
+ import { ProvingRequestType, makeProvingRequestResult, } from '@aztec/circuit-types';
8
3
  import { createLogger } from '@aztec/foundation/log';
9
4
  import { RunningPromise } from '@aztec/foundation/running-promise';
10
5
  import { elapsed } from '@aztec/foundation/timer';
11
- import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
6
+ import { Attributes, getTelemetryClient, trackSpan, } from '@aztec/telemetry-client';
12
7
  import { InlineProofStore } from '../proving_broker/proof_store/index.js';
13
8
  const PRINT_THRESHOLD_NS = 6e10; // 60 seconds
14
9
  /**
15
10
  * A helper class that encapsulates a circuit prover and connects it to a job source.
16
- */ export class ProverAgent {
17
- circuitProver;
18
- maxConcurrency;
19
- pollIntervalMs;
20
- log;
21
- inFlightPromises;
22
- runningPromise;
23
- proofInputsDatabase;
24
- tracer;
25
- constructor(/** The prover implementation to defer jobs to */ circuitProver, /** How many proving jobs this agent can handle in parallel */ maxConcurrency = 1, /** How long to wait between jobs */ pollIntervalMs = 100, /** Telemetry client */ telemetry = getTelemetryClient(), /** Logger */ log = createLogger('prover-client:prover-agent')){
26
- this.circuitProver = circuitProver;
27
- this.maxConcurrency = maxConcurrency;
28
- this.pollIntervalMs = pollIntervalMs;
29
- this.log = log;
30
- this.inFlightPromises = new Map();
31
- this.proofInputsDatabase = new InlineProofStore();
32
- this.tracer = telemetry.getTracer('ProverAgent');
33
- }
34
- setMaxConcurrency(maxConcurrency) {
35
- if (maxConcurrency < 1) {
36
- throw new Error('Concurrency must be at least 1');
37
- }
38
- this.maxConcurrency = maxConcurrency;
39
- return Promise.resolve();
40
- }
41
- setCircuitProver(circuitProver) {
42
- this.circuitProver = circuitProver;
43
- }
44
- isRunning() {
45
- return Promise.resolve(this.#isRunning());
46
- }
47
- #isRunning() {
48
- return this.runningPromise?.isRunning() ?? false;
49
- }
50
- getCurrentJobs() {
51
- return Promise.resolve(Array.from(this.inFlightPromises.values()).map(({ id, type })=>({
52
- id,
53
- type: ProvingRequestType[type]
54
- })));
55
- }
56
- start(jobSource) {
57
- if (this.runningPromise) {
58
- throw new Error('Agent is already running');
59
- }
60
- let lastPrint = process.hrtime.bigint();
61
- this.runningPromise = new RunningPromise(async ()=>{
62
- for (const jobId of this.inFlightPromises.keys()){
63
- await jobSource.heartbeat(jobId);
11
+ */
12
+ let ProverAgent = (() => {
13
+ var _ProverAgent_instances, _a, _ProverAgent_isRunning;
14
+ let _instanceExtraInitializers = [];
15
+ let _work_decorators;
16
+ return _a = class ProverAgent {
17
+ constructor(
18
+ /** The prover implementation to defer jobs to */
19
+ circuitProver,
20
+ /** How many proving jobs this agent can handle in parallel */
21
+ maxConcurrency = 1,
22
+ /** How long to wait between jobs */
23
+ pollIntervalMs = 100,
24
+ /** Telemetry client */
25
+ telemetry = getTelemetryClient(),
26
+ /** Logger */
27
+ log = createLogger('prover-client:prover-agent')) {
28
+ _ProverAgent_instances.add(this);
29
+ this.circuitProver = (__runInitializers(this, _instanceExtraInitializers), circuitProver);
30
+ this.maxConcurrency = maxConcurrency;
31
+ this.pollIntervalMs = pollIntervalMs;
32
+ this.log = log;
33
+ this.inFlightPromises = new Map();
34
+ this.proofInputsDatabase = new InlineProofStore();
35
+ this.tracer = telemetry.getTracer('ProverAgent');
64
36
  }
65
- const now = process.hrtime.bigint();
66
- if (now - lastPrint >= PRINT_THRESHOLD_NS) {
67
- // only log if we're actually doing work
68
- if (this.inFlightPromises.size > 0) {
69
- const jobs = Array.from(this.inFlightPromises.values()).map((job)=>`id=${job.id},type=${ProvingRequestType[job.type]}`).join(' ');
70
- this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
37
+ setMaxConcurrency(maxConcurrency) {
38
+ if (maxConcurrency < 1) {
39
+ throw new Error('Concurrency must be at least 1');
71
40
  }
72
- lastPrint = now;
41
+ this.maxConcurrency = maxConcurrency;
42
+ return Promise.resolve();
73
43
  }
74
- while(this.inFlightPromises.size < this.maxConcurrency){
75
- try {
76
- const job = await jobSource.getProvingJob();
77
- if (!job) {
78
- // job source is fully drained, sleep for a bit and try again
79
- return;
80
- }
81
- try {
82
- const promise = this.work(jobSource, job).finally(()=>this.inFlightPromises.delete(job.id));
83
- this.inFlightPromises.set(job.id, {
84
- id: job.id,
85
- type: job.type,
86
- promise
87
- });
88
- } catch (err) {
89
- this.log.warn(`Error processing job! type=${ProvingRequestType[job.type]}: ${err}. ${err.stack}`);
90
- }
91
- } catch (err) {
92
- this.log.error(`Error fetching job`, err);
93
- }
44
+ setCircuitProver(circuitProver) {
45
+ this.circuitProver = circuitProver;
94
46
  }
95
- }, this.log, this.pollIntervalMs);
96
- this.runningPromise.start();
97
- this.log.info(`Agent started with concurrency=${this.maxConcurrency}`);
98
- }
99
- async stop() {
100
- if (!this.runningPromise?.isRunning()) {
101
- return;
102
- }
103
- await this.runningPromise.stop();
104
- this.runningPromise = undefined;
105
- this.log.info('Agent stopped');
106
- }
107
- async work(jobSource, job) {
108
- try {
109
- this.log.debug(`Picked up proving job ${job.id} ${ProvingRequestType[job.type]}`, {
110
- jobId: job.id,
111
- jobType: ProvingRequestType[job.type]
112
- });
113
- const type = job.type;
114
- const inputs = await this.proofInputsDatabase.getProofInput(job.inputsUri);
115
- const [time, result] = await elapsed(this.getProof(inputs));
116
- if (this.#isRunning()) {
117
- this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[type]} duration=${time}ms`);
118
- await jobSource.resolveProvingJob(job.id, makeProvingRequestResult(type, result));
119
- } else {
120
- this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.type]} duration=${time}ms: agent stopped`);
47
+ isRunning() {
48
+ return Promise.resolve(__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this));
121
49
  }
122
- } catch (err) {
123
- const type = ProvingRequestType[job.type];
124
- if (this.#isRunning()) {
125
- if (job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT) {
126
- this.log.warn(`Expected error processing VM proving job id=${job.id} type=${type}: ${err}`);
127
- } else {
128
- this.log.error(`Error processing proving job id=${job.id} type=${type}: ${err}`, err);
129
- }
130
- const reason = err?.message ?? String(err);
131
- await jobSource.rejectProvingJob(job.id, reason);
132
- } else {
133
- this.log.verbose(`Dropping proving job id=${job.id} type=${type}: agent stopped: ${err.stack || err}`);
50
+ getCurrentJobs() {
51
+ return Promise.resolve(Array.from(this.inFlightPromises.values()).map(({ id, type }) => ({ id, type: ProvingRequestType[type] })));
134
52
  }
135
- }
136
- }
137
- getProof(request) {
138
- const { type, inputs } = request;
139
- switch(type){
140
- case ProvingRequestType.PUBLIC_VM:
141
- {
142
- return this.circuitProver.getAvmProof(inputs);
143
- }
144
- case ProvingRequestType.PRIVATE_BASE_ROLLUP:
145
- {
146
- return this.circuitProver.getPrivateBaseRollupProof(inputs);
147
- }
148
- case ProvingRequestType.PUBLIC_BASE_ROLLUP:
149
- {
150
- return this.circuitProver.getPublicBaseRollupProof(inputs);
151
- }
152
- case ProvingRequestType.MERGE_ROLLUP:
153
- {
154
- return this.circuitProver.getMergeRollupProof(inputs);
155
- }
156
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP:
157
- {
158
- return this.circuitProver.getEmptyBlockRootRollupProof(inputs);
159
- }
160
- case ProvingRequestType.BLOCK_ROOT_ROLLUP:
161
- {
162
- return this.circuitProver.getBlockRootRollupProof(inputs);
163
- }
164
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP:
165
- {
166
- return this.circuitProver.getSingleTxBlockRootRollupProof(inputs);
167
- }
168
- case ProvingRequestType.BLOCK_MERGE_ROLLUP:
169
- {
170
- return this.circuitProver.getBlockMergeRollupProof(inputs);
171
- }
172
- case ProvingRequestType.ROOT_ROLLUP:
173
- {
174
- return this.circuitProver.getRootRollupProof(inputs);
175
- }
176
- case ProvingRequestType.BASE_PARITY:
177
- {
178
- return this.circuitProver.getBaseParityProof(inputs);
53
+ start(jobSource) {
54
+ if (this.runningPromise) {
55
+ throw new Error('Agent is already running');
56
+ }
57
+ let lastPrint = process.hrtime.bigint();
58
+ this.runningPromise = new RunningPromise(async () => {
59
+ for (const jobId of this.inFlightPromises.keys()) {
60
+ await jobSource.heartbeat(jobId);
61
+ }
62
+ const now = process.hrtime.bigint();
63
+ if (now - lastPrint >= PRINT_THRESHOLD_NS) {
64
+ // only log if we're actually doing work
65
+ if (this.inFlightPromises.size > 0) {
66
+ const jobs = Array.from(this.inFlightPromises.values())
67
+ .map(job => `id=${job.id},type=${ProvingRequestType[job.type]}`)
68
+ .join(' ');
69
+ this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
70
+ }
71
+ lastPrint = now;
72
+ }
73
+ while (this.inFlightPromises.size < this.maxConcurrency) {
74
+ try {
75
+ const job = await jobSource.getProvingJob();
76
+ if (!job) {
77
+ // job source is fully drained, sleep for a bit and try again
78
+ return;
79
+ }
80
+ try {
81
+ const promise = this.work(jobSource, job).finally(() => this.inFlightPromises.delete(job.id));
82
+ this.inFlightPromises.set(job.id, {
83
+ id: job.id,
84
+ type: job.type,
85
+ promise,
86
+ });
87
+ }
88
+ catch (err) {
89
+ this.log.warn(`Error processing job! type=${ProvingRequestType[job.type]}: ${err}. ${err.stack}`);
90
+ }
91
+ }
92
+ catch (err) {
93
+ this.log.error(`Error fetching job`, err);
94
+ }
95
+ }
96
+ }, this.log, this.pollIntervalMs);
97
+ this.runningPromise.start();
98
+ this.log.info(`Agent started with concurrency=${this.maxConcurrency}`);
99
+ }
100
+ async stop() {
101
+ if (!this.runningPromise?.isRunning()) {
102
+ return;
179
103
  }
180
- case ProvingRequestType.ROOT_PARITY:
181
- {
182
- return this.circuitProver.getRootParityProof(inputs);
104
+ await this.runningPromise.stop();
105
+ this.runningPromise = undefined;
106
+ this.log.info('Agent stopped');
107
+ }
108
+ async work(jobSource, job) {
109
+ try {
110
+ this.log.debug(`Picked up proving job ${job.id} ${ProvingRequestType[job.type]}`, {
111
+ jobId: job.id,
112
+ jobType: ProvingRequestType[job.type],
113
+ });
114
+ const type = job.type;
115
+ const inputs = await this.proofInputsDatabase.getProofInput(job.inputsUri);
116
+ const [time, result] = await elapsed(this.getProof(inputs));
117
+ if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
118
+ this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[type]} duration=${time}ms`);
119
+ await jobSource.resolveProvingJob(job.id, makeProvingRequestResult(type, result));
120
+ }
121
+ else {
122
+ this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.type]} duration=${time}ms: agent stopped`);
123
+ }
183
124
  }
184
- case ProvingRequestType.TUBE_PROOF:
185
- {
186
- return this.circuitProver.getTubeProof(inputs);
125
+ catch (err) {
126
+ const type = ProvingRequestType[job.type];
127
+ if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
128
+ if (job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT) {
129
+ this.log.warn(`Expected error processing VM proving job id=${job.id} type=${type}: ${err}`);
130
+ }
131
+ else {
132
+ this.log.error(`Error processing proving job id=${job.id} type=${type}: ${err}`, err);
133
+ }
134
+ const reason = err?.message ?? String(err);
135
+ await jobSource.rejectProvingJob(job.id, reason);
136
+ }
137
+ else {
138
+ this.log.verbose(`Dropping proving job id=${job.id} type=${type}: agent stopped: ${err.stack || err}`);
139
+ }
187
140
  }
188
- default:
189
- {
190
- const _exhaustive = type;
191
- return Promise.reject(new Error(`Invalid proof request type: ${type}`));
141
+ }
142
+ getProof(request) {
143
+ const { type, inputs } = request;
144
+ switch (type) {
145
+ case ProvingRequestType.PUBLIC_VM: {
146
+ return this.circuitProver.getAvmProof(inputs);
147
+ }
148
+ case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
149
+ return this.circuitProver.getPrivateBaseRollupProof(inputs);
150
+ }
151
+ case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
152
+ return this.circuitProver.getPublicBaseRollupProof(inputs);
153
+ }
154
+ case ProvingRequestType.MERGE_ROLLUP: {
155
+ return this.circuitProver.getMergeRollupProof(inputs);
156
+ }
157
+ case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
158
+ return this.circuitProver.getEmptyBlockRootRollupProof(inputs);
159
+ }
160
+ case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
161
+ return this.circuitProver.getBlockRootRollupProof(inputs);
162
+ }
163
+ case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP: {
164
+ return this.circuitProver.getSingleTxBlockRootRollupProof(inputs);
165
+ }
166
+ case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
167
+ return this.circuitProver.getBlockMergeRollupProof(inputs);
168
+ }
169
+ case ProvingRequestType.ROOT_ROLLUP: {
170
+ return this.circuitProver.getRootRollupProof(inputs);
171
+ }
172
+ case ProvingRequestType.BASE_PARITY: {
173
+ return this.circuitProver.getBaseParityProof(inputs);
174
+ }
175
+ case ProvingRequestType.ROOT_PARITY: {
176
+ return this.circuitProver.getRootParityProof(inputs);
177
+ }
178
+ case ProvingRequestType.TUBE_PROOF: {
179
+ return this.circuitProver.getTubeProof(inputs);
180
+ }
181
+ default: {
182
+ const _exhaustive = type;
183
+ return Promise.reject(new Error(`Invalid proof request type: ${type}`));
184
+ }
192
185
  }
193
- }
194
- }
195
- }
196
- _ts_decorate([
197
- trackSpan('ProverAgent.work', (_jobSoure, job)=>({
198
- [Attributes.PROVING_JOB_ID]: job.id,
199
- [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[job.type]
200
- }))
201
- ], ProverAgent.prototype, "work", null);
186
+ }
187
+ },
188
+ _ProverAgent_instances = new WeakSet(),
189
+ _ProverAgent_isRunning = function _ProverAgent_isRunning() {
190
+ return this.runningPromise?.isRunning() ?? false;
191
+ },
192
+ (() => {
193
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
194
+ _work_decorators = [trackSpan('ProverAgent.work', (_jobSoure, job) => ({
195
+ [Attributes.PROVING_JOB_ID]: job.id,
196
+ [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[job.type],
197
+ }))];
198
+ __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);
199
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
200
+ })(),
201
+ _a;
202
+ })();
203
+ export { ProverAgent };
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFNTCxrQkFBa0IsRUFFbEIsd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFVBQVUsRUFJVixrQkFBa0IsRUFDbEIsU0FBUyxHQUNWLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhO0FBUTlDOztHQUVHO0lBQ1UsV0FBVzs7OztzQkFBWCxXQUFXO1lBT3RCO1lBQ0UsaURBQWlEO1lBQ3pDLGFBQWtDO1lBQzFDLDhEQUE4RDtZQUN0RCxpQkFBaUIsQ0FBQztZQUMxQixvQ0FBb0M7WUFDNUIsaUJBQWlCLEdBQUc7WUFDNUIsdUJBQXVCO1lBQ3ZCLFlBQTZCLGtCQUFrQixFQUFFO1lBQ2pELGFBQWE7WUFDTCxNQUFNLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQzs7Z0JBUmhELGtCQUFhLElBVFosbURBQVcsRUFTWixhQUFhLEVBQXFCO2dCQUVsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBSTtnQkFFbEIsbUJBQWMsR0FBZCxjQUFjLENBQU07Z0JBSXBCLFFBQUcsR0FBSCxHQUFHLENBQTZDO2dCQWhCbEQscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7Z0JBRXRELHdCQUFtQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFnQm5ELElBQUks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
@@ -0,0 +1,5 @@
1
+ export declare class ProvingError extends Error {
2
+ toString(): string;
3
+ static fromString(message: string): ProvingError;
4
+ }
5
+ //# sourceMappingURL=proving-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proving-error.d.ts","sourceRoot":"","sources":["../../src/prover-agent/proving-error.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IAC5B,QAAQ;IAIjB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;CAGlC"}
@@ -6,3 +6,4 @@ export class ProvingError extends Error {
6
6
  return new ProvingError(message);
7
7
  }
8
8
  }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItYWdlbnQvcHJvdmluZy1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBYSxTQUFRLEtBQUs7SUFDNUIsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGIn0=
@@ -0,0 +1,10 @@
1
+ import { ProvingRequestType } from '@aztec/circuit-types';
2
+ import { type TelemetryClient } from '@aztec/telemetry-client';
3
+ export declare class ProvingQueueMetrics {
4
+ private jobSize;
5
+ private queueSize;
6
+ constructor(client: TelemetryClient, name?: string);
7
+ recordNewJob(type: ProvingRequestType, size: number): void;
8
+ recordQueueSize(size: number): void;
9
+ }
10
+ //# sourceMappingURL=queue_metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue_metrics.d.ts","sourceRoot":"","sources":["../../src/prover-agent/queue_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAmD,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEhH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,eAAe,EAAE,IAAI,SAAwB;IAYjE,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM;IAMnD,eAAe,CAAC,IAAI,EAAE,MAAM;CAG7B"}
@@ -1,24 +1,23 @@
1
1
  import { ProvingRequestType } from '@aztec/circuit-types';
2
2
  import { Attributes, Metrics } from '@aztec/telemetry-client';
3
3
  export class ProvingQueueMetrics {
4
- jobSize;
5
- queueSize;
6
- constructor(client, name = 'ProvingQueueMetrics'){
4
+ constructor(client, name = 'ProvingQueueMetrics') {
7
5
  const meter = client.getMeter(name);
8
6
  this.jobSize = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_SIZE, {
9
7
  description: 'Size of proving job',
10
- unit: 'by'
8
+ unit: 'by',
11
9
  });
12
10
  this.queueSize = meter.createGauge(Metrics.PROVING_QUEUE_SIZE, {
13
- description: 'Size of proving queue'
11
+ description: 'Size of proving queue',
14
12
  });
15
13
  }
16
14
  recordNewJob(type, size) {
17
15
  this.jobSize.record(size, {
18
- [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[type]
16
+ [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[type],
19
17
  });
20
18
  }
21
19
  recordQueueSize(size) {
22
20
  this.queueSize.record(size);
23
21
  }
24
22
  }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVfbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItYWdlbnQvcXVldWVfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUE4QixPQUFPLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFaEgsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLHFCQUFxQjtRQUMvRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7WUFDbkUsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDN0QsV0FBVyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXdCLEVBQUUsSUFBWTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDeEIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiJ9
@@ -0,0 +1,11 @@
1
+ import { type ProvingJobSource } from '@aztec/circuit-types';
2
+ import { type ProverAgent } from './prover-agent.js';
3
+ export declare function createProvingJobSourceServer(queue: ProvingJobSource): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
4
+ export declare function createProvingJobSourceClient(url: string, fetch?: (host: string, rpcMethod: string, body: any, useApiEndpoints: boolean, extraHeaders?: Record<string, string> | undefined, noRetry?: boolean | undefined) => Promise<any>): ProvingJobSource;
5
+ /**
6
+ * Wrap a ProverAgent instance with a JSON RPC HTTP server.
7
+ * @param agent - The Prover Agent
8
+ * @returns An JSON-RPC HTTP server
9
+ */
10
+ export declare function createProverAgentRpcServer(agent: ProverAgent): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
11
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/prover-agent/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,gBAAgB,EAA0B,MAAM,sBAAsB,CAAC;AAI3G,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,iEAEnE;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,2KAAoC,GAAG,gBAAgB,CAErH;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,iEAE5D"}
@@ -4,17 +4,15 @@ import { createTracedJsonRpcServer, makeTracedFetch } from '@aztec/telemetry-cli
4
4
  export function createProvingJobSourceServer(queue) {
5
5
  return createTracedJsonRpcServer(queue, ProvingJobSourceSchema);
6
6
  }
7
- export function createProvingJobSourceClient(url, fetch = makeTracedFetch([
8
- 1,
9
- 2,
10
- 3
11
- ], false)) {
7
+ export function createProvingJobSourceClient(url, fetch = makeTracedFetch([1, 2, 3], false)) {
12
8
  return createSafeJsonRpcClient(url, ProvingJobSourceSchema, false, 'provingJobSource', fetch);
13
9
  }
14
10
  /**
15
11
  * Wrap a ProverAgent instance with a JSON RPC HTTP server.
16
12
  * @param agent - The Prover Agent
17
13
  * @returns An JSON-RPC HTTP server
18
- */ export function createProverAgentRpcServer(agent) {
14
+ */
15
+ export function createProverAgentRpcServer(agent) {
19
16
  return createTracedJsonRpcServer(agent, ProverAgentApiSchema);
20
17
  }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9ycGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUF5QixzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlyRixNQUFNLFVBQVUsNEJBQTRCLENBQUMsS0FBdUI7SUFDbEUsT0FBTyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDakcsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQWtCO0lBQzNELE9BQU8seUJBQXlCLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDaEUsQ0FBQyJ9
@@ -0,0 +1,6 @@
1
+ import { type ForkMerkleTreeOperations, type ProvingJobBroker } from '@aztec/circuit-types';
2
+ import { type TelemetryClient } from '@aztec/telemetry-client';
3
+ import { type ProverClientConfig } from '../config.js';
4
+ import { ProverClient } from './prover-client.js';
5
+ export declare function createProverClient(config: ProverClientConfig, worldState: ForkMerkleTreeOperations, broker: ProvingJobBroker, telemetry?: TelemetryClient): Promise<ProverClient>;
6
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-client/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,eAAsC,yBAGlD"}
@@ -3,3 +3,4 @@ import { ProverClient } from './prover-client.js';
3
3
  export function createProverClient(config, worldState, broker, telemetry = getTelemetryClient()) {
4
4
  return ProverClient.new(config, worldState, broker, telemetry);
5
5
  }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY2xpZW50L2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQTBCLEVBQzFCLFVBQW9DLEVBQ3BDLE1BQXdCLEVBQ3hCLFlBQTZCLGtCQUFrQixFQUFFO0lBRWpELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqRSxDQUFDIn0=
@@ -0,0 +1,3 @@
1
+ export * from './factory.js';
2
+ export * from './prover-client.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prover-client/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './factory.js';
2
2
  export * from './prover-client.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWNsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDIn0=
@@ -0,0 +1,42 @@
1
+ import { type ACVMConfig, type BBConfig } from '@aztec/bb-prover';
2
+ import { type ActualProverConfig, type EpochProver, type EpochProverManager, type ForkMerkleTreeOperations, type ProvingJobBroker, type ProvingJobConsumer, type ServerCircuitProver } from '@aztec/circuit-types/interfaces';
3
+ import { Fr } from '@aztec/circuits.js';
4
+ import { type TelemetryClient } from '@aztec/telemetry-client';
5
+ import { type ProverClientConfig } from '../config.js';
6
+ /** Manages proving of epochs by orchestrating the proving of individual blocks relying on a pool of prover agents. */
7
+ export declare class ProverClient implements EpochProverManager {
8
+ private config;
9
+ private worldState;
10
+ private orchestratorClient;
11
+ private agentClient?;
12
+ private telemetry;
13
+ private log;
14
+ private running;
15
+ private agents;
16
+ private proofStore;
17
+ private failedProofStore;
18
+ private constructor();
19
+ createEpochProver(): EpochProver;
20
+ getProverId(): Fr;
21
+ updateProverConfig(config: Partial<ProverClientConfig>): Promise<void>;
22
+ /**
23
+ * Starts the prover instance
24
+ */
25
+ start(): Promise<void>;
26
+ /**
27
+ * Stops the prover instance
28
+ */
29
+ stop(): Promise<void>;
30
+ /**
31
+ * Creates a new prover client and starts it
32
+ * @param config - The prover configuration.
33
+ * @param worldState - An instance of the world state
34
+ * @returns An instance of the prover, constructed and started.
35
+ */
36
+ static new(config: ProverClientConfig, worldState: ForkMerkleTreeOperations, broker: ProvingJobBroker, telemetry?: TelemetryClient): Promise<ProverClient>;
37
+ getProvingJobSource(): ProvingJobConsumer;
38
+ private createAndStartAgents;
39
+ private stopAgents;
40
+ }
41
+ export declare function buildServerCircuitProver(config: ActualProverConfig & ACVMConfig & BBConfig, telemetry: TelemetryClient): Promise<ServerCircuitProver>;
42
+ //# sourceMappingURL=prover-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prover-client.d.ts","sourceRoot":"","sources":["../../src/prover-client/prover-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAA2C,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAIxC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD,sHAAsH;AACtH,qBAAa,YAAa,YAAW,kBAAkB;IAQnD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO;IAYA,iBAAiB,IAAI,WAAW;IAMhC,WAAW,IAAI,EAAE;IAIlB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5E;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IASnC;;OAEG;IACU,IAAI;IAQjB;;;;;OAKG;WACiB,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,eAAsC;IAO5C,mBAAmB,IAAI,kBAAkB;YAQlC,oBAAoB;YA2BpB,UAAU;CAGzB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GAAG,UAAU,GAAG,QAAQ,EAClD,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}