@aztec/prover-client 0.65.0 → 0.65.2

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 (102) hide show
  1. package/dest/config.d.ts +4 -10
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +8 -7
  4. package/dest/index.d.ts +1 -0
  5. package/dest/index.d.ts.map +1 -1
  6. package/dest/index.js +2 -1
  7. package/dest/mocks/test_context.js +3 -2
  8. package/dest/orchestrator/block-building-helpers.d.ts +5 -2
  9. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  10. package/dest/orchestrator/block-building-helpers.js +18 -22
  11. package/dest/orchestrator/block-proving-state.js +2 -2
  12. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  13. package/dest/orchestrator/orchestrator.js +5 -8
  14. package/dest/prover-agent/memory-proving-queue.d.ts +10 -8
  15. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
  16. package/dest/prover-agent/memory-proving-queue.js +35 -35
  17. package/dest/prover-agent/prover-agent.d.ts +1 -0
  18. package/dest/prover-agent/prover-agent.d.ts.map +1 -1
  19. package/dest/prover-agent/prover-agent.js +12 -9
  20. package/dest/proving_broker/caching_broker_facade.d.ts +30 -0
  21. package/dest/proving_broker/caching_broker_facade.d.ts.map +1 -0
  22. package/dest/proving_broker/caching_broker_facade.js +150 -0
  23. package/dest/proving_broker/factory.d.ts +4 -0
  24. package/dest/proving_broker/factory.d.ts.map +1 -0
  25. package/dest/proving_broker/factory.js +17 -0
  26. package/dest/proving_broker/index.d.ts +9 -0
  27. package/dest/proving_broker/index.d.ts.map +1 -0
  28. package/dest/proving_broker/index.js +9 -0
  29. package/dest/proving_broker/proof_store.d.ts +46 -0
  30. package/dest/proving_broker/proof_store.d.ts.map +1 -0
  31. package/dest/proving_broker/proof_store.js +37 -0
  32. package/dest/proving_broker/prover_cache/memory.d.ts +9 -0
  33. package/dest/proving_broker/prover_cache/memory.d.ts.map +1 -0
  34. package/dest/proving_broker/prover_cache/memory.js +16 -0
  35. package/dest/proving_broker/proving_agent.d.ts +11 -6
  36. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  37. package/dest/proving_broker/proving_agent.js +48 -20
  38. package/dest/proving_broker/proving_broker.d.ts +17 -16
  39. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  40. package/dest/proving_broker/proving_broker.js +44 -23
  41. package/dest/proving_broker/proving_broker_database/memory.d.ts +14 -0
  42. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  43. package/dest/proving_broker/proving_broker_database/memory.js +35 -0
  44. package/dest/proving_broker/proving_broker_database/persisted.d.ts +15 -0
  45. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  46. package/dest/proving_broker/proving_broker_database/persisted.js +35 -0
  47. package/dest/proving_broker/{proving_job_database.d.ts → proving_broker_database.d.ts} +8 -8
  48. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  49. package/dest/proving_broker/proving_broker_database.js +2 -0
  50. package/dest/proving_broker/proving_job_controller.d.ts +13 -8
  51. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  52. package/dest/proving_broker/proving_job_controller.js +43 -43
  53. package/dest/proving_broker/rpc.d.ts +11 -0
  54. package/dest/proving_broker/rpc.d.ts.map +1 -0
  55. package/dest/proving_broker/rpc.js +44 -0
  56. package/dest/test/mock_prover.d.ts +15 -1
  57. package/dest/test/mock_prover.d.ts.map +1 -1
  58. package/dest/test/mock_prover.js +36 -1
  59. package/dest/tx-prover/factory.d.ts +2 -1
  60. package/dest/tx-prover/factory.d.ts.map +1 -1
  61. package/dest/tx-prover/factory.js +3 -3
  62. package/dest/tx-prover/tx-prover.d.ts +13 -7
  63. package/dest/tx-prover/tx-prover.d.ts.map +1 -1
  64. package/dest/tx-prover/tx-prover.js +52 -35
  65. package/package.json +14 -12
  66. package/src/config.ts +17 -16
  67. package/src/index.ts +1 -0
  68. package/src/mocks/test_context.ts +2 -2
  69. package/src/orchestrator/block-building-helpers.ts +34 -37
  70. package/src/orchestrator/block-proving-state.ts +1 -1
  71. package/src/orchestrator/orchestrator.ts +4 -9
  72. package/src/prover-agent/memory-proving-queue.ts +43 -44
  73. package/src/prover-agent/prover-agent.ts +16 -20
  74. package/src/proving_broker/caching_broker_facade.ts +312 -0
  75. package/src/proving_broker/factory.ts +21 -0
  76. package/src/proving_broker/index.ts +8 -0
  77. package/src/proving_broker/proof_store.ts +106 -0
  78. package/src/proving_broker/prover_cache/memory.ts +20 -0
  79. package/src/proving_broker/proving_agent.ts +75 -20
  80. package/src/proving_broker/proving_broker.ts +98 -65
  81. package/src/proving_broker/proving_broker_database/memory.ts +43 -0
  82. package/src/proving_broker/proving_broker_database/persisted.ts +45 -0
  83. package/src/proving_broker/{proving_job_database.ts → proving_broker_database.ts} +7 -12
  84. package/src/proving_broker/proving_job_controller.ts +54 -46
  85. package/src/proving_broker/rpc.ts +64 -0
  86. package/src/test/mock_prover.ts +51 -0
  87. package/src/tx-prover/factory.ts +7 -2
  88. package/src/tx-prover/tx-prover.ts +78 -46
  89. package/dest/proving_broker/proving_broker_interface.d.ts +0 -61
  90. package/dest/proving_broker/proving_broker_interface.d.ts.map +0 -1
  91. package/dest/proving_broker/proving_broker_interface.js +0 -2
  92. package/dest/proving_broker/proving_job_database/memory.d.ts +0 -14
  93. package/dest/proving_broker/proving_job_database/memory.d.ts.map +0 -1
  94. package/dest/proving_broker/proving_job_database/memory.js +0 -35
  95. package/dest/proving_broker/proving_job_database/persisted.d.ts +0 -15
  96. package/dest/proving_broker/proving_job_database/persisted.d.ts.map +0 -1
  97. package/dest/proving_broker/proving_job_database/persisted.js +0 -34
  98. package/dest/proving_broker/proving_job_database.d.ts.map +0 -1
  99. package/dest/proving_broker/proving_job_database.js +0 -2
  100. package/src/proving_broker/proving_broker_interface.ts +0 -74
  101. package/src/proving_broker/proving_job_database/memory.ts +0 -43
  102. package/src/proving_broker/proving_job_database/persisted.ts +0 -44
@@ -1,61 +0,0 @@
1
- import { type ProvingRequestType, type V2ProofOutput, type V2ProvingJob, type V2ProvingJobId, type V2ProvingJobStatus } from '@aztec/circuit-types';
2
- /**
3
- * An interface for the proving orchestrator. The producer uses this to enqueue jobs for agents
4
- */
5
- export interface ProvingJobProducer {
6
- /**
7
- * Enqueues a proving job
8
- * @param job - The job to enqueue
9
- */
10
- enqueueProvingJob(job: V2ProvingJob): Promise<void>;
11
- /**
12
- * Cancels a proving job and clears all of its
13
- * @param id - The ID of the job to cancel
14
- */
15
- removeAndCancelProvingJob(id: V2ProvingJobId): Promise<void>;
16
- /**
17
- * Returns the current status fof the proving job
18
- * @param id - The ID of the job to get the status of
19
- */
20
- getProvingJobStatus(id: V2ProvingJobId): Promise<V2ProvingJobStatus>;
21
- }
22
- export interface ProvingJobFilter<T extends ProvingRequestType[]> {
23
- allowList?: T;
24
- }
25
- /**
26
- * An interface for proving agents to request jobs and report results
27
- */
28
- export interface ProvingJobConsumer {
29
- /**
30
- * Gets a proving job to work on
31
- * @param filter - Optional filter for the type of job to get
32
- */
33
- getProvingJob<T extends ProvingRequestType[]>(filter?: ProvingJobFilter<T>): Promise<{
34
- job: V2ProvingJob;
35
- time: number;
36
- } | undefined>;
37
- /**
38
- * Marks a proving job as successful
39
- * @param id - The ID of the job to report success for
40
- * @param result - The result of the job
41
- */
42
- reportProvingJobSuccess(id: V2ProvingJobId, result: V2ProofOutput): Promise<void>;
43
- /**
44
- * Marks a proving job as errored
45
- * @param id - The ID of the job to report an error for
46
- * @param err - The error that occurred while processing the job
47
- * @param retry - Whether to retry the job
48
- */
49
- reportProvingJobError(id: V2ProvingJobId, err: Error, retry?: boolean): Promise<void>;
50
- /**
51
- * Sends a heartbeat to the broker to indicate that the agent is still working on the given proving job
52
- * @param id - The ID of the job to report progress for
53
- * @param startedAt - The unix epoch when the job was started
54
- * @param filter - Optional filter for the type of job to get
55
- */
56
- reportProvingJobProgress<F extends ProvingRequestType[]>(id: V2ProvingJobId, startedAt: number, filter?: ProvingJobFilter<F>): Promise<{
57
- job: V2ProvingJob;
58
- time: number;
59
- } | undefined>;
60
- }
61
- //# sourceMappingURL=proving_broker_interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proving_broker_interface.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_interface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,kBAAkB,EAAE;IAC9D,SAAS,CAAC,EAAE,CAAC,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,aAAa,CAAC,CAAC,SAAS,kBAAkB,EAAE,EAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAE5D;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtF;;;;;OAKG;IACH,wBAAwB,CAAC,CAAC,SAAS,kBAAkB,EAAE,EACrD,EAAE,EAAE,cAAc,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;CAC7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3ZpbmdfYnJva2VyX2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,14 +0,0 @@
1
- import type { V2ProofOutput, V2ProvingJob, V2ProvingJobId, V2ProvingJobResult } from '@aztec/circuit-types';
2
- import { type ProvingJobDatabase } from '../proving_job_database.js';
3
- export declare class InMemoryDatabase implements ProvingJobDatabase {
4
- private jobs;
5
- private results;
6
- getProvingJob(id: V2ProvingJobId): V2ProvingJob | undefined;
7
- getProvingJobResult(id: V2ProvingJobId): V2ProvingJobResult | undefined;
8
- addProvingJob(request: V2ProvingJob): Promise<void>;
9
- setProvingJobResult(id: V2ProvingJobId, value: V2ProofOutput): Promise<void>;
10
- setProvingJobError(id: V2ProvingJobId, error: Error): Promise<void>;
11
- deleteProvingJobAndResult(id: V2ProvingJobId): Promise<void>;
12
- allProvingJobs(): Iterable<[V2ProvingJob, V2ProvingJobResult | undefined]>;
13
- }
14
- //# sourceMappingURL=memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_job_database/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE5G,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,OAAO,CAAC,IAAI,CAA2C;IACvD,OAAO,CAAC,OAAO,CAAiD;IAEhE,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS;IAI3D,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS;IAIvE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5E,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,yBAAyB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,cAAc,IAAI,QAAQ,CAAC,CAAC,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC,CAAC;CAK5E"}
@@ -1,35 +0,0 @@
1
- export class InMemoryDatabase {
2
- constructor() {
3
- this.jobs = new Map();
4
- this.results = new Map();
5
- }
6
- getProvingJob(id) {
7
- return this.jobs.get(id);
8
- }
9
- getProvingJobResult(id) {
10
- return this.results.get(id);
11
- }
12
- addProvingJob(request) {
13
- this.jobs.set(request.id, request);
14
- return Promise.resolve();
15
- }
16
- setProvingJobResult(id, value) {
17
- this.results.set(id, { value });
18
- return Promise.resolve();
19
- }
20
- setProvingJobError(id, error) {
21
- this.results.set(id, { error: String(error) });
22
- return Promise.resolve();
23
- }
24
- deleteProvingJobAndResult(id) {
25
- this.jobs.delete(id);
26
- this.results.delete(id);
27
- return Promise.resolve();
28
- }
29
- *allProvingJobs() {
30
- for (const item of this.jobs.values()) {
31
- yield [item, this.results.get(item.id)];
32
- }
33
- }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3Zpbmdfam9iX2RhdGFiYXNlL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQTdCO1FBQ1UsU0FBSSxHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO1FBQy9DLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQztJQW9DbEUsQ0FBQztJQWxDQyxhQUFhLENBQUMsRUFBa0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsRUFBa0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQXFCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkMsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQWtCLEVBQUUsS0FBb0I7UUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBa0IsRUFBRSxLQUFZO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFrQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsQ0FBQyxjQUFjO1FBQ2IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQVUsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,15 +0,0 @@
1
- import { type V2ProofOutput, V2ProvingJob, type V2ProvingJobId, V2ProvingJobResult } from '@aztec/circuit-types';
2
- import { type AztecKVStore } from '@aztec/kv-store';
3
- import { type ProvingJobDatabase } from '../proving_job_database.js';
4
- export declare class PersistedProvingJobDatabase implements ProvingJobDatabase {
5
- private store;
6
- private jobs;
7
- private jobResults;
8
- constructor(store: AztecKVStore);
9
- addProvingJob(job: V2ProvingJob): Promise<void>;
10
- allProvingJobs(): Iterable<[V2ProvingJob, V2ProvingJobResult | undefined]>;
11
- deleteProvingJobAndResult(id: V2ProvingJobId): Promise<void>;
12
- setProvingJobError(id: V2ProvingJobId, err: Error): Promise<void>;
13
- setProvingJobResult(id: V2ProvingJobId, value: V2ProofOutput): Promise<void>;
14
- }
15
- //# sourceMappingURL=persisted.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persisted.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_job_database/persisted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,qBAAa,2BAA4B,YAAW,kBAAkB;IAIxD,OAAO,CAAC,KAAK;IAHzB,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,UAAU,CAAmC;gBAEjC,KAAK,EAAE,YAAY;IAKjC,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,cAAc,IAAI,QAAQ,CAAC,CAAC,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAS3E,yBAAyB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjE,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAInF"}
@@ -1,34 +0,0 @@
1
- import { V2ProvingJob, V2ProvingJobResult } from '@aztec/circuit-types';
2
- export class PersistedProvingJobDatabase {
3
- constructor(store) {
4
- this.store = store;
5
- this.jobs = store.openMap('proving_jobs');
6
- this.jobResults = store.openMap('proving_job_results');
7
- }
8
- async addProvingJob(job) {
9
- await this.jobs.set(job.id, JSON.stringify(job));
10
- }
11
- *allProvingJobs() {
12
- for (const jobStr of this.jobs.values()) {
13
- const job = V2ProvingJob.parse(JSON.parse(jobStr));
14
- const resultStr = this.jobResults.get(job.id);
15
- const result = resultStr ? V2ProvingJobResult.parse(JSON.parse(resultStr)) : undefined;
16
- yield [job, result];
17
- }
18
- }
19
- deleteProvingJobAndResult(id) {
20
- return this.store.transaction(() => {
21
- void this.jobs.delete(id);
22
- void this.jobResults.delete(id);
23
- });
24
- }
25
- async setProvingJobError(id, err) {
26
- const res = { error: err.message };
27
- await this.jobResults.set(id, JSON.stringify(res));
28
- }
29
- async setProvingJobResult(id, value) {
30
- const res = { value };
31
- await this.jobResults.set(id, JSON.stringify(res));
32
- }
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3Zpbmdfam9iX2RhdGFiYXNlL3BlcnNpc3RlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFlBQVksRUFBdUIsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUtqSCxNQUFNLE9BQU8sMkJBQTJCO0lBSXRDLFlBQW9CLEtBQW1CO1FBQW5CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQWlCO1FBQ25DLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELENBQUMsY0FBYztRQUNiLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN2RixNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQseUJBQXlCLENBQUMsRUFBa0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDakMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQixLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFrQixFQUFFLEdBQVU7UUFDckQsTUFBTSxHQUFHLEdBQXVCLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2RCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFrQixFQUFFLEtBQW9CO1FBQ2hFLE1BQU0sR0FBRyxHQUF1QixFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"proving_job_database.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_database.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D;;OAEG;IACH,cAAc,IAAI,QAAQ,CAAC,CAAC,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC,CAAC,CAAC;IAE3E;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19qb2JfZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcHJvdmluZ19qb2JfZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,74 +0,0 @@
1
- import {
2
- type ProvingRequestType,
3
- type V2ProofOutput,
4
- type V2ProvingJob,
5
- type V2ProvingJobId,
6
- type V2ProvingJobStatus,
7
- } from '@aztec/circuit-types';
8
-
9
- /**
10
- * An interface for the proving orchestrator. The producer uses this to enqueue jobs for agents
11
- */
12
- export interface ProvingJobProducer {
13
- /**
14
- * Enqueues a proving job
15
- * @param job - The job to enqueue
16
- */
17
- enqueueProvingJob(job: V2ProvingJob): Promise<void>;
18
-
19
- /**
20
- * Cancels a proving job and clears all of its
21
- * @param id - The ID of the job to cancel
22
- */
23
- removeAndCancelProvingJob(id: V2ProvingJobId): Promise<void>;
24
-
25
- /**
26
- * Returns the current status fof the proving job
27
- * @param id - The ID of the job to get the status of
28
- */
29
- getProvingJobStatus(id: V2ProvingJobId): Promise<V2ProvingJobStatus>;
30
- }
31
-
32
- export interface ProvingJobFilter<T extends ProvingRequestType[]> {
33
- allowList?: T;
34
- }
35
-
36
- /**
37
- * An interface for proving agents to request jobs and report results
38
- */
39
- export interface ProvingJobConsumer {
40
- /**
41
- * Gets a proving job to work on
42
- * @param filter - Optional filter for the type of job to get
43
- */
44
- getProvingJob<T extends ProvingRequestType[]>(
45
- filter?: ProvingJobFilter<T>,
46
- ): Promise<{ job: V2ProvingJob; time: number } | undefined>;
47
-
48
- /**
49
- * Marks a proving job as successful
50
- * @param id - The ID of the job to report success for
51
- * @param result - The result of the job
52
- */
53
- reportProvingJobSuccess(id: V2ProvingJobId, result: V2ProofOutput): Promise<void>;
54
-
55
- /**
56
- * Marks a proving job as errored
57
- * @param id - The ID of the job to report an error for
58
- * @param err - The error that occurred while processing the job
59
- * @param retry - Whether to retry the job
60
- */
61
- reportProvingJobError(id: V2ProvingJobId, err: Error, retry?: boolean): Promise<void>;
62
-
63
- /**
64
- * Sends a heartbeat to the broker to indicate that the agent is still working on the given proving job
65
- * @param id - The ID of the job to report progress for
66
- * @param startedAt - The unix epoch when the job was started
67
- * @param filter - Optional filter for the type of job to get
68
- */
69
- reportProvingJobProgress<F extends ProvingRequestType[]>(
70
- id: V2ProvingJobId,
71
- startedAt: number,
72
- filter?: ProvingJobFilter<F>,
73
- ): Promise<{ job: V2ProvingJob; time: number } | undefined>;
74
- }
@@ -1,43 +0,0 @@
1
- import type { V2ProofOutput, V2ProvingJob, V2ProvingJobId, V2ProvingJobResult } from '@aztec/circuit-types';
2
-
3
- import { type ProvingJobDatabase } from '../proving_job_database.js';
4
-
5
- export class InMemoryDatabase implements ProvingJobDatabase {
6
- private jobs = new Map<V2ProvingJobId, V2ProvingJob>();
7
- private results = new Map<V2ProvingJobId, V2ProvingJobResult>();
8
-
9
- getProvingJob(id: V2ProvingJobId): V2ProvingJob | undefined {
10
- return this.jobs.get(id);
11
- }
12
-
13
- getProvingJobResult(id: V2ProvingJobId): V2ProvingJobResult | undefined {
14
- return this.results.get(id);
15
- }
16
-
17
- addProvingJob(request: V2ProvingJob): Promise<void> {
18
- this.jobs.set(request.id, request);
19
- return Promise.resolve();
20
- }
21
-
22
- setProvingJobResult(id: V2ProvingJobId, value: V2ProofOutput): Promise<void> {
23
- this.results.set(id, { value });
24
- return Promise.resolve();
25
- }
26
-
27
- setProvingJobError(id: V2ProvingJobId, error: Error): Promise<void> {
28
- this.results.set(id, { error: String(error) });
29
- return Promise.resolve();
30
- }
31
-
32
- deleteProvingJobAndResult(id: V2ProvingJobId): Promise<void> {
33
- this.jobs.delete(id);
34
- this.results.delete(id);
35
- return Promise.resolve();
36
- }
37
-
38
- *allProvingJobs(): Iterable<[V2ProvingJob, V2ProvingJobResult | undefined]> {
39
- for (const item of this.jobs.values()) {
40
- yield [item, this.results.get(item.id)] as const;
41
- }
42
- }
43
- }
@@ -1,44 +0,0 @@
1
- import { type V2ProofOutput, V2ProvingJob, type V2ProvingJobId, V2ProvingJobResult } from '@aztec/circuit-types';
2
- import { type AztecKVStore, type AztecMap } from '@aztec/kv-store';
3
-
4
- import { type ProvingJobDatabase } from '../proving_job_database.js';
5
-
6
- export class PersistedProvingJobDatabase implements ProvingJobDatabase {
7
- private jobs: AztecMap<V2ProvingJobId, string>;
8
- private jobResults: AztecMap<V2ProvingJobId, string>;
9
-
10
- constructor(private store: AztecKVStore) {
11
- this.jobs = store.openMap('proving_jobs');
12
- this.jobResults = store.openMap('proving_job_results');
13
- }
14
-
15
- async addProvingJob(job: V2ProvingJob): Promise<void> {
16
- await this.jobs.set(job.id, JSON.stringify(job));
17
- }
18
-
19
- *allProvingJobs(): Iterable<[V2ProvingJob, V2ProvingJobResult | undefined]> {
20
- for (const jobStr of this.jobs.values()) {
21
- const job = V2ProvingJob.parse(JSON.parse(jobStr));
22
- const resultStr = this.jobResults.get(job.id);
23
- const result = resultStr ? V2ProvingJobResult.parse(JSON.parse(resultStr)) : undefined;
24
- yield [job, result];
25
- }
26
- }
27
-
28
- deleteProvingJobAndResult(id: V2ProvingJobId): Promise<void> {
29
- return this.store.transaction(() => {
30
- void this.jobs.delete(id);
31
- void this.jobResults.delete(id);
32
- });
33
- }
34
-
35
- async setProvingJobError(id: V2ProvingJobId, err: Error): Promise<void> {
36
- const res: V2ProvingJobResult = { error: err.message };
37
- await this.jobResults.set(id, JSON.stringify(res));
38
- }
39
-
40
- async setProvingJobResult(id: V2ProvingJobId, value: V2ProofOutput): Promise<void> {
41
- const res: V2ProvingJobResult = { value };
42
- await this.jobResults.set(id, JSON.stringify(res));
43
- }
44
- }