@aztec/prover-client 0.0.0-test.0 → 0.0.1-fake-c83136db25

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 (121) hide show
  1. package/dest/block-factory/index.d.ts +2 -0
  2. package/dest/block-factory/index.d.ts.map +1 -0
  3. package/dest/block-factory/light.d.ts +38 -0
  4. package/dest/block-factory/light.d.ts.map +1 -0
  5. package/dest/block-factory/light.js +94 -0
  6. package/dest/config.d.ts +6 -6
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +11 -1
  9. package/dest/mocks/fixtures.d.ts +7 -4
  10. package/dest/mocks/fixtures.d.ts.map +1 -1
  11. package/dest/mocks/fixtures.js +32 -4
  12. package/dest/mocks/test_context.d.ts +43 -15
  13. package/dest/mocks/test_context.d.ts.map +1 -1
  14. package/dest/mocks/test_context.js +110 -48
  15. package/dest/orchestrator/block-building-helpers.d.ts +37 -28
  16. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  17. package/dest/orchestrator/block-building-helpers.js +156 -150
  18. package/dest/orchestrator/block-proving-state.d.ts +62 -46
  19. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  20. package/dest/orchestrator/block-proving-state.js +223 -179
  21. package/dest/orchestrator/checkpoint-proving-state.d.ts +63 -0
  22. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
  23. package/dest/orchestrator/checkpoint-proving-state.js +211 -0
  24. package/dest/orchestrator/epoch-proving-state.d.ts +37 -24
  25. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  26. package/dest/orchestrator/epoch-proving-state.js +143 -73
  27. package/dest/orchestrator/orchestrator.d.ts +34 -31
  28. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  29. package/dest/orchestrator/orchestrator.js +392 -234
  30. package/dest/orchestrator/orchestrator_metrics.d.ts +2 -0
  31. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  32. package/dest/orchestrator/orchestrator_metrics.js +9 -0
  33. package/dest/orchestrator/tx-proving-state.d.ts +12 -10
  34. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  35. package/dest/orchestrator/tx-proving-state.js +30 -38
  36. package/dest/prover-client/prover-client.d.ts +3 -3
  37. package/dest/prover-client/prover-client.d.ts.map +1 -1
  38. package/dest/prover-client/prover-client.js +5 -4
  39. package/dest/prover-client/server-epoch-prover.d.ts +13 -10
  40. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  41. package/dest/prover-client/server-epoch-prover.js +11 -11
  42. package/dest/proving_broker/broker_prover_facade.d.ts +22 -15
  43. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  44. package/dest/proving_broker/broker_prover_facade.js +64 -39
  45. package/dest/proving_broker/config.d.ts +9 -4
  46. package/dest/proving_broker/config.d.ts.map +1 -1
  47. package/dest/proving_broker/config.js +15 -4
  48. package/dest/proving_broker/factory.d.ts +1 -1
  49. package/dest/proving_broker/factory.d.ts.map +1 -1
  50. package/dest/proving_broker/factory.js +5 -1
  51. package/dest/proving_broker/fixtures.js +1 -1
  52. package/dest/proving_broker/proof_store/factory.js +1 -1
  53. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  54. package/dest/proving_broker/proof_store/gcs_proof_store.js +1 -0
  55. package/dest/proving_broker/proof_store/index.d.ts +1 -0
  56. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  57. package/dest/proving_broker/proof_store/index.js +1 -0
  58. package/dest/proving_broker/proving_agent.d.ts +3 -3
  59. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  60. package/dest/proving_broker/proving_agent.js +83 -47
  61. package/dest/proving_broker/proving_broker.d.ts +11 -2
  62. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  63. package/dest/proving_broker/proving_broker.js +34 -22
  64. package/dest/proving_broker/proving_broker_database/memory.js +1 -1
  65. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  66. package/dest/proving_broker/proving_broker_database/persisted.js +9 -8
  67. package/dest/proving_broker/proving_job_controller.d.ts +7 -8
  68. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  69. package/dest/proving_broker/proving_job_controller.js +89 -61
  70. package/dest/proving_broker/rpc.d.ts +3 -5
  71. package/dest/proving_broker/rpc.d.ts.map +1 -1
  72. package/dest/proving_broker/rpc.js +1 -4
  73. package/dest/test/mock_proof_store.d.ts +9 -0
  74. package/dest/test/mock_proof_store.d.ts.map +1 -0
  75. package/dest/test/mock_proof_store.js +10 -0
  76. package/dest/test/mock_prover.d.ts +23 -16
  77. package/dest/test/mock_prover.d.ts.map +1 -1
  78. package/dest/test/mock_prover.js +38 -20
  79. package/package.json +29 -29
  80. package/src/block-factory/index.ts +1 -0
  81. package/src/block-factory/light.ts +140 -0
  82. package/src/config.ts +24 -8
  83. package/src/mocks/fixtures.ts +43 -15
  84. package/src/mocks/test_context.ts +201 -75
  85. package/src/orchestrator/block-building-helpers.ts +247 -243
  86. package/src/orchestrator/block-proving-state.ts +247 -231
  87. package/src/orchestrator/checkpoint-proving-state.ts +299 -0
  88. package/src/orchestrator/epoch-proving-state.ts +187 -111
  89. package/src/orchestrator/orchestrator.ts +590 -289
  90. package/src/orchestrator/orchestrator_metrics.ts +20 -1
  91. package/src/orchestrator/tx-proving-state.ts +60 -61
  92. package/src/prover-client/prover-client.ts +16 -14
  93. package/src/prover-client/server-epoch-prover.ts +40 -21
  94. package/src/proving_broker/broker_prover_facade.ts +200 -113
  95. package/src/proving_broker/config.ts +17 -6
  96. package/src/proving_broker/factory.ts +2 -1
  97. package/src/proving_broker/fixtures.ts +1 -1
  98. package/src/proving_broker/proof_store/factory.ts +1 -1
  99. package/src/proving_broker/proof_store/gcs_proof_store.ts +5 -1
  100. package/src/proving_broker/proof_store/index.ts +1 -0
  101. package/src/proving_broker/proof_store/inline_proof_store.ts +1 -1
  102. package/src/proving_broker/proving_agent.ts +89 -47
  103. package/src/proving_broker/proving_broker.ts +51 -32
  104. package/src/proving_broker/proving_broker_database/memory.ts +1 -1
  105. package/src/proving_broker/proving_broker_database/persisted.ts +9 -8
  106. package/src/proving_broker/proving_job_controller.ts +92 -81
  107. package/src/proving_broker/rpc.ts +1 -6
  108. package/src/test/mock_proof_store.ts +14 -0
  109. package/src/test/mock_prover.ts +164 -60
  110. package/dest/bin/get-proof-inputs.d.ts +0 -2
  111. package/dest/bin/get-proof-inputs.d.ts.map +0 -1
  112. package/dest/bin/get-proof-inputs.js +0 -51
  113. package/dest/block_builder/index.d.ts +0 -6
  114. package/dest/block_builder/index.d.ts.map +0 -1
  115. package/dest/block_builder/light.d.ts +0 -33
  116. package/dest/block_builder/light.d.ts.map +0 -1
  117. package/dest/block_builder/light.js +0 -82
  118. package/src/bin/get-proof-inputs.ts +0 -59
  119. package/src/block_builder/index.ts +0 -6
  120. package/src/block_builder/light.ts +0 -101
  121. /package/dest/{block_builder → block-factory}/index.js +0 -0
@@ -1,3 +1,5 @@
1
+ import { randomBytes } from '@aztec/foundation/crypto';
2
+ import { AbortError } from '@aztec/foundation/error';
1
3
  import { createLogger } from '@aztec/foundation/log';
2
4
  import type {
3
5
  ProvingJobId,
@@ -9,24 +11,15 @@ import { ProvingRequestType } from '@aztec/stdlib/proofs';
9
11
 
10
12
  export enum ProvingJobControllerStatus {
11
13
  IDLE = 'idle',
12
- PROVING = 'proving',
14
+ RUNNING = 'running',
13
15
  DONE = 'done',
14
- ABORTED = 'aborted',
15
- }
16
-
17
- interface ProvingJobCompletionCallback<T extends ProvingRequestType = ProvingRequestType> {
18
- (
19
- jobId: ProvingJobId,
20
- type: T,
21
- error: Error | undefined,
22
- result: ProvingJobResultsMap[T] | undefined,
23
- ): void | Promise<void>;
24
16
  }
25
17
 
26
18
  export class ProvingJobController {
27
19
  private status: ProvingJobControllerStatus = ProvingJobControllerStatus.IDLE;
28
20
  private promise?: Promise<void>;
29
21
  private abortController = new AbortController();
22
+ private result?: ProvingJobResultsMap[ProvingRequestType] | Error;
30
23
 
31
24
  constructor(
32
25
  private jobId: ProvingJobId,
@@ -34,13 +27,13 @@ export class ProvingJobController {
34
27
  private epochNumber: number,
35
28
  private startedAt: number,
36
29
  private circuitProver: ServerCircuitProver,
37
- private onComplete: ProvingJobCompletionCallback,
38
- private log = createLogger('prover-client:proving-agent:job-controller'),
30
+ private onComplete: () => void,
31
+ private log = createLogger('prover-client:proving-agent:job-controller-' + randomBytes(4).toString('hex')),
39
32
  ) {}
40
33
 
41
34
  public start(): void {
42
35
  if (this.status !== ProvingJobControllerStatus.IDLE) {
43
- this.log.verbose(
36
+ this.log.warn(
44
37
  `Job controller for jobId=${this.jobId} not starting because it is not idle currentStatus=${this.status}`,
45
38
  {
46
39
  currentStatus: this.status,
@@ -50,63 +43,23 @@ export class ProvingJobController {
50
43
  return;
51
44
  }
52
45
 
53
- this.status = ProvingJobControllerStatus.PROVING;
54
- this.log.verbose(`Job controller started jobId=${this.jobId}`, {
46
+ this.promise = this.run();
47
+
48
+ this.log.info(`Job controller started jobId=${this.jobId}`, {
55
49
  jobId: this.jobId,
56
50
  });
57
-
58
- this.promise = this.generateProof()
59
- .then(
60
- result => {
61
- if (this.status === ProvingJobControllerStatus.ABORTED) {
62
- this.log.warn(`Job controller for jobId=${this.jobId} completed successfully but job was aborted`, {
63
- currentStatus: this.status,
64
- jobId: this.jobId,
65
- });
66
- return;
67
- }
68
- this.status = ProvingJobControllerStatus.DONE;
69
- this.log.verbose(`Job controller for jobId=${this.jobId} completed successfully`, {
70
- jobId: this.jobId,
71
- });
72
- return this.onComplete(this.jobId, this.inputs.type, undefined, result);
73
- },
74
- error => {
75
- if (this.status === ProvingJobControllerStatus.ABORTED) {
76
- this.log.warn(`Job controller for jobId=${this.jobId} finished with an error but job was aborted`, {
77
- currentStatus: this.status,
78
- jobId: this.jobId,
79
- });
80
- return;
81
- }
82
-
83
- if (error.name === 'AbortError') {
84
- // Ignore abort errors
85
- return;
86
- }
87
-
88
- this.log.verbose(`Job controller for jobId=${this.jobId} finished with an error`, {
89
- jobId: this.jobId,
90
- err: error,
91
- });
92
-
93
- this.status = ProvingJobControllerStatus.DONE;
94
- return this.onComplete(this.jobId, this.inputs.type, error, undefined);
95
- },
96
- )
97
- .catch(err => {
98
- this.log.error(`Job constroller failed to send result for jobId=${this.jobId}: ${err}`, err, {
99
- jobId: this.jobId,
100
- });
101
- });
102
51
  }
103
52
 
104
53
  public getStatus(): ProvingJobControllerStatus {
105
54
  return this.status;
106
55
  }
107
56
 
57
+ public getResult(): ProvingJobResultsMap[ProvingRequestType] | Error | undefined {
58
+ return this.result;
59
+ }
60
+
108
61
  public abort(): void {
109
- if (this.status !== ProvingJobControllerStatus.PROVING) {
62
+ if (this.status !== ProvingJobControllerStatus.RUNNING) {
110
63
  this.log.warn(`Tried to abort job controller for jobId=${this.jobId} but it is not running`, {
111
64
  currentStatus: this.status,
112
65
  jobId: this.jobId,
@@ -114,9 +67,8 @@ export class ProvingJobController {
114
67
  return;
115
68
  }
116
69
 
117
- this.status = ProvingJobControllerStatus.ABORTED;
118
70
  this.abortController.abort();
119
- this.log.verbose(`Aborted job controller for jobId=${this.jobId}`, {
71
+ this.log.warn(`Aborted job controller for jobId=${this.jobId}`, {
120
72
  jobId: this.jobId,
121
73
  });
122
74
  }
@@ -125,6 +77,10 @@ export class ProvingJobController {
125
77
  return this.jobId;
126
78
  }
127
79
 
80
+ public getProofType(): ProvingRequestType {
81
+ return this.inputs.type;
82
+ }
83
+
128
84
  public getStartedAt(): number {
129
85
  return this.startedAt;
130
86
  }
@@ -133,58 +89,113 @@ export class ProvingJobController {
133
89
  return ProvingRequestType[this.inputs.type];
134
90
  }
135
91
 
92
+ private run = async () => {
93
+ this.status = ProvingJobControllerStatus.RUNNING;
94
+ let result: ProvingJobResultsMap[ProvingRequestType] | Error;
95
+ try {
96
+ result = await this.generateProof();
97
+ } catch (err) {
98
+ if (err && err instanceof Error) {
99
+ result = err;
100
+ } else {
101
+ result = new Error('Unknown proving error: ' + String(err), { cause: err });
102
+ }
103
+ }
104
+
105
+ if (this.abortController.signal.aborted) {
106
+ this.log.warn(`Job controller for jobId=${this.jobId} completed but job was aborted`, {
107
+ currentStatus: this.status,
108
+ jobId: this.jobId,
109
+ });
110
+ result = new AbortError('Proof was aborted');
111
+ }
112
+
113
+ this.result = result;
114
+ this.status = ProvingJobControllerStatus.DONE;
115
+ try {
116
+ this.onComplete();
117
+ } catch (err) {
118
+ this.log.warn(`On complete handler error: ${err}`, { jobId: this.jobId });
119
+ }
120
+ };
121
+
136
122
  private async generateProof(): Promise<ProvingJobResultsMap[ProvingRequestType]> {
137
123
  const { type, inputs } = this.inputs;
138
124
  const signal = this.abortController.signal;
139
125
  switch (type) {
140
126
  case ProvingRequestType.PUBLIC_VM: {
141
- return await this.circuitProver.getAvmProof(inputs, signal, this.epochNumber);
127
+ // TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
128
+ return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
129
+ }
130
+
131
+ case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
132
+ return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
142
133
  }
143
134
 
144
- case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
145
- return await this.circuitProver.getPrivateBaseRollupProof(inputs, signal, this.epochNumber);
135
+ case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
136
+ return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
146
137
  }
147
138
 
148
- case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
149
- return await this.circuitProver.getPublicBaseRollupProof(inputs, signal, this.epochNumber);
139
+ case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP: {
140
+ return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
150
141
  }
151
142
 
152
- case ProvingRequestType.MERGE_ROLLUP: {
153
- return await this.circuitProver.getMergeRollupProof(inputs, signal, this.epochNumber);
143
+ case ProvingRequestType.TX_MERGE_ROLLUP: {
144
+ return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
154
145
  }
155
146
 
156
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
157
- return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
147
+ case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP: {
148
+ return await this.circuitProver.getBlockRootFirstRollupProof(inputs, signal, this.epochNumber);
149
+ }
150
+
151
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP: {
152
+ return await this.circuitProver.getBlockRootSingleTxFirstRollupProof(inputs, signal, this.epochNumber);
153
+ }
154
+
155
+ case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP: {
156
+ return await this.circuitProver.getBlockRootEmptyTxFirstRollupProof(inputs, signal, this.epochNumber);
158
157
  }
159
158
 
160
159
  case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
161
160
  return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
162
161
  }
163
162
 
164
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP: {
165
- return await this.circuitProver.getSingleTxBlockRootRollupProof(inputs, signal, this.epochNumber);
163
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP: {
164
+ return await this.circuitProver.getBlockRootSingleTxRollupProof(inputs, signal, this.epochNumber);
166
165
  }
167
166
 
168
167
  case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
169
168
  return await this.circuitProver.getBlockMergeRollupProof(inputs, signal, this.epochNumber);
170
169
  }
171
170
 
171
+ case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP: {
172
+ return await this.circuitProver.getCheckpointRootRollupProof(inputs, signal, this.epochNumber);
173
+ }
174
+
175
+ case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP: {
176
+ return await this.circuitProver.getCheckpointRootSingleBlockRollupProof(inputs, signal, this.epochNumber);
177
+ }
178
+
179
+ case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP: {
180
+ return await this.circuitProver.getCheckpointPaddingRollupProof(inputs, signal, this.epochNumber);
181
+ }
182
+
183
+ case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP: {
184
+ return await this.circuitProver.getCheckpointMergeRollupProof(inputs, signal, this.epochNumber);
185
+ }
186
+
172
187
  case ProvingRequestType.ROOT_ROLLUP: {
173
188
  return await this.circuitProver.getRootRollupProof(inputs, signal, this.epochNumber);
174
189
  }
175
190
 
176
- case ProvingRequestType.BASE_PARITY: {
191
+ case ProvingRequestType.PARITY_BASE: {
177
192
  return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
178
193
  }
179
194
 
180
- case ProvingRequestType.ROOT_PARITY: {
195
+ case ProvingRequestType.PARITY_ROOT: {
181
196
  return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
182
197
  }
183
198
 
184
- case ProvingRequestType.TUBE_PROOF: {
185
- return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
186
- }
187
-
188
199
  default: {
189
200
  const _exhaustive: never = type;
190
201
  return Promise.reject(new Error(`Invalid proof request type: ${type}`));
@@ -1,5 +1,4 @@
1
1
  import { createSafeJsonRpcClient } from '@aztec/foundation/json-rpc/client';
2
- import type { SafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
3
2
  import {
4
3
  type GetProvingJobResponse,
5
4
  ProofUri,
@@ -13,7 +12,7 @@ import {
13
12
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
14
13
  import { type ApiSchemaFor, optional } from '@aztec/stdlib/schemas';
15
14
  import { type ComponentsVersions, getVersioningResponseHandler } from '@aztec/stdlib/versioning';
16
- import { createTracedJsonRpcServer, makeTracedFetch } from '@aztec/telemetry-client';
15
+ import { makeTracedFetch } from '@aztec/telemetry-client';
17
16
 
18
17
  import { z } from 'zod';
19
18
 
@@ -54,10 +53,6 @@ export const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker> = {
54
53
  ...ProvingJobProducerSchema,
55
54
  };
56
55
 
57
- export function createProvingBrokerServer(broker: ProvingJobBroker): SafeJsonRpcServer {
58
- return createTracedJsonRpcServer(broker, ProvingJobBrokerSchema);
59
- }
60
-
61
56
  export function createProvingJobBrokerClient(
62
57
  url: string,
63
58
  versions: Partial<ComponentsVersions>,
@@ -0,0 +1,14 @@
1
+ import type { ProvingJobId } from '@aztec/stdlib/interfaces/server';
2
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
3
+
4
+ // Mock ProofStore for faster benchmarks with realistic Cloud Storage URIs
5
+ export class MockProofStore {
6
+ private mockCounter = 0;
7
+ private readonly bucketName = 'aztec-proving-benchmarks';
8
+ private readonly basePath = 'proving-jobs';
9
+
10
+ saveProofInput(jobId: ProvingJobId, type: ProvingRequestType): Promise<string> {
11
+ const uri = `gs://${this.bucketName}/${this.basePath}/inputs/${type}/${jobId}`;
12
+ return Promise.resolve(uri as any);
13
+ }
14
+ }
@@ -1,15 +1,13 @@
1
1
  import {
2
- AVM_PROOF_LENGTH_IN_FIELDS,
3
- AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS,
2
+ AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
3
+ AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,
4
4
  NESTED_RECURSIVE_PROOF_LENGTH,
5
5
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
6
6
  RECURSIVE_PROOF_LENGTH,
7
- TUBE_PROOF_LENGTH,
8
7
  } from '@aztec/constants';
9
8
  import { times } from '@aztec/foundation/collection';
10
9
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
11
10
  import {
12
- type ProofAndVerificationKey,
13
11
  type ProvingJob,
14
12
  type ProvingJobId,
15
13
  type ProvingJobProducer,
@@ -19,26 +17,37 @@ import {
19
17
  makeProofAndVerificationKey,
20
18
  makePublicInputsAndRecursiveProof,
21
19
  } from '@aztec/stdlib/interfaces/server';
22
- import type { BaseParityInputs, RootParityInputs } from '@aztec/stdlib/parity';
20
+ import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
23
21
  import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
24
22
  import type {
25
- BaseOrMergeRollupPublicInputs,
26
- BlockMergeRollupInputs,
27
- BlockRootOrBlockMergePublicInputs,
28
- BlockRootRollupInputs,
29
- EmptyBlockRootRollupInputs,
30
- MergeRollupInputs,
31
- PrivateBaseRollupInputs,
32
- PublicBaseRollupInputs,
33
- RootRollupInputs,
23
+ BlockMergeRollupPrivateInputs,
24
+ BlockRollupPublicInputs,
25
+ BlockRootEmptyTxFirstRollupPrivateInputs,
26
+ BlockRootFirstRollupPrivateInputs,
27
+ BlockRootRollupPrivateInputs,
28
+ BlockRootSingleTxFirstRollupPrivateInputs,
29
+ BlockRootSingleTxRollupPrivateInputs,
30
+ CheckpointMergeRollupPrivateInputs,
31
+ CheckpointPaddingRollupPrivateInputs,
32
+ CheckpointRollupPublicInputs,
33
+ CheckpointRootRollupPrivateInputs,
34
+ CheckpointRootSingleBlockRollupPrivateInputs,
35
+ PrivateTxBaseRollupPrivateInputs,
36
+ PublicChonkVerifierPrivateInputs,
37
+ PublicChonkVerifierPublicInputs,
38
+ PublicTxBaseRollupPrivateInputs,
39
+ RootRollupPrivateInputs,
34
40
  RootRollupPublicInputs,
35
- SingleTxBlockRootRollupInputs,
41
+ TxMergeRollupPrivateInputs,
42
+ TxRollupPublicInputs,
36
43
  } from '@aztec/stdlib/rollup';
37
44
  import {
38
- makeBaseOrMergeRollupPublicInputs,
39
- makeBlockRootOrBlockMergeRollupPublicInputs,
45
+ makeBlockRollupPublicInputs,
46
+ makeCheckpointRollupPublicInputs,
40
47
  makeParityPublicInputs,
48
+ makePublicChonkVerifierPublicInputs,
41
49
  makeRootRollupPublicInputs,
50
+ makeTxRollupPublicInputs,
42
51
  } from '@aztec/stdlib/testing';
43
52
  import { VerificationKeyData } from '@aztec/stdlib/vks';
44
53
 
@@ -96,16 +105,21 @@ export class TestBroker implements ProvingJobProducer {
96
105
  export class MockProver implements ServerCircuitProver {
97
106
  constructor() {}
98
107
 
99
- getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number) {
108
+ getAvmProof(
109
+ _inputs: AvmCircuitInputs,
110
+ _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
111
+ _signal?: AbortSignal,
112
+ _epochNumber?: number,
113
+ ) {
100
114
  return Promise.resolve(
101
115
  makeProofAndVerificationKey(
102
- makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS),
103
- VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS),
116
+ makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
117
+ VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED),
104
118
  ),
105
119
  );
106
120
  }
107
121
 
108
- getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
122
+ getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
109
123
  return Promise.resolve(
110
124
  makePublicInputsAndRecursiveProof(
111
125
  makeParityPublicInputs(),
@@ -115,7 +129,7 @@ export class MockProver implements ServerCircuitProver {
115
129
  );
116
130
  }
117
131
 
118
- getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
132
+ getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
119
133
  return Promise.resolve(
120
134
  makePublicInputsAndRecursiveProof(
121
135
  makeParityPublicInputs(),
@@ -125,114 +139,210 @@ export class MockProver implements ServerCircuitProver {
125
139
  );
126
140
  }
127
141
 
128
- getPrivateBaseRollupProof(
129
- _baseRollupInput: PrivateBaseRollupInputs,
142
+ getPublicChonkVerifierProof(
143
+ _inputs: PublicChonkVerifierPrivateInputs,
130
144
  _signal?: AbortSignal,
131
145
  _epochNumber?: number,
132
146
  ): Promise<
133
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
147
+ PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
134
148
  > {
135
149
  return Promise.resolve(
136
150
  makePublicInputsAndRecursiveProof(
137
- makeBaseOrMergeRollupPublicInputs(),
151
+ makePublicChonkVerifierPublicInputs(),
138
152
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
139
153
  VerificationKeyData.makeFakeRollupHonk(),
140
154
  ),
141
155
  );
142
156
  }
143
157
 
144
- getPublicBaseRollupProof(
145
- _inputs: PublicBaseRollupInputs,
158
+ getPrivateTxBaseRollupProof(
159
+ _baseRollupInput: PrivateTxBaseRollupPrivateInputs,
146
160
  _signal?: AbortSignal,
147
161
  _epochNumber?: number,
148
- ): Promise<
149
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
150
- > {
162
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
151
163
  return Promise.resolve(
152
164
  makePublicInputsAndRecursiveProof(
153
- makeBaseOrMergeRollupPublicInputs(),
165
+ makeTxRollupPublicInputs(),
154
166
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
155
167
  VerificationKeyData.makeFakeRollupHonk(),
156
168
  ),
157
169
  );
158
170
  }
159
171
 
160
- getMergeRollupProof(
161
- _input: MergeRollupInputs,
172
+ getPublicTxBaseRollupProof(
173
+ _inputs: PublicTxBaseRollupPrivateInputs,
162
174
  _signal?: AbortSignal,
163
175
  _epochNumber?: number,
164
- ): Promise<
165
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
166
- > {
176
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
177
+ return Promise.resolve(
178
+ makePublicInputsAndRecursiveProof(
179
+ makeTxRollupPublicInputs(),
180
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
181
+ VerificationKeyData.makeFakeRollupHonk(),
182
+ ),
183
+ );
184
+ }
185
+
186
+ getTxMergeRollupProof(
187
+ _input: TxMergeRollupPrivateInputs,
188
+ _signal?: AbortSignal,
189
+ _epochNumber?: number,
190
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
191
+ return Promise.resolve(
192
+ makePublicInputsAndRecursiveProof(
193
+ makeTxRollupPublicInputs(),
194
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
195
+ VerificationKeyData.makeFakeRollupHonk(),
196
+ ),
197
+ );
198
+ }
199
+
200
+ getBlockRootFirstRollupProof(
201
+ _input: BlockRootFirstRollupPrivateInputs,
202
+ _signal?: AbortSignal,
203
+ _epochNumber?: number,
204
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
167
205
  return Promise.resolve(
168
206
  makePublicInputsAndRecursiveProof(
169
- makeBaseOrMergeRollupPublicInputs(),
207
+ makeBlockRollupPublicInputs(),
170
208
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
171
209
  VerificationKeyData.makeFakeRollupHonk(),
172
210
  ),
173
211
  );
174
212
  }
175
213
 
176
- getBlockMergeRollupProof(_input: BlockMergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number) {
214
+ getBlockRootSingleTxFirstRollupProof(
215
+ _input: BlockRootSingleTxFirstRollupPrivateInputs,
216
+ _signal?: AbortSignal,
217
+ _epochNumber?: number,
218
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
219
+ return Promise.resolve(
220
+ makePublicInputsAndRecursiveProof(
221
+ makeBlockRollupPublicInputs(),
222
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
223
+ VerificationKeyData.makeFakeHonk(),
224
+ ),
225
+ );
226
+ }
227
+
228
+ getBlockRootEmptyTxFirstRollupProof(
229
+ _input: BlockRootEmptyTxFirstRollupPrivateInputs,
230
+ _signal?: AbortSignal,
231
+ _epochNumber?: number,
232
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
177
233
  return Promise.resolve(
178
234
  makePublicInputsAndRecursiveProof(
179
- makeBlockRootOrBlockMergeRollupPublicInputs(),
235
+ makeBlockRollupPublicInputs(),
180
236
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
181
237
  VerificationKeyData.makeFakeRollupHonk(),
182
238
  ),
183
239
  );
184
240
  }
185
241
 
186
- getEmptyBlockRootRollupProof(
187
- _input: EmptyBlockRootRollupInputs,
242
+ getBlockRootRollupProof(
243
+ _input: BlockRootRollupPrivateInputs,
244
+ _signal?: AbortSignal,
245
+ _epochNumber?: number,
246
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
247
+ return Promise.resolve(
248
+ makePublicInputsAndRecursiveProof(
249
+ makeBlockRollupPublicInputs(),
250
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
251
+ VerificationKeyData.makeFakeRollupHonk(),
252
+ ),
253
+ );
254
+ }
255
+
256
+ getBlockRootSingleTxRollupProof(
257
+ _input: BlockRootSingleTxRollupPrivateInputs,
258
+ _signal?: AbortSignal,
259
+ _epochNumber?: number,
260
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
261
+ return Promise.resolve(
262
+ makePublicInputsAndRecursiveProof(
263
+ makeBlockRollupPublicInputs(),
264
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
265
+ VerificationKeyData.makeFakeHonk(),
266
+ ),
267
+ );
268
+ }
269
+
270
+ getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
271
+ return Promise.resolve(
272
+ makePublicInputsAndRecursiveProof(
273
+ makeBlockRollupPublicInputs(),
274
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
275
+ VerificationKeyData.makeFakeRollupHonk(),
276
+ ),
277
+ );
278
+ }
279
+
280
+ getCheckpointRootRollupProof(
281
+ _input: CheckpointRootRollupPrivateInputs,
188
282
  _signal?: AbortSignal,
189
283
  _epochNumber?: number,
190
284
  ): Promise<
191
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
285
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
192
286
  > {
193
287
  return Promise.resolve(
194
288
  makePublicInputsAndRecursiveProof(
195
- makeBlockRootOrBlockMergeRollupPublicInputs(),
289
+ makeCheckpointRollupPublicInputs(),
196
290
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
197
291
  VerificationKeyData.makeFakeRollupHonk(),
198
292
  ),
199
293
  );
200
294
  }
201
295
 
202
- getBlockRootRollupProof(
203
- _input: BlockRootRollupInputs,
296
+ getCheckpointRootSingleBlockRollupProof(
297
+ _input: CheckpointRootSingleBlockRollupPrivateInputs,
204
298
  _signal?: AbortSignal,
205
299
  _epochNumber?: number,
206
300
  ): Promise<
207
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
301
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
208
302
  > {
209
303
  return Promise.resolve(
210
304
  makePublicInputsAndRecursiveProof(
211
- makeBlockRootOrBlockMergeRollupPublicInputs(),
305
+ makeCheckpointRollupPublicInputs(),
212
306
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
213
307
  VerificationKeyData.makeFakeRollupHonk(),
214
308
  ),
215
309
  );
216
310
  }
217
311
 
218
- getSingleTxBlockRootRollupProof(
219
- _input: SingleTxBlockRootRollupInputs,
312
+ getCheckpointMergeRollupProof(
313
+ _input: CheckpointMergeRollupPrivateInputs,
220
314
  _signal?: AbortSignal,
221
315
  _epochNumber?: number,
222
316
  ): Promise<
223
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
317
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
224
318
  > {
225
319
  return Promise.resolve(
226
320
  makePublicInputsAndRecursiveProof(
227
- makeBlockRootOrBlockMergeRollupPublicInputs(),
321
+ makeCheckpointRollupPublicInputs(),
228
322
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
229
- VerificationKeyData.makeFakeHonk(),
323
+ VerificationKeyData.makeFakeRollupHonk(),
324
+ ),
325
+ );
326
+ }
327
+
328
+ getCheckpointPaddingRollupProof(
329
+ _input: CheckpointPaddingRollupPrivateInputs,
330
+ _signal?: AbortSignal,
331
+ _epochNumber?: number,
332
+ ): Promise<
333
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
334
+ > {
335
+ return Promise.resolve(
336
+ makePublicInputsAndRecursiveProof(
337
+ makeCheckpointRollupPublicInputs(),
338
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
339
+ VerificationKeyData.makeFakeRollupHonk(),
230
340
  ),
231
341
  );
232
342
  }
233
343
 
234
344
  getRootRollupProof(
235
- _input: RootRollupInputs,
345
+ _input: RootRollupPrivateInputs,
236
346
  _signal?: AbortSignal,
237
347
  _epochNumber?: number,
238
348
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
@@ -244,10 +354,4 @@ export class MockProver implements ServerCircuitProver {
244
354
  ),
245
355
  );
246
356
  }
247
-
248
- getTubeProof(): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>> {
249
- return Promise.resolve(
250
- makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()),
251
- );
252
- }
253
357
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=get-proof-inputs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-proof-inputs.d.ts","sourceRoot":"","sources":["../../src/bin/get-proof-inputs.ts"],"names":[],"mappings":""}