@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
@@ -0,0 +1,8 @@
1
+ import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
2
+ export declare class ProvingOrchestratorMetrics {
3
+ readonly tracer: Tracer;
4
+ private baseRollupInputsDuration;
5
+ constructor(client: TelemetryClient, name?: string);
6
+ recordBaseRollupInputs(durationMs: number): void;
7
+ }
8
+ //# sourceMappingURL=orchestrator_metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator_metrics.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,eAAe,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAEhH,qBAAa,0BAA0B;IACrC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,wBAAwB,CAAY;gBAEhC,MAAM,EAAE,eAAe,EAAE,IAAI,SAAwB;IAWjE,sBAAsB,CAAC,UAAU,EAAE,MAAM;CAG1C"}
@@ -1,17 +1,16 @@
1
1
  import { Metrics, ValueType } from '@aztec/telemetry-client';
2
2
  export class ProvingOrchestratorMetrics {
3
- tracer;
4
- baseRollupInputsDuration;
5
- constructor(client, name = 'ProvingOrchestrator'){
3
+ constructor(client, name = 'ProvingOrchestrator') {
6
4
  this.tracer = client.getTracer(name);
7
5
  const meter = client.getMeter(name);
8
6
  this.baseRollupInputsDuration = meter.createHistogram(Metrics.PROVING_ORCHESTRATOR_BASE_ROLLUP_INPUTS_DURATION, {
9
7
  unit: 'ms',
10
8
  description: 'Duration to build base rollup inputs',
11
- valueType: ValueType.INT
9
+ valueType: ValueType.INT,
12
10
  });
13
11
  }
14
12
  recordBaseRollupInputs(durationMs) {
15
13
  this.baseRollupInputsDuration.record(Math.ceil(durationMs));
16
14
  }
17
15
  }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JjaGVzdHJhdG9yX21ldHJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsT0FBTyxFQUFxQyxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoSCxNQUFNLE9BQU8sMEJBQTBCO0lBS3JDLFlBQVksTUFBdUIsRUFBRSxJQUFJLEdBQUcscUJBQXFCO1FBQy9ELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxnREFBZ0QsRUFBRTtZQUM5RyxJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxVQUFrQjtRQUN2QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,31 @@
1
+ import { type MerkleTreeId, type ProcessedTx, type ProofAndVerificationKey } from '@aztec/circuit-types';
2
+ import { type AVM_PROOF_LENGTH_IN_FIELDS, type AppendOnlyTreeSnapshot, type TUBE_PROOF_LENGTH } from '@aztec/circuits.js';
3
+ import { type BaseRollupHints, PrivateBaseRollupInputs, PublicBaseRollupInputs, TubeInputs } from '@aztec/circuits.js/rollup';
4
+ /**
5
+ * Helper class to manage the proving cycle of a transaction
6
+ * This includes the public VMs and the public kernels
7
+ * Also stores the inputs to the base rollup for this transaction and the tree snapshots
8
+ */
9
+ export declare class TxProvingState {
10
+ #private;
11
+ readonly processedTx: ProcessedTx;
12
+ private readonly baseRollupHints;
13
+ readonly treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
14
+ private tube?;
15
+ private avm?;
16
+ constructor(processedTx: ProcessedTx, baseRollupHints: BaseRollupHints, treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>);
17
+ get requireAvmProof(): boolean;
18
+ ready(): boolean;
19
+ getTubeInputs(): TubeInputs;
20
+ getAvmInputs(): import("@aztec/circuits.js").AvmCircuitInputs;
21
+ getBaseRollupTypeAndInputs(): Promise<{
22
+ rollupType: string;
23
+ inputs: PublicBaseRollupInputs;
24
+ } | {
25
+ rollupType: string;
26
+ inputs: PrivateBaseRollupInputs;
27
+ }>;
28
+ setTubeProof(tubeProofAndVk: ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>): void;
29
+ setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>): void;
30
+ }
31
+ //# sourceMappingURL=tx-proving-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EACL,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EAGvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,eAAe,EAEpB,uBAAuB,EAGvB,sBAAsB,EAEtB,UAAU,EACX,MAAM,2BAA2B,CAAC;AAGnC;;;;GAIG;AACH,qBAAa,cAAc;;aAKP,WAAW,EAAE,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAN1E,OAAO,CAAC,IAAI,CAAC,CAAoD;IACjE,OAAO,CAAC,GAAG,CAAC,CAA6D;gBAGvD,WAAW,EAAE,WAAW,EACvB,eAAe,EAAE,eAAe,EACjC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAG1E,IAAI,eAAe,YAElB;IAEM,KAAK;IAIL,aAAa;IAIb,YAAY;IAIN,0BAA0B;;;;;;;IAchC,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,OAAO,iBAAiB,CAAC;IAI9E,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,OAAO,0BAA0B,CAAC;CAqE7F"}
@@ -1,17 +1,16 @@
1
- import { AVM_VK_INDEX, TUBE_VK_INDEX, VkWitnessData } from '@aztec/circuits.js';
2
- import { AvmProofData, PrivateBaseRollupHints, PrivateBaseRollupInputs, PrivateTubeData, PublicBaseRollupHints, PublicBaseRollupInputs, PublicTubeData, TubeInputs } from '@aztec/circuits.js/rollup';
1
+ var _TxProvingState_instances, _TxProvingState_getPrivateBaseInputs, _TxProvingState_getPublicBaseInputs, _TxProvingState_getTubeVkData, _TxProvingState_getAvmVkData;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { AVM_VK_INDEX, TUBE_VK_INDEX, VkWitnessData, } from '@aztec/circuits.js';
4
+ import { AvmProofData, PrivateBaseRollupHints, PrivateBaseRollupInputs, PrivateTubeData, PublicBaseRollupHints, PublicBaseRollupInputs, PublicTubeData, TubeInputs, } from '@aztec/circuits.js/rollup';
3
5
  import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vks';
4
6
  /**
5
7
  * Helper class to manage the proving cycle of a transaction
6
8
  * This includes the public VMs and the public kernels
7
9
  * Also stores the inputs to the base rollup for this transaction and the tree snapshots
8
- */ export class TxProvingState {
9
- processedTx;
10
- baseRollupHints;
11
- treeSnapshots;
12
- tube;
13
- avm;
14
- constructor(processedTx, baseRollupHints, treeSnapshots){
10
+ */
11
+ export class TxProvingState {
12
+ constructor(processedTx, baseRollupHints, treeSnapshots) {
13
+ _TxProvingState_instances.add(this);
15
14
  this.processedTx = processedTx;
16
15
  this.baseRollupHints = baseRollupHints;
17
16
  this.treeSnapshots = treeSnapshots;
@@ -32,12 +31,13 @@ import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-type
32
31
  if (this.requireAvmProof) {
33
32
  return {
34
33
  rollupType: 'public-base-rollup',
35
- inputs: await this.#getPublicBaseInputs()
34
+ inputs: await __classPrivateFieldGet(this, _TxProvingState_instances, "m", _TxProvingState_getPublicBaseInputs).call(this),
36
35
  };
37
- } else {
36
+ }
37
+ else {
38
38
  return {
39
39
  rollupType: 'private-base-rollup',
40
- inputs: await this.#getPrivateBaseInputs()
40
+ inputs: await __classPrivateFieldGet(this, _TxProvingState_instances, "m", _TxProvingState_getPrivateBaseInputs).call(this),
41
41
  };
42
42
  }
43
43
  }
@@ -47,47 +47,46 @@ import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-type
47
47
  setAvmProof(avmProofAndVk) {
48
48
  this.avm = avmProofAndVk;
49
49
  }
50
- async #getPrivateBaseInputs() {
51
- if (!this.tube) {
52
- throw new Error('Tx not ready for proving base rollup.');
53
- }
54
- const vkData = await this.#getTubeVkData();
55
- const tubeData = new PrivateTubeData(this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(), this.tube.proof, vkData);
56
- if (!(this.baseRollupHints instanceof PrivateBaseRollupHints)) {
57
- throw new Error('Mismatched base rollup hints, expected private base rollup hints');
58
- }
59
- return new PrivateBaseRollupInputs(tubeData, this.baseRollupHints);
50
+ }
51
+ _TxProvingState_instances = new WeakSet(), _TxProvingState_getPrivateBaseInputs = async function _TxProvingState_getPrivateBaseInputs() {
52
+ if (!this.tube) {
53
+ throw new Error('Tx not ready for proving base rollup.');
60
54
  }
61
- async #getPublicBaseInputs() {
62
- if (!this.processedTx.avmProvingRequest) {
63
- throw new Error('Should create private base rollup for a tx not requiring avm proof.');
64
- }
65
- if (!this.tube) {
66
- throw new Error('Tx not ready for proving base rollup: tube proof undefined');
67
- }
68
- if (!this.avm) {
69
- throw new Error('Tx not ready for proving base rollup: avm proof undefined');
70
- }
71
- const tubeData = new PublicTubeData(this.processedTx.data.toPrivateToPublicKernelCircuitPublicInputs(), this.tube.proof, await this.#getTubeVkData());
72
- const avmProofData = new AvmProofData(this.processedTx.avmProvingRequest.inputs.publicInputs, this.avm.proof, await this.#getAvmVkData());
73
- if (!(this.baseRollupHints instanceof PublicBaseRollupHints)) {
74
- throw new Error('Mismatched base rollup hints, expected public base rollup hints');
75
- }
76
- return new PublicBaseRollupInputs(tubeData, avmProofData, this.baseRollupHints);
55
+ const vkData = await __classPrivateFieldGet(this, _TxProvingState_instances, "m", _TxProvingState_getTubeVkData).call(this);
56
+ const tubeData = new PrivateTubeData(this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(), this.tube.proof, vkData);
57
+ if (!(this.baseRollupHints instanceof PrivateBaseRollupHints)) {
58
+ throw new Error('Mismatched base rollup hints, expected private base rollup hints');
77
59
  }
78
- async #getTubeVkData() {
79
- let vkIndex = TUBE_VK_INDEX;
80
- try {
81
- vkIndex = await getVKIndex(this.tube.verificationKey);
82
- } catch (_ignored) {
83
- // TODO(#7410) The VK for the tube won't be in the tree for now, so we manually set it to the tube vk index
84
- }
85
- const vkPath = await getVKSiblingPath(vkIndex);
86
- return new VkWitnessData(this.tube.verificationKey, vkIndex, vkPath);
60
+ return new PrivateBaseRollupInputs(tubeData, this.baseRollupHints);
61
+ }, _TxProvingState_getPublicBaseInputs = async function _TxProvingState_getPublicBaseInputs() {
62
+ if (!this.processedTx.avmProvingRequest) {
63
+ throw new Error('Should create private base rollup for a tx not requiring avm proof.');
87
64
  }
88
- async #getAvmVkData() {
89
- const vkIndex = AVM_VK_INDEX;
90
- const vkPath = await getVKSiblingPath(vkIndex);
91
- return new VkWitnessData(this.avm.verificationKey, AVM_VK_INDEX, vkPath);
65
+ if (!this.tube) {
66
+ throw new Error('Tx not ready for proving base rollup: tube proof undefined');
92
67
  }
93
- }
68
+ if (!this.avm) {
69
+ throw new Error('Tx not ready for proving base rollup: avm proof undefined');
70
+ }
71
+ const tubeData = new PublicTubeData(this.processedTx.data.toPrivateToPublicKernelCircuitPublicInputs(), this.tube.proof, await __classPrivateFieldGet(this, _TxProvingState_instances, "m", _TxProvingState_getTubeVkData).call(this));
72
+ const avmProofData = new AvmProofData(this.processedTx.avmProvingRequest.inputs.publicInputs, this.avm.proof, await __classPrivateFieldGet(this, _TxProvingState_instances, "m", _TxProvingState_getAvmVkData).call(this));
73
+ if (!(this.baseRollupHints instanceof PublicBaseRollupHints)) {
74
+ throw new Error('Mismatched base rollup hints, expected public base rollup hints');
75
+ }
76
+ return new PublicBaseRollupInputs(tubeData, avmProofData, this.baseRollupHints);
77
+ }, _TxProvingState_getTubeVkData = async function _TxProvingState_getTubeVkData() {
78
+ let vkIndex = TUBE_VK_INDEX;
79
+ try {
80
+ vkIndex = await getVKIndex(this.tube.verificationKey);
81
+ }
82
+ catch (_ignored) {
83
+ // TODO(#7410) The VK for the tube won't be in the tree for now, so we manually set it to the tube vk index
84
+ }
85
+ const vkPath = await getVKSiblingPath(vkIndex);
86
+ return new VkWitnessData(this.tube.verificationKey, vkIndex, vkPath);
87
+ }, _TxProvingState_getAvmVkData = async function _TxProvingState_getAvmVkData() {
88
+ const vkIndex = AVM_VK_INDEX;
89
+ const vkPath = await getVKSiblingPath(vkIndex);
90
+ return new VkWitnessData(this.avm.verificationKey, AVM_VK_INDEX, vkPath);
91
+ };
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvdHgtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFFTCxZQUFZLEVBR1osYUFBYSxFQUNiLGFBQWEsR0FDZCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxZQUFZLEVBRVosc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2QsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXZGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUl6QixZQUNrQixXQUF3QixFQUN2QixlQUFnQyxFQUNqQyxhQUF3RDs7UUFGeEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUEyQztJQUN2RSxDQUFDO0lBRUosSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBa0IsQ0FBQyxNQUFNLENB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
@@ -0,0 +1,4 @@
1
+ export * from './prover-agent.js';
2
+ export * from './memory-proving-queue.js';
3
+ export * from './rpc.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prover-agent/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './prover-agent.js';
2
2
  export * from './memory-proving-queue.js';
3
3
  export * from './rpc.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWFnZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLFVBQVUsQ0FBQyJ9
@@ -0,0 +1,82 @@
1
+ import { type ProofAndVerificationKey, type ProvingJob, type ProvingJobSource, type ProvingRequestResultFor, ProvingRequestType, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
2
+ import type { AVM_PROOF_LENGTH_IN_FIELDS, AvmCircuitInputs, BaseParityInputs, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, ParityPublicInputs, RECURSIVE_PROOF_LENGTH, RootParityInputs, TUBE_PROOF_LENGTH } from '@aztec/circuits.js';
3
+ import { type BaseOrMergeRollupPublicInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type MergeRollupInputs, type PrivateBaseRollupInputs, type PublicBaseRollupInputs, type RootRollupInputs, type RootRollupPublicInputs, type SingleTxBlockRootRollupInputs, type TubeInputs } from '@aztec/circuits.js/rollup';
4
+ import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
5
+ import { type ProofStore } from '../proving_broker/proof_store/index.js';
6
+ /**
7
+ * A helper class that sits in between services that need proofs created and agents that can create them.
8
+ * The queue accumulates jobs and provides them to agents prioritized by block number.
9
+ */
10
+ export declare class MemoryProvingQueue implements ServerCircuitProver, ProvingJobSource {
11
+ /** Timeout the job if an agent doesn't report back in this time */
12
+ private jobTimeoutMs;
13
+ private generateId;
14
+ private timeSource;
15
+ private proofStore;
16
+ private log;
17
+ private queue;
18
+ private jobsInProgress;
19
+ private runningPromise;
20
+ private metrics;
21
+ readonly tracer: Tracer;
22
+ constructor(client: TelemetryClient,
23
+ /** Timeout the job if an agent doesn't report back in this time */
24
+ jobTimeoutMs?: number,
25
+ /** How often to check for timed out jobs */
26
+ pollingIntervalMs?: number, generateId?: () => string, timeSource?: () => number, proofStore?: ProofStore);
27
+ start(): void;
28
+ stop(): Promise<void>;
29
+ getProvingJob({ timeoutSec }?: {
30
+ timeoutSec?: number | undefined;
31
+ }): Promise<ProvingJob | undefined>;
32
+ resolveProvingJob<T extends ProvingRequestType>(jobId: string, result: ProvingRequestResultFor<T>): Promise<void>;
33
+ rejectProvingJob(jobId: string, reason: string): Promise<void>;
34
+ heartbeat(jobId: string): Promise<void>;
35
+ isJobRunning(jobId: string): boolean;
36
+ private poll;
37
+ private enqueue;
38
+ getTubeProof(inputs: TubeInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>>;
39
+ /**
40
+ * Creates a proof for the given input.
41
+ * @param input - Input to the circuit.
42
+ */
43
+ getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
44
+ /**
45
+ * Creates a proof for the given input.
46
+ * @param input - Input to the circuit.
47
+ */
48
+ getRootParityProof(inputs: RootParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
49
+ getPrivateBaseRollupProof(inputs: PrivateBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
50
+ getPublicBaseRollupProof(inputs: PublicBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
51
+ /**
52
+ * Creates a proof for the given input.
53
+ * @param input - Input to the circuit.
54
+ */
55
+ getMergeRollupProof(inputs: MergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
56
+ /**
57
+ * Creates a proof for the given input.
58
+ * @param input - Input to the circuit.
59
+ */
60
+ getBlockRootRollupProof(inputs: BlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
61
+ getSingleTxBlockRootRollupProof(inputs: SingleTxBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
62
+ getEmptyBlockRootRollupProof(inputs: EmptyBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
63
+ /**
64
+ * Creates a proof for the given input.
65
+ * @param input - Input to the circuit.
66
+ */
67
+ getBlockMergeRollupProof(inputs: BlockMergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
68
+ /**
69
+ * Creates a proof for the given input.
70
+ * @param input - Input to the circuit.
71
+ */
72
+ getRootRollupProof(inputs: RootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
73
+ /**
74
+ * Creates an AVM proof.
75
+ */
76
+ getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>>;
77
+ /**
78
+ * Verifies a circuit proof
79
+ */
80
+ verifyProof(): Promise<void>;
81
+ }
82
+ //# sourceMappingURL=memory-proving-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-proving-queue.d.ts","sourceRoot":"","sources":["../../src/prover-agent/memory-proving-queue.ts"],"names":[],"mappings":"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"}