@aztec/prover-client 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.76.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 (136) 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 +46 -72
  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 +81 -99
  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 +74 -99
  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 +41 -57
  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 +654 -650
  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 +52 -53
  43. package/dest/prover-client/factory.d.ts +6 -0
  44. package/dest/prover-client/factory.d.ts.map +1 -0
  45. package/dest/prover-client/factory.js +1 -0
  46. package/dest/prover-client/index.d.ts +3 -0
  47. package/dest/prover-client/index.d.ts.map +1 -0
  48. package/dest/prover-client/index.js +1 -0
  49. package/dest/prover-client/prover-client.d.ts +42 -0
  50. package/dest/prover-client/prover-client.d.ts.map +1 -0
  51. package/dest/prover-client/prover-client.js +25 -30
  52. package/dest/prover-client/server-epoch-prover.d.ts +25 -0
  53. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -0
  54. package/dest/prover-client/server-epoch-prover.js +4 -4
  55. package/dest/proving_broker/broker_prover_facade.d.ts +39 -0
  56. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -0
  57. package/dest/proving_broker/broker_prover_facade.js +59 -70
  58. package/dest/proving_broker/config.d.ts +61 -0
  59. package/dest/proving_broker/config.d.ts.map +1 -0
  60. package/dest/proving_broker/config.js +37 -22
  61. package/dest/proving_broker/factory.d.ts +5 -0
  62. package/dest/proving_broker/factory.d.ts.map +1 -0
  63. package/dest/proving_broker/factory.js +2 -1
  64. package/dest/proving_broker/fixtures.d.ts +5 -0
  65. package/dest/proving_broker/fixtures.d.ts.map +1 -0
  66. package/dest/proving_broker/fixtures.js +1 -0
  67. package/dest/proving_broker/index.d.ts +10 -0
  68. package/dest/proving_broker/index.d.ts.map +1 -0
  69. package/dest/proving_broker/index.js +1 -0
  70. package/dest/proving_broker/proof_store/factory.d.ts +6 -0
  71. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -0
  72. package/dest/proving_broker/proof_store/factory.js +12 -9
  73. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +13 -0
  74. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -0
  75. package/dest/proving_broker/proof_store/gcs_proof_store.js +7 -11
  76. package/dest/proving_broker/proof_store/index.d.ts +4 -0
  77. package/dest/proving_broker/proof_store/index.d.ts.map +1 -0
  78. package/dest/proving_broker/proof_store/index.js +1 -0
  79. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +14 -0
  80. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -0
  81. package/dest/proving_broker/proof_store/inline_proof_store.js +7 -11
  82. package/dest/proving_broker/proof_store/proof_store.d.ts +35 -0
  83. package/dest/proving_broker/proof_store/proof_store.d.ts.map +1 -0
  84. package/dest/proving_broker/proof_store/proof_store.js +2 -3
  85. package/dest/proving_broker/proving_agent.d.ts +45 -0
  86. package/dest/proving_broker/proving_agent.d.ts.map +1 -0
  87. package/dest/proving_broker/proving_agent.js +124 -120
  88. package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
  89. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
  90. package/dest/proving_broker/proving_agent_instrumentation.js +3 -3
  91. package/dest/proving_broker/proving_broker.d.ts +72 -0
  92. package/dest/proving_broker/proving_broker.d.ts.map +1 -0
  93. package/dest/proving_broker/proving_broker.js +449 -491
  94. package/dest/proving_broker/proving_broker_database/memory.d.ts +16 -0
  95. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  96. package/dest/proving_broker/proving_broker_database/memory.js +13 -19
  97. package/dest/proving_broker/proving_broker_database/persisted.d.ts +21 -0
  98. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  99. package/dest/proving_broker/proving_broker_database/persisted.js +21 -41
  100. package/dest/proving_broker/proving_broker_database.d.ts +39 -0
  101. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  102. package/dest/proving_broker/proving_broker_database.js +2 -3
  103. package/dest/proving_broker/proving_broker_instrumentation.d.ts +25 -0
  104. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
  105. package/dest/proving_broker/proving_broker_instrumentation.js +21 -28
  106. package/dest/proving_broker/proving_job_controller.d.ts +31 -0
  107. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -0
  108. package/dest/proving_broker/proving_job_controller.js +62 -81
  109. package/dest/proving_broker/rpc.d.ts +26 -0
  110. package/dest/proving_broker/rpc.d.ts.map +1 -0
  111. package/dest/proving_broker/rpc.js +36 -26
  112. package/dest/test/mock_prover.d.ts +35 -0
  113. package/dest/test/mock_prover.d.ts.map +1 -0
  114. package/dest/test/mock_prover.js +13 -11
  115. package/package.json +12 -13
  116. package/src/index.ts +1 -1
  117. package/src/mocks/test_context.ts +23 -22
  118. package/src/orchestrator/block-building-helpers.ts +1 -38
  119. package/src/orchestrator/block-proving-state.ts +15 -15
  120. package/src/orchestrator/epoch-proving-state.ts +7 -10
  121. package/src/orchestrator/orchestrator.ts +36 -39
  122. package/src/orchestrator/tx-proving-state.ts +13 -13
  123. package/src/proving_broker/rpc.ts +24 -4
  124. package/src/test/mock_prover.ts +7 -1
  125. package/dest/prover-agent/index.js +0 -3
  126. package/dest/prover-agent/memory-proving-queue.js +0 -249
  127. package/dest/prover-agent/prover-agent.js +0 -201
  128. package/dest/prover-agent/proving-error.js +0 -8
  129. package/dest/prover-agent/queue_metrics.js +0 -24
  130. package/dest/prover-agent/rpc.js +0 -20
  131. package/src/prover-agent/index.ts +0 -3
  132. package/src/prover-agent/memory-proving-queue.ts +0 -416
  133. package/src/prover-agent/prover-agent.ts +0 -248
  134. package/src/prover-agent/proving-error.ts +0 -9
  135. package/src/prover-agent/queue_metrics.ts +0 -29
  136. package/src/prover-agent/rpc.ts +0 -22
@@ -1,4 +1,4 @@
1
- import { ProvingRequestType, makeProvingJobId } from '@aztec/circuit-types';
1
+ import { ProvingRequestType, makeProvingJobId, } from '@aztec/circuit-types';
2
2
  import { sha256 } from '@aztec/foundation/crypto';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
@@ -6,21 +6,11 @@ import { SerialQueue } from '@aztec/foundation/queue';
6
6
  import { truncate } from '@aztec/foundation/string';
7
7
  import { InlineProofStore } from './proof_store/index.js';
8
8
  // Perform a snapshot sync every 30 seconds
9
- const SNAPSHOT_SYNC_INTERVAL_MS = 30_000;
9
+ const SNAPSHOT_SYNC_INTERVAL_MS = 30000;
10
10
  const MAX_CONCURRENT_JOB_SETTLED_REQUESTS = 10;
11
11
  const SNAPSHOT_SYNC_CHECK_MAX_REQUEST_SIZE = 1000;
12
12
  export class BrokerCircuitProverFacade {
13
- broker;
14
- proofStore;
15
- failedProofStore;
16
- pollIntervalMs;
17
- log;
18
- jobs;
19
- runningPromise;
20
- timeOfLastSnapshotSync;
21
- queue;
22
- jobsToRetrieve;
23
- constructor(broker, proofStore = new InlineProofStore(), failedProofStore, pollIntervalMs = 1000, log = createLogger('prover-client:broker-circuit-prover-facade')){
13
+ constructor(broker, proofStore = new InlineProofStore(), failedProofStore, pollIntervalMs = 1000, log = createLogger('prover-client:broker-circuit-prover-facade')) {
24
14
  this.broker = broker;
25
15
  this.proofStore = proofStore;
26
16
  this.failedProofStore = failedProofStore;
@@ -35,7 +25,7 @@ export class BrokerCircuitProverFacade {
35
25
  if (!this.queue) {
36
26
  throw new Error('BrokerCircuitProverFacade not started');
37
27
  }
38
- return this.queue.put(()=>this._enqueueJob(id, type, inputs, epochNumber, signal)).then(({ enqueuedPromise })=>enqueuedPromise);
28
+ return this.queue.put(() => this._enqueueJob(id, type, inputs, epochNumber, signal)).then(({ enqueuedPromise }) => enqueuedPromise);
39
29
  }
40
30
  async _enqueueJob(id, type, inputs, epochNumber = 0, signal) {
41
31
  // Check if there is already a promise for this job
@@ -44,25 +34,23 @@ export class BrokerCircuitProverFacade {
44
34
  this.log.verbose(`Job already found in facade id=${id} type=${ProvingRequestType[type]}`, {
45
35
  provingJobId: id,
46
36
  provingJobType: ProvingRequestType[type],
47
- epochNumber
37
+ epochNumber,
48
38
  });
49
- return {
50
- enqueuedPromise: existingPromise.promise.promise
51
- };
39
+ return { enqueuedPromise: existingPromise.promise.promise };
52
40
  }
53
41
  const inputsUri = await this.proofStore.saveProofInput(id, type, inputs);
54
42
  const jobStatus = await this.broker.enqueueProvingJob({
55
43
  id,
56
44
  type,
57
45
  inputsUri,
58
- epochNumber
46
+ epochNumber,
59
47
  });
60
48
  // Create a promise for this job id, regardless of whether it was enqueued at the broker
61
49
  // The running promise will monitor for the job to be completed and resolve it either way
62
50
  const promise = promiseWithResolvers();
63
- const abortFn = ()=>{
51
+ const abortFn = () => {
64
52
  signal?.removeEventListener('abort', abortFn);
65
- void this.broker.cancelProvingJob(id).catch((err)=>this.log.warn(`Error cancelling job id=${id}`, err));
53
+ void this.broker.cancelProvingJob(id).catch(err => this.log.warn(`Error cancelling job id=${id}`, err));
66
54
  };
67
55
  const job = {
68
56
  id,
@@ -70,7 +58,7 @@ export class BrokerCircuitProverFacade {
70
58
  inputsUri,
71
59
  promise,
72
60
  abortFn,
73
- signal
61
+ signal,
74
62
  };
75
63
  this.jobs.set(id, job);
76
64
  // If we are here then the job was successfully accepted by the broker
@@ -84,9 +72,10 @@ export class BrokerCircuitProverFacade {
84
72
  provingJobType: ProvingRequestType[type],
85
73
  epochNumber,
86
74
  inputsUri: truncate(inputsUri),
87
- numOutstandingJobs: this.jobs.size
75
+ numOutstandingJobs: this.jobs.size,
88
76
  });
89
- } else if (jobStatus.status === 'fulfilled' || jobStatus.status === 'rejected') {
77
+ }
78
+ else if (jobStatus.status === 'fulfilled' || jobStatus.status === 'rejected') {
90
79
  // Job was already completed by the broker
91
80
  // No need to notify the broker on aborted job
92
81
  job.abortFn = undefined;
@@ -94,11 +83,12 @@ export class BrokerCircuitProverFacade {
94
83
  provingJobId: id,
95
84
  provingJobType: ProvingRequestType[type],
96
85
  epochNumber,
97
- inputsUri: truncate(inputsUri)
86
+ inputsUri: truncate(inputsUri),
98
87
  });
99
88
  // Job was not enqueued. It must be completed already, add to our set of already completed jobs
100
89
  this.jobsToRetrieve.add(id);
101
- } else {
90
+ }
91
+ else {
102
92
  // Job was previously sent to the broker but is not completed
103
93
  // notify the broker if job is aborted
104
94
  signal?.addEventListener('abort', abortFn);
@@ -106,20 +96,18 @@ export class BrokerCircuitProverFacade {
106
96
  provingJobId: id,
107
97
  provingJobType: ProvingRequestType[type],
108
98
  epochNumber,
109
- inputsUri: truncate(inputsUri)
99
+ inputsUri: truncate(inputsUri),
110
100
  });
111
101
  }
112
102
  const typedPromise = promise.promise;
113
- return {
114
- enqueuedPromise: typedPromise
115
- };
103
+ return { enqueuedPromise: typedPromise };
116
104
  }
117
105
  start() {
118
106
  if (this.runningPromise) {
119
107
  throw new Error('BrokerCircuitProverFacade already started');
120
108
  }
121
109
  this.log.verbose('Starting BrokerCircuitProverFacade');
122
- this.runningPromise = new RunningPromise(()=>this.monitorForCompletedJobs(), this.log, this.pollIntervalMs);
110
+ this.runningPromise = new RunningPromise(() => this.monitorForCompletedJobs(), this.log, this.pollIntervalMs);
123
111
  this.runningPromise.start();
124
112
  this.queue = new SerialQueue();
125
113
  this.queue.start();
@@ -135,7 +123,7 @@ export class BrokerCircuitProverFacade {
135
123
  await this.queue.end();
136
124
  }
137
125
  // Reject any outstanding promises as stopped
138
- for (const [_, v] of this.jobs){
126
+ for (const [_, v] of this.jobs) {
139
127
  v.promise.reject(new Error('Broker facade stopped'));
140
128
  }
141
129
  this.jobs.clear();
@@ -148,23 +136,24 @@ export class BrokerCircuitProverFacade {
148
136
  // and have the broker report on whether they are completed or not.
149
137
  // We perform an incremental sync on every call of this function with a full snapshot sync periodically.
150
138
  // This should keep us in sync without over-burdening the broker with snapshot sync requests
151
- const getAllCompletedJobs = async (ids)=>{
139
+ const getAllCompletedJobs = async (ids) => {
152
140
  // In this function we take whatever set of snapshot ids and we ask the broker for completed job notifications
153
141
  // We collect all returned notifications and return them
154
142
  const allCompleted = new Set();
155
143
  try {
156
144
  let numRequests = 0;
157
- while(ids.length > 0){
145
+ while (ids.length > 0) {
158
146
  const slice = ids.splice(0, SNAPSHOT_SYNC_CHECK_MAX_REQUEST_SIZE);
159
147
  const completed = await this.broker.getCompletedJobs(slice);
160
- completed.forEach((id)=>allCompleted.add(id));
148
+ completed.forEach(id => allCompleted.add(id));
161
149
  ++numRequests;
162
150
  }
163
151
  if (numRequests === 0) {
164
152
  const final = await this.broker.getCompletedJobs([]);
165
- final.forEach((id)=>allCompleted.add(id));
153
+ final.forEach(id => allCompleted.add(id));
166
154
  }
167
- } catch (err) {
155
+ }
156
+ catch (err) {
168
157
  this.log.error(`Error thrown when requesting completed job notifications from the broker`, err);
169
158
  }
170
159
  return allCompleted;
@@ -176,7 +165,8 @@ export class BrokerCircuitProverFacade {
176
165
  this.timeOfLastSnapshotSync = currentTime;
177
166
  snapshotSyncIds.push(...this.jobs.keys());
178
167
  this.log.trace(`Performing full snapshot sync of completed jobs with ${snapshotSyncIds.length} job(s)`);
179
- } else {
168
+ }
169
+ else {
180
170
  this.log.trace(`Performing incremental sync of completed jobs`);
181
171
  }
182
172
  // Now request the notifications from the broker
@@ -184,48 +174,41 @@ export class BrokerCircuitProverFacade {
184
174
  const completedJobs = await getAllCompletedJobs(snapshotSyncIds);
185
175
  // We now have an additional set of completed job notifications to add to our cached set giving us the full set of jobs that we have been told are ready
186
176
  // We filter this list to what we actually need, in case for any reason it is different and store in our cache
187
- const allJobsReady = [
188
- ...completedJobs,
189
- ...this.jobsToRetrieve
190
- ];
191
- this.jobsToRetrieve = new Set(allJobsReady.filter((id)=>this.jobs.has(id)));
177
+ const allJobsReady = [...completedJobs, ...this.jobsToRetrieve];
178
+ this.jobsToRetrieve = new Set(allJobsReady.filter(id => this.jobs.has(id)));
192
179
  if (completedJobs.size > 0) {
193
180
  this.log.verbose(`Check for job completion notifications returned ${completedJobs.size} job(s), snapshot ids length: ${snapshotIdsLength}, num outstanding jobs: ${this.jobs.size}, total jobs ready: ${this.jobsToRetrieve.size}`);
194
- } else {
181
+ }
182
+ else {
195
183
  this.log.trace(`Check for job completion notifications returned 0 jobs, snapshot ids length: ${snapshotIdsLength}, num outstanding jobs: ${this.jobs.size}, total jobs ready: ${this.jobsToRetrieve.size}`);
196
184
  }
197
185
  }
198
186
  async retrieveJobsThatShouldBeReady() {
199
- const convertJobResult = async (result, jobType)=>{
187
+ const convertJobResult = async (result, jobType) => {
200
188
  if (result.status === 'fulfilled') {
201
189
  const output = await this.proofStore.getProofOutput(result.value);
202
190
  if (output.type === jobType) {
203
- return {
204
- result: output.result,
205
- success: true
206
- };
207
- } else {
208
- return {
209
- success: false,
210
- reason: `Unexpected proof type: ${output.type}. Expected: ${jobType}`
211
- };
191
+ return { result: output.result, success: true };
192
+ }
193
+ else {
194
+ return { success: false, reason: `Unexpected proof type: ${output.type}. Expected: ${jobType}` };
212
195
  }
213
- } else if (result.status === 'rejected') {
214
- return {
215
- success: false,
216
- reason: result.reason
217
- };
218
- } else {
196
+ }
197
+ else if (result.status === 'rejected') {
198
+ return { success: false, reason: result.reason };
199
+ }
200
+ else {
219
201
  throw new Error(`Unexpected proving job status ${result.status}`);
220
202
  }
221
203
  };
222
- const processJob = async (job)=>{
204
+ const processJob = async (job) => {
223
205
  // First retrieve the settled job from the broker
224
206
  this.log.debug(`Received notification of completed job id=${job.id} type=${ProvingRequestType[job.type]}`);
225
207
  let settledResult;
226
208
  try {
227
209
  settledResult = await this.broker.getProvingJobStatus(job.id);
228
- } catch (err) {
210
+ }
211
+ catch (err) {
229
212
  // If an error occurs retrieving the job result then just log it and move on.
230
213
  // We will try again on the next iteration
231
214
  this.log.error(`Error retrieving job result from broker job id=${job.id} type=${ProvingRequestType[job.type]}`, err);
@@ -235,7 +218,8 @@ export class BrokerCircuitProverFacade {
235
218
  let result;
236
219
  try {
237
220
  result = await convertJobResult(settledResult, job.type);
238
- } catch (err) {
221
+ }
222
+ catch (err) {
239
223
  // If an error occurs retrieving the job result then just log it and move on.
240
224
  // We will try again on the next iteration
241
225
  this.log.error(`Error processing job result job id=${job.id} type=${ProvingRequestType[job.type]}`, err);
@@ -244,7 +228,8 @@ export class BrokerCircuitProverFacade {
244
228
  if (result.success) {
245
229
  this.log.verbose(`Resolved proving job id=${job.id} type=${ProvingRequestType[job.type]}`);
246
230
  job.promise.resolve(result.result);
247
- } else {
231
+ }
232
+ else {
248
233
  this.log.error(`Resolving proving job with error id=${job.id} type=${ProvingRequestType[job.type]}`, result.reason);
249
234
  if (result.reason !== 'Aborted') {
250
235
  void this.backupFailedProofInputs(job);
@@ -259,13 +244,15 @@ export class BrokerCircuitProverFacade {
259
244
  this.jobsToRetrieve.delete(job.id);
260
245
  return true;
261
246
  };
262
- const toBeRetrieved = Array.from(this.jobsToRetrieve.values()).map((id)=>this.jobs.get(id)).filter((x)=>x !== undefined);
247
+ const toBeRetrieved = Array.from(this.jobsToRetrieve.values())
248
+ .map(id => this.jobs.get(id))
249
+ .filter(x => x !== undefined);
263
250
  const totalJobsToRetrieve = toBeRetrieved.length;
264
251
  let totalJobsRetrieved = 0;
265
- while(toBeRetrieved.length > 0){
252
+ while (toBeRetrieved.length > 0) {
266
253
  const slice = toBeRetrieved.splice(0, MAX_CONCURRENT_JOB_SETTLED_REQUESTS);
267
- const results = await Promise.all(slice.map((job)=>processJob(job)));
268
- totalJobsRetrieved += results.filter((x)=>x).length;
254
+ const results = await Promise.all(slice.map(job => processJob(job)));
255
+ totalJobsRetrieved += results.filter(x => x).length;
269
256
  }
270
257
  if (totalJobsToRetrieve > 0) {
271
258
  this.log.verbose(`Successfully retrieved ${totalJobsRetrieved} of ${totalJobsToRetrieve} jobs that should be ready, total ready jobs is now: ${this.jobsToRetrieve.size}`);
@@ -281,9 +268,10 @@ export class BrokerCircuitProverFacade {
281
268
  this.log.info(`Stored proof inputs for failed job id=${job.id} type=${ProvingRequestType[job.type]} at ${uri}`, {
282
269
  id: job.id,
283
270
  type: job.type,
284
- uri
271
+ uri,
285
272
  });
286
- } catch (err) {
273
+ }
274
+ catch (err) {
287
275
  this.log.error(`Error backing up proof inputs for failed job id=${job.id} type=${ProvingRequestType[job.type]}`, err);
288
276
  }
289
277
  }
@@ -338,3 +326,4 @@ export class BrokerCircuitProverFacade {
338
326
  return makeProvingJobId(epochNumber, type, inputsHash.toString('hex'));
339
327
  }
340
328
  }
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJva2VyX3Byb3Zlcl9mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvYnJva2VyX3Byb3Zlcl9mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQVFMLGtCQUFrQixFQUdsQixnQkFBZ0IsR0FDakIsTUFBTSxzQkFBc0IsQ0FBQztBQTBCOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFFM0UsMkNBQTJDO0FBQzNDLE1BQU0seUJBQXlCLEdBQUcsS0FBTSxDQUFDO0FBRXpDLE1BQU0sbUNBQW1DLEdBQUcsRUFBRSxDQUFDO0FBQy9DLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxDQUFDO0FBV2xELE1BQU0sT0FBTyx5QkFBeUI7SUFPcEMsWUFDVSxNQUEwQixFQUMxQixhQUF5QixJQUFJLGdCQUFnQixFQUFFLEVBQy9DLGdCQUE2QixFQUM3QixpQkFBaUIsSUFBSSxFQUNyQixNQUFNLFlBQVksQ0FBQyw0Q0FBNEMsQ0FBQztRQUpoRSxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFxQztRQUMvQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWE7UUFDN0IsbUJBQWMsR0FBZCxjQUFjLENBQU87UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBNkQ7UUFYbEUsU0FBSSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFD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
@@ -0,0 +1,61 @@
1
+ import { ProvingRequestType } from '@aztec/circuit-types';
2
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
3
+ import { type DataStoreConfig } from '@aztec/kv-store/config';
4
+ import { z } from 'zod';
5
+ export declare const ProverBrokerConfig: z.ZodObject<{
6
+ /** If starting a prover broker locally, the max number of retries per proving job */
7
+ proverBrokerJobMaxRetries: z.ZodNumber;
8
+ /** If starting a prover broker locally, the time after which a job times out and gets assigned to a different agent */
9
+ proverBrokerJobTimeoutMs: z.ZodNumber;
10
+ /** If starting a prover broker locally, the interval the broker checks for timed out jobs */
11
+ proverBrokerPollIntervalMs: z.ZodNumber;
12
+ /** If starting a prover broker locally, the directory to store broker data */
13
+ dataDirectory: z.ZodOptional<z.ZodString>;
14
+ /** The size of the data store map */
15
+ dataStoreMapSizeKB: z.ZodNumber;
16
+ }, "strip", z.ZodTypeAny, {
17
+ proverBrokerJobMaxRetries: number;
18
+ proverBrokerJobTimeoutMs: number;
19
+ proverBrokerPollIntervalMs: number;
20
+ dataStoreMapSizeKB: number;
21
+ dataDirectory?: string | undefined;
22
+ }, {
23
+ proverBrokerJobMaxRetries: number;
24
+ proverBrokerJobTimeoutMs: number;
25
+ proverBrokerPollIntervalMs: number;
26
+ dataStoreMapSizeKB: number;
27
+ dataDirectory?: string | undefined;
28
+ }>;
29
+ export type ProverBrokerConfig = z.infer<typeof ProverBrokerConfig> & Pick<DataStoreConfig, 'dataStoreMapSizeKB' | 'dataDirectory'>;
30
+ export declare const proverBrokerConfigMappings: ConfigMappingsType<ProverBrokerConfig>;
31
+ export declare const ProverAgentConfig: z.ZodObject<{
32
+ /** The number of prover agents to start */
33
+ proverAgentCount: z.ZodNumber;
34
+ /** The types of proofs the prover agent can generate */
35
+ proverAgentProofTypes: z.ZodArray<z.ZodNativeEnum<typeof ProvingRequestType>, "many">;
36
+ /** How often the prover agents poll for jobs */
37
+ proverAgentPollIntervalMs: z.ZodNumber;
38
+ /** The URL where this agent takes jobs from */
39
+ proverBrokerUrl: z.ZodOptional<z.ZodString>;
40
+ /** Whether to construct real proofs */
41
+ realProofs: z.ZodBoolean;
42
+ /** Artificial delay to introduce to all operations to the test prover. */
43
+ proverTestDelayMs: z.ZodNumber;
44
+ }, "strip", z.ZodTypeAny, {
45
+ proverAgentCount: number;
46
+ proverAgentProofTypes: ProvingRequestType[];
47
+ proverAgentPollIntervalMs: number;
48
+ realProofs: boolean;
49
+ proverTestDelayMs: number;
50
+ proverBrokerUrl?: string | undefined;
51
+ }, {
52
+ proverAgentCount: number;
53
+ proverAgentProofTypes: ProvingRequestType[];
54
+ proverAgentPollIntervalMs: number;
55
+ realProofs: boolean;
56
+ proverTestDelayMs: number;
57
+ proverBrokerUrl?: string | undefined;
58
+ }>;
59
+ export type ProverAgentConfig = z.infer<typeof ProverAgentConfig>;
60
+ export declare const proverAgentConfigMappings: ConfigMappingsType<ProverAgentConfig>;
61
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/proving_broker/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,kBAAkB,EAA2C,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;IAC7B,qFAAqF;;IAErF,uHAAuH;;IAEvH,6FAA6F;;IAE7F,8EAA8E;;IAE9E,qCAAqC;;;;;;;;;;;;;;EAErC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACjE,IAAI,CAAC,eAAe,EAAE,oBAAoB,GAAG,eAAe,CAAC,CAAC;AAEhE,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAiB7E,CAAC;AAEF,eAAO,MAAM,iBAAiB;IAC5B,2CAA2C;;IAE3C,wDAAwD;;IAExD,gDAAgD;;IAEhD,+CAA+C;;IAE/C,uCAAuC;;IAEvC,0EAA0E;;;;;;;;;;;;;;;;EAE1E,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAkC3E,CAAC"}
@@ -3,66 +3,81 @@ import { booleanConfigHelper, numberConfigHelper } from '@aztec/foundation/confi
3
3
  import { dataConfigMappings } from '@aztec/kv-store/config';
4
4
  import { z } from 'zod';
5
5
  export const ProverBrokerConfig = z.object({
6
- /** If starting a prover broker locally, the max number of retries per proving job */ proverBrokerJobMaxRetries: z.number(),
7
- /** If starting a prover broker locally, the time after which a job times out and gets assigned to a different agent */ proverBrokerJobTimeoutMs: z.number(),
8
- /** If starting a prover broker locally, the interval the broker checks for timed out jobs */ proverBrokerPollIntervalMs: z.number(),
9
- /** If starting a prover broker locally, the directory to store broker data */ dataDirectory: z.string().optional(),
10
- /** The size of the data store map */ dataStoreMapSizeKB: z.number()
6
+ /** If starting a prover broker locally, the max number of retries per proving job */
7
+ proverBrokerJobMaxRetries: z.number(),
8
+ /** If starting a prover broker locally, the time after which a job times out and gets assigned to a different agent */
9
+ proverBrokerJobTimeoutMs: z.number(),
10
+ /** If starting a prover broker locally, the interval the broker checks for timed out jobs */
11
+ proverBrokerPollIntervalMs: z.number(),
12
+ /** If starting a prover broker locally, the directory to store broker data */
13
+ dataDirectory: z.string().optional(),
14
+ /** The size of the data store map */
15
+ dataStoreMapSizeKB: z.number(),
11
16
  });
12
17
  export const proverBrokerConfigMappings = {
13
18
  proverBrokerJobTimeoutMs: {
14
19
  env: 'PROVER_BROKER_JOB_TIMEOUT_MS',
15
20
  description: 'Jobs are retried if not kept alive for this long',
16
- ...numberConfigHelper(30_000)
21
+ ...numberConfigHelper(30000),
17
22
  },
18
23
  proverBrokerPollIntervalMs: {
19
24
  env: 'PROVER_BROKER_POLL_INTERVAL_MS',
20
25
  description: 'The interval to check job health status',
21
- ...numberConfigHelper(1_000)
26
+ ...numberConfigHelper(1000),
22
27
  },
23
28
  proverBrokerJobMaxRetries: {
24
29
  env: 'PROVER_BROKER_JOB_MAX_RETRIES',
25
30
  description: 'If starting a prover broker locally, the max number of retries per proving job',
26
- ...numberConfigHelper(3)
31
+ ...numberConfigHelper(3),
27
32
  },
28
- ...dataConfigMappings
33
+ ...dataConfigMappings,
29
34
  };
30
35
  export const ProverAgentConfig = z.object({
31
- /** The number of prover agents to start */ proverAgentCount: z.number(),
32
- /** The types of proofs the prover agent can generate */ proverAgentProofTypes: z.array(z.nativeEnum(ProvingRequestType)),
33
- /** How often the prover agents poll for jobs */ proverAgentPollIntervalMs: z.number(),
34
- /** The URL where this agent takes jobs from */ proverBrokerUrl: z.string().optional(),
35
- /** Whether to construct real proofs */ realProofs: z.boolean(),
36
- /** Artificial delay to introduce to all operations to the test prover. */ proverTestDelayMs: z.number()
36
+ /** The number of prover agents to start */
37
+ proverAgentCount: z.number(),
38
+ /** The types of proofs the prover agent can generate */
39
+ proverAgentProofTypes: z.array(z.nativeEnum(ProvingRequestType)),
40
+ /** How often the prover agents poll for jobs */
41
+ proverAgentPollIntervalMs: z.number(),
42
+ /** The URL where this agent takes jobs from */
43
+ proverBrokerUrl: z.string().optional(),
44
+ /** Whether to construct real proofs */
45
+ realProofs: z.boolean(),
46
+ /** Artificial delay to introduce to all operations to the test prover. */
47
+ proverTestDelayMs: z.number(),
37
48
  });
38
49
  export const proverAgentConfigMappings = {
39
50
  proverAgentCount: {
40
51
  env: 'PROVER_AGENT_COUNT',
41
52
  description: 'Whether this prover has a local prover agent',
42
- ...numberConfigHelper(1)
53
+ ...numberConfigHelper(1),
43
54
  },
44
55
  proverAgentPollIntervalMs: {
45
56
  env: 'PROVER_AGENT_POLL_INTERVAL_MS',
46
57
  description: 'The interval agents poll for jobs at',
47
- ...numberConfigHelper(100)
58
+ ...numberConfigHelper(100),
48
59
  },
49
60
  proverAgentProofTypes: {
50
61
  env: 'PROVER_AGENT_PROOF_TYPES',
51
62
  description: 'The types of proofs the prover agent can generate',
52
- parseEnv: (val)=>val.split(',').map((v)=>ProvingRequestType[v]).filter((v)=>typeof v === 'number')
63
+ parseEnv: (val) => val
64
+ .split(',')
65
+ .map(v => ProvingRequestType[v])
66
+ .filter(v => typeof v === 'number'),
53
67
  },
54
68
  proverBrokerUrl: {
55
69
  env: 'PROVER_BROKER_HOST',
56
- description: 'The URL where this agent takes jobs from'
70
+ description: 'The URL where this agent takes jobs from',
57
71
  },
58
72
  realProofs: {
59
73
  env: 'PROVER_REAL_PROOFS',
60
74
  description: 'Whether to construct real proofs',
61
- ...booleanConfigHelper(false)
75
+ ...booleanConfigHelper(false),
62
76
  },
63
77
  proverTestDelayMs: {
64
78
  env: 'PROVER_TEST_DELAY_MS',
65
79
  description: 'Artificial delay to introduce to all operations to the test prover.',
66
- ...numberConfigHelper(0)
67
- }
80
+ ...numberConfigHelper(0),
81
+ },
68
82
  };
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQTJCLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUcsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxxRkFBcUY7SUFDckYseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNyQyx1SEFBdUg7SUFDdkgsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQyw2RkFBNkY7SUFDN0YsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN0Qyw4RUFBOEU7SUFDOUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMscUNBQXFDO0lBQ3JDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDL0IsQ0FBQyxDQUFDO0FBS0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQTJDO0lBQ2hGLHdCQUF3QixFQUFFO1FBQ3hCLEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsV0FBVyxFQUFFLGtEQUFrRDtRQUMvRCxHQUFHLGtCQUFrQixDQUFDLEtBQU0sQ0FBQztLQUM5QjtJQUNELDBCQUEwQixFQUFFO1FBQzFCLEdBQUcsRUFBRSxnQ0FBZ0M7UUFDckMsV0FBVyxFQUFFLHlDQUF5QztRQUN0RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELHlCQUF5QixFQUFFO1FBQ3pCLEdBQUcsRUFBRSwrQkFBK0I7UUFDcEMsV0FBVyxFQUFFLGdGQUFnRjtRQUM3RixHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQztLQUN6QjtJQUNELEdBQUcsa0JBQWtCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLDJDQUEyQztJQUMzQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzVCLHdEQUF3RDtJQUN4RCxxQkFBcUIsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoRSxnREFBZ0Q7SUFDaEQseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNyQywrQ0FBK0M7SUFDL0MsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsdUNBQXVDO0lBQ3ZDLFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQ3ZCLDBFQUEwRTtJQUMxRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQzlCLENBQUMsQ0FBQztBQUlILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUEwQztJQUM5RSxnQkFBZ0IsRUFBRTtRQUNoQixHQUFHLEVBQUUsb0JBQW9CO1FBQ3pCLFdBQVcsRUFBRSw4Q0FBOEM7UUFDM0QsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7S0FDekI7SUFDRCx5QkFBeUIsRUFBRTtRQUN6QixHQUFHLEVBQUUsK0JBQStCO1FBQ3BDLFdBQVcsRUFBRSxzQ0FBc0M7UUFDbkQsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixHQUFHLEVBQUUsMEJBQTBCO1FBQy9CLFdBQVcsRUFBRSxtREFBbUQ7UUFDaEUsUUFBUSxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDeEIsR0FBRzthQUNBLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFRLENBQUMsQ0FBQzthQUN0QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7S0FDeEM7SUFDRCxlQUFlLEVBQUU7UUFDZixHQUFHLEVBQUUsb0JBQW9CO1FBQ3pCLFdBQVcsRUFBRSwwQ0FBMEM7S0FDeEQ7SUFDRCxVQUFVLEVBQUU7UUFDVixHQUFHLEVBQUUsb0JBQW9CO1FBQ3pCLFdBQVcsRUFBRSxrQ0FBa0M7UUFDL0MsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7S0FDOUI7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFdBQVcsRUFBRSxxRUFBcUU7UUFDbEYsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7S0FDekI7Q0FDRixDQUFDIn0=
@@ -0,0 +1,5 @@
1
+ import { type TelemetryClient } from '@aztec/telemetry-client';
2
+ import { type ProverBrokerConfig } from './config.js';
3
+ import { ProvingBroker } from './proving_broker.js';
4
+ export declare function createAndStartProvingBroker(config: ProverBrokerConfig, client: TelemetryClient): Promise<ProvingBroker>;
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/proving_broker/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAexB"}
@@ -6,8 +6,9 @@ export async function createAndStartProvingBroker(config, client) {
6
6
  const broker = new ProvingBroker(database, {
7
7
  jobTimeoutMs: config.proverBrokerJobTimeoutMs,
8
8
  maxRetries: config.proverBrokerJobMaxRetries,
9
- timeoutIntervalMs: config.proverBrokerPollIntervalMs
9
+ timeoutIntervalMs: config.proverBrokerPollIntervalMs,
10
10
  }, client);
11
11
  await broker.start();
12
12
  return broker;
13
13
  }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxNQUEwQixFQUMxQixNQUF1QjtJQUV2QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBQztJQUVsSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FDOUIsUUFBUSxFQUNSO1FBQ0UsWUFBWSxFQUFFLE1BQU0sQ0FBQyx3QkFBd0I7UUFDN0MsVUFBVSxFQUFFLE1BQU0sQ0FBQyx5QkFBeUI7UUFDNUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLDBCQUEwQjtLQUNyRCxFQUNELE1BQU0sQ0FDUCxDQUFDO0lBRUYsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
@@ -0,0 +1,5 @@
1
+ import { type ProofUri, type ProvingJobId } from '@aztec/circuit-types';
2
+ export declare function makeRandomProvingJobId(epochNumber?: number): ProvingJobId;
3
+ export declare function makeInputsUri(): ProofUri;
4
+ export declare function makeOutputsUri(): ProofUri;
5
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/proving_broker/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAwC,MAAM,sBAAsB,CAAC;AAG9G,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAEzE;AAED,wBAAgB,aAAa,IAAI,QAAQ,CAExC;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAEzC"}
@@ -9,3 +9,4 @@ export function makeInputsUri() {
9
9
  export function makeOutputsUri() {
10
10
  return randomBytes(8).toString('hex');
11
11
  }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsV0FBb0I7SUFDekQsT0FBTyxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDNUcsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQWEsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWM7SUFDNUIsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBYSxDQUFDO0FBQ3BELENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ export * from './proving_agent.js';
2
+ export * from './proving_broker.js';
3
+ export * from './rpc.js';
4
+ export * from './proving_broker_database.js';
5
+ export * from './proving_broker_database/memory.js';
6
+ export * from './proving_broker_database/persisted.js';
7
+ export * from './proof_store/index.js';
8
+ export * from './factory.js';
9
+ export * from './config.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proving_broker/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -7,3 +7,4 @@ export * from './proving_broker_database/persisted.js';
7
7
  export * from './proof_store/index.js';
8
8
  export * from './factory.js';
9
9
  export * from './config.js';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUMifQ==
@@ -0,0 +1,6 @@
1
+ import { GoogleCloudStorageProofStore } from './gcs_proof_store.js';
2
+ import { InlineProofStore } from './inline_proof_store.js';
3
+ import { type ProofStore } from './proof_store.js';
4
+ export declare function createProofStore(config: string | undefined, logger?: import("@aztec/foundation/log").Logger): InlineProofStore | GoogleCloudStorageProofStore;
5
+ export declare function createProofStoreForUri(uri: string, logger?: import("@aztec/foundation/log").Logger): Pick<ProofStore, 'getProofInput' | 'getProofOutput'>;
6
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,yCAA4C,mDAmB9G;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,yCAA4C,GACjD,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAAC,CAWtD"}