@aztec/prover-client 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107

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 (129) hide show
  1. package/dest/block-factory/index.d.ts +1 -1
  2. package/dest/block-factory/light.d.ts +5 -3
  3. package/dest/block-factory/light.d.ts.map +1 -1
  4. package/dest/block-factory/light.js +32 -11
  5. package/dest/config.d.ts +2 -2
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +2 -2
  8. package/dest/index.d.ts +1 -1
  9. package/dest/light/index.d.ts +2 -0
  10. package/dest/light/index.d.ts.map +1 -0
  11. package/dest/light/index.js +1 -0
  12. package/dest/light/lightweight_checkpoint_builder.d.ts +36 -0
  13. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
  14. package/dest/light/lightweight_checkpoint_builder.js +147 -0
  15. package/dest/mocks/fixtures.d.ts +5 -5
  16. package/dest/mocks/fixtures.d.ts.map +1 -1
  17. package/dest/mocks/fixtures.js +33 -15
  18. package/dest/mocks/test_context.d.ts +38 -33
  19. package/dest/mocks/test_context.d.ts.map +1 -1
  20. package/dest/mocks/test_context.js +133 -82
  21. package/dest/orchestrator/block-building-helpers.d.ts +35 -35
  22. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  23. package/dest/orchestrator/block-building-helpers.js +151 -187
  24. package/dest/orchestrator/block-proving-state.d.ts +68 -55
  25. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  26. package/dest/orchestrator/block-proving-state.js +273 -185
  27. package/dest/orchestrator/checkpoint-proving-state.d.ts +63 -0
  28. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
  29. package/dest/orchestrator/checkpoint-proving-state.js +210 -0
  30. package/dest/orchestrator/epoch-proving-state.d.ts +38 -31
  31. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  32. package/dest/orchestrator/epoch-proving-state.js +128 -84
  33. package/dest/orchestrator/index.d.ts +1 -1
  34. package/dest/orchestrator/orchestrator.d.ts +35 -34
  35. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  36. package/dest/orchestrator/orchestrator.js +777 -292
  37. package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
  38. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  39. package/dest/orchestrator/orchestrator_metrics.js +0 -9
  40. package/dest/orchestrator/tx-proving-state.d.ts +12 -10
  41. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  42. package/dest/orchestrator/tx-proving-state.js +23 -29
  43. package/dest/prover-client/factory.d.ts +3 -3
  44. package/dest/prover-client/factory.d.ts.map +1 -1
  45. package/dest/prover-client/index.d.ts +1 -1
  46. package/dest/prover-client/prover-client.d.ts +3 -3
  47. package/dest/prover-client/prover-client.d.ts.map +1 -1
  48. package/dest/prover-client/server-epoch-prover.d.ts +13 -11
  49. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  50. package/dest/prover-client/server-epoch-prover.js +9 -9
  51. package/dest/proving_broker/broker_prover_facade.d.ts +23 -18
  52. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  53. package/dest/proving_broker/broker_prover_facade.js +42 -33
  54. package/dest/proving_broker/config.d.ts +18 -14
  55. package/dest/proving_broker/config.d.ts.map +1 -1
  56. package/dest/proving_broker/config.js +12 -6
  57. package/dest/proving_broker/factory.d.ts +1 -1
  58. package/dest/proving_broker/factory.js +1 -1
  59. package/dest/proving_broker/fixtures.d.ts +3 -2
  60. package/dest/proving_broker/fixtures.d.ts.map +1 -1
  61. package/dest/proving_broker/fixtures.js +3 -2
  62. package/dest/proving_broker/index.d.ts +1 -1
  63. package/dest/proving_broker/proof_store/factory.d.ts +2 -2
  64. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
  65. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  66. package/dest/proving_broker/proof_store/index.d.ts +2 -1
  67. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  68. package/dest/proving_broker/proof_store/index.js +1 -0
  69. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
  70. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
  71. package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
  72. package/dest/proving_broker/proving_agent.d.ts +1 -1
  73. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  74. package/dest/proving_broker/proving_agent.js +383 -8
  75. package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
  76. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
  77. package/dest/proving_broker/proving_broker.d.ts +2 -2
  78. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  79. package/dest/proving_broker/proving_broker.js +418 -29
  80. package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
  81. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  82. package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
  83. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  84. package/dest/proving_broker/proving_broker_database/persisted.js +8 -7
  85. package/dest/proving_broker/proving_broker_database.d.ts +3 -2
  86. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  87. package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
  88. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  89. package/dest/proving_broker/proving_job_controller.d.ts +3 -2
  90. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  91. package/dest/proving_broker/proving_job_controller.js +40 -21
  92. package/dest/proving_broker/rpc.d.ts +4 -4
  93. package/dest/test/mock_proof_store.d.ts +3 -3
  94. package/dest/test/mock_proof_store.d.ts.map +1 -1
  95. package/dest/test/mock_prover.d.ts +23 -19
  96. package/dest/test/mock_prover.d.ts.map +1 -1
  97. package/dest/test/mock_prover.js +36 -21
  98. package/package.json +21 -19
  99. package/src/block-factory/light.ts +40 -17
  100. package/src/config.ts +2 -2
  101. package/src/light/index.ts +1 -0
  102. package/src/light/lightweight_checkpoint_builder.ts +198 -0
  103. package/src/mocks/fixtures.ts +41 -36
  104. package/src/mocks/test_context.ts +196 -114
  105. package/src/orchestrator/block-building-helpers.ts +233 -313
  106. package/src/orchestrator/block-proving-state.ts +315 -247
  107. package/src/orchestrator/checkpoint-proving-state.ts +303 -0
  108. package/src/orchestrator/epoch-proving-state.ts +176 -129
  109. package/src/orchestrator/orchestrator.ts +558 -348
  110. package/src/orchestrator/orchestrator_metrics.ts +1 -20
  111. package/src/orchestrator/tx-proving-state.ts +47 -55
  112. package/src/prover-client/factory.ts +6 -2
  113. package/src/prover-client/prover-client.ts +3 -2
  114. package/src/prover-client/server-epoch-prover.ts +30 -21
  115. package/src/proving_broker/broker_prover_facade.ts +175 -112
  116. package/src/proving_broker/config.ts +14 -7
  117. package/src/proving_broker/factory.ts +1 -1
  118. package/src/proving_broker/fixtures.ts +8 -3
  119. package/src/proving_broker/proof_store/index.ts +1 -0
  120. package/src/proving_broker/proving_broker.ts +41 -19
  121. package/src/proving_broker/proving_broker_database/memory.ts +2 -1
  122. package/src/proving_broker/proving_broker_database/persisted.ts +10 -9
  123. package/src/proving_broker/proving_broker_database.ts +2 -1
  124. package/src/proving_broker/proving_job_controller.ts +42 -22
  125. package/src/test/mock_prover.ts +143 -66
  126. package/dest/bin/get-proof-inputs.d.ts +0 -2
  127. package/dest/bin/get-proof-inputs.d.ts.map +0 -1
  128. package/dest/bin/get-proof-inputs.js +0 -51
  129. package/src/bin/get-proof-inputs.ts +0 -59
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
2
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
3
4
  import { BatchQueue } from '@aztec/foundation/queue';
@@ -104,14 +105,14 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
104
105
  const jobsToAdd = items.filter((item): item is ProvingJob => 'id' in item);
105
106
  const resultsToAdd = items.filter((item): item is [ProvingJobId, ProvingJobSettledResult] => Array.isArray(item));
106
107
 
107
- const db = await this.getEpochDatabase(epochNumber);
108
+ const db = await this.getEpochDatabase(EpochNumber(epochNumber));
108
109
  await db.batchWrite(jobsToAdd, resultsToAdd);
109
110
  }
110
111
 
111
112
  private async estimateSize() {
112
113
  const sizes = await Promise.all(Array.from(this.epochs.values()).map(x => x.estimateSize()));
113
114
  return {
114
- mappingSize: this.config.dataStoreMapSizeKB,
115
+ mappingSize: this.config.dataStoreMapSizeKb,
115
116
  physicalFileSize: sizes.reduce((prev, curr) => prev + curr.physicalFileSize, 0),
116
117
  numItems: sizes.reduce((prev, curr) => prev + curr.numItems, 0),
117
118
  actualSize: sizes.reduce((prev, curr) => prev + curr.actualSize, 0),
@@ -137,13 +138,13 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
137
138
  continue;
138
139
  }
139
140
  logger.info(
140
- `Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.dataStoreMapSizeKB}KB`,
141
+ `Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.dataStoreMapSizeKb}KB`,
141
142
  );
142
143
  const db = await openVersionedStoreAt(
143
144
  fullDirectory,
144
145
  SingleEpochDatabase.SCHEMA_VERSION,
145
146
  config.l1Contracts.rollupAddress,
146
- config.dataStoreMapSizeKB,
147
+ config.dataStoreMapSizeKb,
147
148
  );
148
149
  const epochDb = new SingleEpochDatabase(db);
149
150
  epochs.set(epochNumber, epochDb);
@@ -164,8 +165,8 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
164
165
  }
165
166
  }
166
167
 
167
- async deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void> {
168
- const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < epochNumber);
168
+ async deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void> {
169
+ const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < Number(epochNumber));
169
170
  for (const old of oldEpochs) {
170
171
  const db = this.epochs.get(old);
171
172
  if (!db) {
@@ -196,19 +197,19 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
196
197
  return this.batchQueue.put([id, { status: 'fulfilled', value }], getEpochFromProvingJobId(id));
197
198
  }
198
199
 
199
- private async getEpochDatabase(epochNumber: number): Promise<SingleEpochDatabase> {
200
+ private async getEpochDatabase(epochNumber: EpochNumber): Promise<SingleEpochDatabase> {
200
201
  let epochDb = this.epochs.get(epochNumber);
201
202
  if (!epochDb) {
202
203
  const newEpochDirectory = join(this.config.dataDirectory!, epochNumber.toString());
203
204
  await mkdir(newEpochDirectory, { recursive: true });
204
205
  this.logger.info(
205
- `Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.dataStoreMapSizeKB}`,
206
+ `Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.dataStoreMapSizeKb}`,
206
207
  );
207
208
  const db = await openVersionedStoreAt(
208
209
  newEpochDirectory,
209
210
  SingleEpochDatabase.SCHEMA_VERSION,
210
211
  this.config.l1Contracts.rollupAddress,
211
- this.config.dataStoreMapSizeKB,
212
+ this.config.dataStoreMapSizeKb,
212
213
  );
213
214
  epochDb = new SingleEpochDatabase(db);
214
215
  this.epochs.set(epochNumber, epochDb);
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import type { ProofUri, ProvingJob, ProvingJobId, ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
2
3
 
3
4
  /**
@@ -14,7 +15,7 @@ export interface ProvingBrokerDatabase {
14
15
  * Deletes all proving jobs belonging to epochs older than the given epoch
15
16
  * @param epochNumber - The epoch number beyond which jobs should be deleted
16
17
  */
17
- deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
18
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void>;
18
19
 
19
20
  /**
20
21
  * Returns an iterator over all saved proving jobs
@@ -1,4 +1,5 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
3
  import { AbortError } from '@aztec/foundation/error';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import type {
@@ -24,7 +25,7 @@ export class ProvingJobController {
24
25
  constructor(
25
26
  private jobId: ProvingJobId,
26
27
  private inputs: ProvingJobInputs,
27
- private epochNumber: number,
28
+ private epochNumber: EpochNumber,
28
29
  private startedAt: number,
29
30
  private circuitProver: ServerCircuitProver,
30
31
  private onComplete: () => void,
@@ -124,58 +125,77 @@ export class ProvingJobController {
124
125
  const signal = this.abortController.signal;
125
126
  switch (type) {
126
127
  case ProvingRequestType.PUBLIC_VM: {
127
- // TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
128
- return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
128
+ return await this.circuitProver.getAvmProof(inputs, signal, this.epochNumber);
129
129
  }
130
130
 
131
- case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
132
- return await this.circuitProver.getPrivateBaseRollupProof(inputs, signal, this.epochNumber);
131
+ case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
132
+ return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
133
133
  }
134
134
 
135
- case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
136
- return await this.circuitProver.getPublicBaseRollupProof(inputs, signal, this.epochNumber);
135
+ case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
136
+ return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
137
137
  }
138
138
 
139
- case ProvingRequestType.MERGE_ROLLUP: {
140
- return await this.circuitProver.getMergeRollupProof(inputs, signal, this.epochNumber);
139
+ case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP: {
140
+ return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
141
141
  }
142
142
 
143
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
144
- return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
143
+ case ProvingRequestType.TX_MERGE_ROLLUP: {
144
+ return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
145
145
  }
146
146
 
147
- case ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP: {
148
- return await this.circuitProver.getPaddingBlockRootRollupProof(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);
149
157
  }
150
158
 
151
159
  case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
152
160
  return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
153
161
  }
154
162
 
155
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP: {
156
- 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);
157
165
  }
158
166
 
159
167
  case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
160
168
  return await this.circuitProver.getBlockMergeRollupProof(inputs, signal, this.epochNumber);
161
169
  }
162
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
+
163
187
  case ProvingRequestType.ROOT_ROLLUP: {
164
188
  return await this.circuitProver.getRootRollupProof(inputs, signal, this.epochNumber);
165
189
  }
166
190
 
167
- case ProvingRequestType.BASE_PARITY: {
191
+ case ProvingRequestType.PARITY_BASE: {
168
192
  return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
169
193
  }
170
194
 
171
- case ProvingRequestType.ROOT_PARITY: {
195
+ case ProvingRequestType.PARITY_ROOT: {
172
196
  return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
173
197
  }
174
198
 
175
- case ProvingRequestType.TUBE_PROOF: {
176
- return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
177
- }
178
-
179
199
  default: {
180
200
  const _exhaustive: never = type;
181
201
  return Promise.reject(new Error(`Invalid proof request type: ${type}`));
@@ -4,12 +4,10 @@ import {
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,27 +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
- PaddingBlockRootRollupInputs,
32
- PrivateBaseRollupInputs,
33
- PublicBaseRollupInputs,
34
- 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,
35
40
  RootRollupPublicInputs,
36
- SingleTxBlockRootRollupInputs,
41
+ TxMergeRollupPrivateInputs,
42
+ TxRollupPublicInputs,
37
43
  } from '@aztec/stdlib/rollup';
38
44
  import {
39
- makeBaseOrMergeRollupPublicInputs,
40
- makeBlockRootOrBlockMergeRollupPublicInputs,
45
+ makeBlockRollupPublicInputs,
46
+ makeCheckpointRollupPublicInputs,
41
47
  makeParityPublicInputs,
48
+ makePublicChonkVerifierPublicInputs,
42
49
  makeRootRollupPublicInputs,
50
+ makeTxRollupPublicInputs,
43
51
  } from '@aztec/stdlib/testing';
44
52
  import { VerificationKeyData } from '@aztec/stdlib/vks';
45
53
 
@@ -97,12 +105,7 @@ export class TestBroker implements ProvingJobProducer {
97
105
  export class MockProver implements ServerCircuitProver {
98
106
  constructor() {}
99
107
 
100
- getAvmProof(
101
- _inputs: AvmCircuitInputs,
102
- _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
103
- _signal?: AbortSignal,
104
- _epochNumber?: number,
105
- ) {
108
+ getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number) {
106
109
  return Promise.resolve(
107
110
  makeProofAndVerificationKey(
108
111
  makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
@@ -111,7 +114,7 @@ export class MockProver implements ServerCircuitProver {
111
114
  );
112
115
  }
113
116
 
114
- getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
117
+ getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
115
118
  return Promise.resolve(
116
119
  makePublicInputsAndRecursiveProof(
117
120
  makeParityPublicInputs(),
@@ -121,7 +124,7 @@ export class MockProver implements ServerCircuitProver {
121
124
  );
122
125
  }
123
126
 
124
- getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
127
+ getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
125
128
  return Promise.resolve(
126
129
  makePublicInputsAndRecursiveProof(
127
130
  makeParityPublicInputs(),
@@ -131,130 +134,210 @@ export class MockProver implements ServerCircuitProver {
131
134
  );
132
135
  }
133
136
 
134
- getPrivateBaseRollupProof(
135
- _baseRollupInput: PrivateBaseRollupInputs,
137
+ getPublicChonkVerifierProof(
138
+ _inputs: PublicChonkVerifierPrivateInputs,
136
139
  _signal?: AbortSignal,
137
140
  _epochNumber?: number,
138
141
  ): Promise<
139
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
142
+ PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
140
143
  > {
141
144
  return Promise.resolve(
142
145
  makePublicInputsAndRecursiveProof(
143
- makeBaseOrMergeRollupPublicInputs(),
146
+ makePublicChonkVerifierPublicInputs(),
144
147
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
145
148
  VerificationKeyData.makeFakeRollupHonk(),
146
149
  ),
147
150
  );
148
151
  }
149
152
 
150
- getPublicBaseRollupProof(
151
- _inputs: PublicBaseRollupInputs,
153
+ getPrivateTxBaseRollupProof(
154
+ _baseRollupInput: PrivateTxBaseRollupPrivateInputs,
152
155
  _signal?: AbortSignal,
153
156
  _epochNumber?: number,
154
- ): Promise<
155
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
156
- > {
157
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
157
158
  return Promise.resolve(
158
159
  makePublicInputsAndRecursiveProof(
159
- makeBaseOrMergeRollupPublicInputs(),
160
+ makeTxRollupPublicInputs(),
160
161
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
161
162
  VerificationKeyData.makeFakeRollupHonk(),
162
163
  ),
163
164
  );
164
165
  }
165
166
 
166
- getMergeRollupProof(
167
- _input: MergeRollupInputs,
167
+ getPublicTxBaseRollupProof(
168
+ _inputs: PublicTxBaseRollupPrivateInputs,
168
169
  _signal?: AbortSignal,
169
170
  _epochNumber?: number,
170
- ): Promise<
171
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
172
- > {
171
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
173
172
  return Promise.resolve(
174
173
  makePublicInputsAndRecursiveProof(
175
- makeBaseOrMergeRollupPublicInputs(),
174
+ makeTxRollupPublicInputs(),
176
175
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
177
176
  VerificationKeyData.makeFakeRollupHonk(),
178
177
  ),
179
178
  );
180
179
  }
181
180
 
182
- getBlockMergeRollupProof(_input: BlockMergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number) {
181
+ getTxMergeRollupProof(
182
+ _input: TxMergeRollupPrivateInputs,
183
+ _signal?: AbortSignal,
184
+ _epochNumber?: number,
185
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
186
+ return Promise.resolve(
187
+ makePublicInputsAndRecursiveProof(
188
+ makeTxRollupPublicInputs(),
189
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
190
+ VerificationKeyData.makeFakeRollupHonk(),
191
+ ),
192
+ );
193
+ }
194
+
195
+ getBlockRootFirstRollupProof(
196
+ _input: BlockRootFirstRollupPrivateInputs,
197
+ _signal?: AbortSignal,
198
+ _epochNumber?: number,
199
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
183
200
  return Promise.resolve(
184
201
  makePublicInputsAndRecursiveProof(
185
- makeBlockRootOrBlockMergeRollupPublicInputs(),
202
+ makeBlockRollupPublicInputs(),
186
203
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
187
204
  VerificationKeyData.makeFakeRollupHonk(),
188
205
  ),
189
206
  );
190
207
  }
191
208
 
192
- getEmptyBlockRootRollupProof(
193
- _input: EmptyBlockRootRollupInputs,
209
+ getBlockRootSingleTxFirstRollupProof(
210
+ _input: BlockRootSingleTxFirstRollupPrivateInputs,
211
+ _signal?: AbortSignal,
212
+ _epochNumber?: number,
213
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
214
+ return Promise.resolve(
215
+ makePublicInputsAndRecursiveProof(
216
+ makeBlockRollupPublicInputs(),
217
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
218
+ VerificationKeyData.makeFakeHonk(),
219
+ ),
220
+ );
221
+ }
222
+
223
+ getBlockRootEmptyTxFirstRollupProof(
224
+ _input: BlockRootEmptyTxFirstRollupPrivateInputs,
225
+ _signal?: AbortSignal,
226
+ _epochNumber?: number,
227
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
228
+ return Promise.resolve(
229
+ makePublicInputsAndRecursiveProof(
230
+ makeBlockRollupPublicInputs(),
231
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
232
+ VerificationKeyData.makeFakeRollupHonk(),
233
+ ),
234
+ );
235
+ }
236
+
237
+ getBlockRootRollupProof(
238
+ _input: BlockRootRollupPrivateInputs,
239
+ _signal?: AbortSignal,
240
+ _epochNumber?: number,
241
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
242
+ return Promise.resolve(
243
+ makePublicInputsAndRecursiveProof(
244
+ makeBlockRollupPublicInputs(),
245
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
246
+ VerificationKeyData.makeFakeRollupHonk(),
247
+ ),
248
+ );
249
+ }
250
+
251
+ getBlockRootSingleTxRollupProof(
252
+ _input: BlockRootSingleTxRollupPrivateInputs,
253
+ _signal?: AbortSignal,
254
+ _epochNumber?: number,
255
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
256
+ return Promise.resolve(
257
+ makePublicInputsAndRecursiveProof(
258
+ makeBlockRollupPublicInputs(),
259
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
260
+ VerificationKeyData.makeFakeHonk(),
261
+ ),
262
+ );
263
+ }
264
+
265
+ getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
266
+ return Promise.resolve(
267
+ makePublicInputsAndRecursiveProof(
268
+ makeBlockRollupPublicInputs(),
269
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
270
+ VerificationKeyData.makeFakeRollupHonk(),
271
+ ),
272
+ );
273
+ }
274
+
275
+ getCheckpointRootRollupProof(
276
+ _input: CheckpointRootRollupPrivateInputs,
194
277
  _signal?: AbortSignal,
195
278
  _epochNumber?: number,
196
279
  ): Promise<
197
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
280
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
198
281
  > {
199
282
  return Promise.resolve(
200
283
  makePublicInputsAndRecursiveProof(
201
- makeBlockRootOrBlockMergeRollupPublicInputs(),
284
+ makeCheckpointRollupPublicInputs(),
202
285
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
203
286
  VerificationKeyData.makeFakeRollupHonk(),
204
287
  ),
205
288
  );
206
289
  }
207
290
 
208
- getPaddingBlockRootRollupProof(
209
- _input: PaddingBlockRootRollupInputs,
291
+ getCheckpointRootSingleBlockRollupProof(
292
+ _input: CheckpointRootSingleBlockRollupPrivateInputs,
210
293
  _signal?: AbortSignal,
211
294
  _epochNumber?: number,
212
295
  ): Promise<
213
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
296
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
214
297
  > {
215
298
  return Promise.resolve(
216
299
  makePublicInputsAndRecursiveProof(
217
- makeBlockRootOrBlockMergeRollupPublicInputs(),
300
+ makeCheckpointRollupPublicInputs(),
218
301
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
219
302
  VerificationKeyData.makeFakeRollupHonk(),
220
303
  ),
221
304
  );
222
305
  }
223
306
 
224
- getBlockRootRollupProof(
225
- _input: BlockRootRollupInputs,
307
+ getCheckpointMergeRollupProof(
308
+ _input: CheckpointMergeRollupPrivateInputs,
226
309
  _signal?: AbortSignal,
227
310
  _epochNumber?: number,
228
311
  ): Promise<
229
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
312
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
230
313
  > {
231
314
  return Promise.resolve(
232
315
  makePublicInputsAndRecursiveProof(
233
- makeBlockRootOrBlockMergeRollupPublicInputs(),
316
+ makeCheckpointRollupPublicInputs(),
234
317
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
235
318
  VerificationKeyData.makeFakeRollupHonk(),
236
319
  ),
237
320
  );
238
321
  }
239
322
 
240
- getSingleTxBlockRootRollupProof(
241
- _input: SingleTxBlockRootRollupInputs,
323
+ getCheckpointPaddingRollupProof(
324
+ _input: CheckpointPaddingRollupPrivateInputs,
242
325
  _signal?: AbortSignal,
243
326
  _epochNumber?: number,
244
327
  ): Promise<
245
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
328
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
246
329
  > {
247
330
  return Promise.resolve(
248
331
  makePublicInputsAndRecursiveProof(
249
- makeBlockRootOrBlockMergeRollupPublicInputs(),
332
+ makeCheckpointRollupPublicInputs(),
250
333
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
251
- VerificationKeyData.makeFakeHonk(),
334
+ VerificationKeyData.makeFakeRollupHonk(),
252
335
  ),
253
336
  );
254
337
  }
255
338
 
256
339
  getRootRollupProof(
257
- _input: RootRollupInputs,
340
+ _input: RootRollupPrivateInputs,
258
341
  _signal?: AbortSignal,
259
342
  _epochNumber?: number,
260
343
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
@@ -266,10 +349,4 @@ export class MockProver implements ServerCircuitProver {
266
349
  ),
267
350
  );
268
351
  }
269
-
270
- getTubeProof(): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>> {
271
- return Promise.resolve(
272
- makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()),
273
- );
274
- }
275
352
  }
@@ -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":""}
@@ -1,51 +0,0 @@
1
- /* eslint-disable no-console */ import { AVM_INPUTS_FILENAME } from '@aztec/bb-prover';
2
- import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import { ProvingJobInputs } from '@aztec/stdlib/interfaces/server';
5
- import { ProvingRequestType } from '@aztec/stdlib/proofs';
6
- import { mkdirSync, writeFileSync } from 'fs';
7
- import { createProofStoreForUri } from '../proving_broker/index.js';
8
- const logger = createLogger('prover-client:get-proof-inputs');
9
- function printUsage() {
10
- console.error('Usage: get-proof-inputs <proof-uri> [out-dir=.]');
11
- }
12
- async function main() {
13
- if (process.argv[2] === '--help') {
14
- printUsage();
15
- return;
16
- }
17
- const uri = process.argv[2];
18
- const outDir = process.argv[3] || '.';
19
- if (!uri) {
20
- printUsage();
21
- throw new Error('Missing proof URI');
22
- }
23
- mkdirSync(outDir, {
24
- recursive: true
25
- });
26
- const proofStore = createProofStoreForUri(uri);
27
- logger.info(`Processing uri ${uri}`);
28
- const input = await proofStore.getProofInput(uri);
29
- logger.info(`Found inputs for ${ProvingRequestType[input.type]}`);
30
- writeProofInputs(input, outDir);
31
- console.log(jsonParseWithSchema(jsonStringify(input), ProvingJobInputs).inputs);
32
- }
33
- // This mimics the behavior of bb-prover/src/bb/execute.ts
34
- function writeProofInputs(input, outDir) {
35
- switch(input.type){
36
- case ProvingRequestType.PUBLIC_VM:
37
- {
38
- writeFileSync(`${outDir}/${AVM_INPUTS_FILENAME}`, input.inputs.serializeWithMessagePack());
39
- logger.info(`Wrote AVM inputs to ${AVM_INPUTS_FILENAME}`);
40
- break;
41
- }
42
- default:
43
- {
44
- throw new Error(`Unimplemented proving request type: ${ProvingRequestType[input.type]}`);
45
- }
46
- }
47
- }
48
- main().catch((err)=>{
49
- console.error(err);
50
- process.exit(1);
51
- });
@@ -1,59 +0,0 @@
1
- /* eslint-disable no-console */
2
- import { AVM_INPUTS_FILENAME } from '@aztec/bb-prover';
3
- import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
4
- import { createLogger } from '@aztec/foundation/log';
5
- import { type ProofUri, ProvingJobInputs } from '@aztec/stdlib/interfaces/server';
6
- import { ProvingRequestType } from '@aztec/stdlib/proofs';
7
-
8
- import { mkdirSync, writeFileSync } from 'fs';
9
-
10
- import { createProofStoreForUri } from '../proving_broker/index.js';
11
-
12
- const logger = createLogger('prover-client:get-proof-inputs');
13
-
14
- function printUsage() {
15
- console.error('Usage: get-proof-inputs <proof-uri> [out-dir=.]');
16
- }
17
-
18
- async function main() {
19
- if (process.argv[2] === '--help') {
20
- printUsage();
21
- return;
22
- }
23
-
24
- const uri = process.argv[2];
25
- const outDir = process.argv[3] || '.';
26
- if (!uri) {
27
- printUsage();
28
- throw new Error('Missing proof URI');
29
- }
30
-
31
- mkdirSync(outDir, { recursive: true });
32
-
33
- const proofStore = createProofStoreForUri(uri);
34
- logger.info(`Processing uri ${uri}`);
35
- const input = await proofStore.getProofInput(uri as ProofUri);
36
- logger.info(`Found inputs for ${ProvingRequestType[input.type]}`);
37
- writeProofInputs(input, outDir);
38
-
39
- console.log(jsonParseWithSchema(jsonStringify(input), ProvingJobInputs).inputs);
40
- }
41
-
42
- // This mimics the behavior of bb-prover/src/bb/execute.ts
43
- function writeProofInputs(input: ProvingJobInputs, outDir: string) {
44
- switch (input.type) {
45
- case ProvingRequestType.PUBLIC_VM: {
46
- writeFileSync(`${outDir}/${AVM_INPUTS_FILENAME}`, input.inputs.serializeWithMessagePack());
47
- logger.info(`Wrote AVM inputs to ${AVM_INPUTS_FILENAME}`);
48
- break;
49
- }
50
- default: {
51
- throw new Error(`Unimplemented proving request type: ${ProvingRequestType[input.type]}`);
52
- }
53
- }
54
- }
55
-
56
- main().catch(err => {
57
- console.error(err);
58
- process.exit(1);
59
- });