@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.
- package/dest/block-factory/index.d.ts +1 -1
- package/dest/block-factory/light.d.ts +5 -3
- package/dest/block-factory/light.d.ts.map +1 -1
- package/dest/block-factory/light.js +32 -11
- package/dest/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +2 -2
- package/dest/index.d.ts +1 -1
- package/dest/light/index.d.ts +2 -0
- package/dest/light/index.d.ts.map +1 -0
- package/dest/light/index.js +1 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts +36 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
- package/dest/light/lightweight_checkpoint_builder.js +147 -0
- package/dest/mocks/fixtures.d.ts +5 -5
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +33 -15
- package/dest/mocks/test_context.d.ts +38 -33
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +133 -82
- package/dest/orchestrator/block-building-helpers.d.ts +35 -35
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +151 -187
- package/dest/orchestrator/block-proving-state.d.ts +68 -55
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +273 -185
- package/dest/orchestrator/checkpoint-proving-state.d.ts +63 -0
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/checkpoint-proving-state.js +210 -0
- package/dest/orchestrator/epoch-proving-state.d.ts +38 -31
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +128 -84
- package/dest/orchestrator/index.d.ts +1 -1
- package/dest/orchestrator/orchestrator.d.ts +35 -34
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +777 -292
- package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator_metrics.js +0 -9
- package/dest/orchestrator/tx-proving-state.d.ts +12 -10
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +23 -29
- package/dest/prover-client/factory.d.ts +3 -3
- package/dest/prover-client/factory.d.ts.map +1 -1
- package/dest/prover-client/index.d.ts +1 -1
- package/dest/prover-client/prover-client.d.ts +3 -3
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.d.ts +13 -11
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +9 -9
- package/dest/proving_broker/broker_prover_facade.d.ts +23 -18
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +42 -33
- package/dest/proving_broker/config.d.ts +18 -14
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +12 -6
- package/dest/proving_broker/factory.d.ts +1 -1
- package/dest/proving_broker/factory.js +1 -1
- package/dest/proving_broker/fixtures.d.ts +3 -2
- package/dest/proving_broker/fixtures.d.ts.map +1 -1
- package/dest/proving_broker/fixtures.js +3 -2
- package/dest/proving_broker/index.d.ts +1 -1
- package/dest/proving_broker/proof_store/factory.d.ts +2 -2
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.d.ts +2 -1
- package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.js +1 -0
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +383 -8
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.d.ts +2 -2
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +418 -29
- package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +8 -7
- package/dest/proving_broker/proving_broker_database.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.d.ts +3 -2
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +40 -21
- package/dest/proving_broker/rpc.d.ts +4 -4
- package/dest/test/mock_proof_store.d.ts +3 -3
- package/dest/test/mock_proof_store.d.ts.map +1 -1
- package/dest/test/mock_prover.d.ts +23 -19
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +36 -21
- package/package.json +21 -19
- package/src/block-factory/light.ts +40 -17
- package/src/config.ts +2 -2
- package/src/light/index.ts +1 -0
- package/src/light/lightweight_checkpoint_builder.ts +198 -0
- package/src/mocks/fixtures.ts +41 -36
- package/src/mocks/test_context.ts +196 -114
- package/src/orchestrator/block-building-helpers.ts +233 -313
- package/src/orchestrator/block-proving-state.ts +315 -247
- package/src/orchestrator/checkpoint-proving-state.ts +303 -0
- package/src/orchestrator/epoch-proving-state.ts +176 -129
- package/src/orchestrator/orchestrator.ts +558 -348
- package/src/orchestrator/orchestrator_metrics.ts +1 -20
- package/src/orchestrator/tx-proving-state.ts +47 -55
- package/src/prover-client/factory.ts +6 -2
- package/src/prover-client/prover-client.ts +3 -2
- package/src/prover-client/server-epoch-prover.ts +30 -21
- package/src/proving_broker/broker_prover_facade.ts +175 -112
- package/src/proving_broker/config.ts +14 -7
- package/src/proving_broker/factory.ts +1 -1
- package/src/proving_broker/fixtures.ts +8 -3
- package/src/proving_broker/proof_store/index.ts +1 -0
- package/src/proving_broker/proving_broker.ts +41 -19
- package/src/proving_broker/proving_broker_database/memory.ts +2 -1
- package/src/proving_broker/proving_broker_database/persisted.ts +10 -9
- package/src/proving_broker/proving_broker_database.ts +2 -1
- package/src/proving_broker/proving_job_controller.ts +42 -22
- package/src/test/mock_prover.ts +143 -66
- package/dest/bin/get-proof-inputs.d.ts +0 -2
- package/dest/bin/get-proof-inputs.d.ts.map +0 -1
- package/dest/bin/get-proof-inputs.js +0 -51
- 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.
|
|
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.
|
|
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.
|
|
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:
|
|
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:
|
|
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.
|
|
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.
|
|
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:
|
|
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 {
|
|
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:
|
|
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
|
-
|
|
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.
|
|
132
|
-
return await this.circuitProver.
|
|
131
|
+
case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
|
|
132
|
+
return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
case ProvingRequestType.
|
|
136
|
-
return await this.circuitProver.
|
|
135
|
+
case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
|
|
136
|
+
return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
case ProvingRequestType.
|
|
140
|
-
return await this.circuitProver.
|
|
139
|
+
case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP: {
|
|
140
|
+
return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
case ProvingRequestType.
|
|
144
|
-
return await this.circuitProver.
|
|
143
|
+
case ProvingRequestType.TX_MERGE_ROLLUP: {
|
|
144
|
+
return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
case ProvingRequestType.
|
|
148
|
-
return await this.circuitProver.
|
|
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.
|
|
156
|
-
return await this.circuitProver.
|
|
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.
|
|
191
|
+
case ProvingRequestType.PARITY_BASE: {
|
|
168
192
|
return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
|
|
169
193
|
}
|
|
170
194
|
|
|
171
|
-
case ProvingRequestType.
|
|
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}`));
|
package/src/test/mock_prover.ts
CHANGED
|
@@ -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 {
|
|
20
|
+
import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
23
21
|
import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
|
|
24
22
|
import type {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
41
|
+
TxMergeRollupPrivateInputs,
|
|
42
|
+
TxRollupPublicInputs,
|
|
37
43
|
} from '@aztec/stdlib/rollup';
|
|
38
44
|
import {
|
|
39
|
-
|
|
40
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
135
|
-
|
|
137
|
+
getPublicChonkVerifierProof(
|
|
138
|
+
_inputs: PublicChonkVerifierPrivateInputs,
|
|
136
139
|
_signal?: AbortSignal,
|
|
137
140
|
_epochNumber?: number,
|
|
138
141
|
): Promise<
|
|
139
|
-
PublicInputsAndRecursiveProof<
|
|
142
|
+
PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
140
143
|
> {
|
|
141
144
|
return Promise.resolve(
|
|
142
145
|
makePublicInputsAndRecursiveProof(
|
|
143
|
-
|
|
146
|
+
makePublicChonkVerifierPublicInputs(),
|
|
144
147
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
145
148
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
146
149
|
),
|
|
147
150
|
);
|
|
148
151
|
}
|
|
149
152
|
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
|
|
160
|
+
makeTxRollupPublicInputs(),
|
|
160
161
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
161
162
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
162
163
|
),
|
|
163
164
|
);
|
|
164
165
|
}
|
|
165
166
|
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
174
|
+
makeTxRollupPublicInputs(),
|
|
176
175
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
177
176
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
178
177
|
),
|
|
179
178
|
);
|
|
180
179
|
}
|
|
181
180
|
|
|
182
|
-
|
|
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
|
-
|
|
202
|
+
makeBlockRollupPublicInputs(),
|
|
186
203
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
187
204
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
188
205
|
),
|
|
189
206
|
);
|
|
190
207
|
}
|
|
191
208
|
|
|
192
|
-
|
|
193
|
-
_input:
|
|
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<
|
|
280
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
198
281
|
> {
|
|
199
282
|
return Promise.resolve(
|
|
200
283
|
makePublicInputsAndRecursiveProof(
|
|
201
|
-
|
|
284
|
+
makeCheckpointRollupPublicInputs(),
|
|
202
285
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
203
286
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
204
287
|
),
|
|
205
288
|
);
|
|
206
289
|
}
|
|
207
290
|
|
|
208
|
-
|
|
209
|
-
_input:
|
|
291
|
+
getCheckpointRootSingleBlockRollupProof(
|
|
292
|
+
_input: CheckpointRootSingleBlockRollupPrivateInputs,
|
|
210
293
|
_signal?: AbortSignal,
|
|
211
294
|
_epochNumber?: number,
|
|
212
295
|
): Promise<
|
|
213
|
-
PublicInputsAndRecursiveProof<
|
|
296
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
214
297
|
> {
|
|
215
298
|
return Promise.resolve(
|
|
216
299
|
makePublicInputsAndRecursiveProof(
|
|
217
|
-
|
|
300
|
+
makeCheckpointRollupPublicInputs(),
|
|
218
301
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
219
302
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
220
303
|
),
|
|
221
304
|
);
|
|
222
305
|
}
|
|
223
306
|
|
|
224
|
-
|
|
225
|
-
_input:
|
|
307
|
+
getCheckpointMergeRollupProof(
|
|
308
|
+
_input: CheckpointMergeRollupPrivateInputs,
|
|
226
309
|
_signal?: AbortSignal,
|
|
227
310
|
_epochNumber?: number,
|
|
228
311
|
): Promise<
|
|
229
|
-
PublicInputsAndRecursiveProof<
|
|
312
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
230
313
|
> {
|
|
231
314
|
return Promise.resolve(
|
|
232
315
|
makePublicInputsAndRecursiveProof(
|
|
233
|
-
|
|
316
|
+
makeCheckpointRollupPublicInputs(),
|
|
234
317
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
235
318
|
VerificationKeyData.makeFakeRollupHonk(),
|
|
236
319
|
),
|
|
237
320
|
);
|
|
238
321
|
}
|
|
239
322
|
|
|
240
|
-
|
|
241
|
-
_input:
|
|
323
|
+
getCheckpointPaddingRollupProof(
|
|
324
|
+
_input: CheckpointPaddingRollupPrivateInputs,
|
|
242
325
|
_signal?: AbortSignal,
|
|
243
326
|
_epochNumber?: number,
|
|
244
327
|
): Promise<
|
|
245
|
-
PublicInputsAndRecursiveProof<
|
|
328
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
246
329
|
> {
|
|
247
330
|
return Promise.resolve(
|
|
248
331
|
makePublicInputsAndRecursiveProof(
|
|
249
|
-
|
|
332
|
+
makeCheckpointRollupPublicInputs(),
|
|
250
333
|
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
251
|
-
VerificationKeyData.
|
|
334
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
252
335
|
),
|
|
253
336
|
);
|
|
254
337
|
}
|
|
255
338
|
|
|
256
339
|
getRootRollupProof(
|
|
257
|
-
_input:
|
|
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 +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
|
-
});
|