@aztec/prover-client 2.1.0-rc.9 → 3.0.0-devnet.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +16 -9
- package/dest/mocks/fixtures.d.ts +4 -1
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +31 -3
- package/dest/mocks/test_context.d.ts +32 -9
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +78 -22
- package/dest/orchestrator/block-building-helpers.d.ts +33 -31
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +126 -137
- package/dest/orchestrator/block-proving-state.d.ts +60 -53
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +214 -187
- 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 +211 -0
- package/dest/orchestrator/epoch-proving-state.d.ts +34 -28
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +125 -81
- package/dest/orchestrator/orchestrator.d.ts +26 -25
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +350 -218
- package/dest/orchestrator/tx-proving-state.d.ts +11 -9
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +26 -23
- package/dest/prover-client/server-epoch-prover.d.ts +8 -7
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +7 -7
- package/dest/proving_broker/broker_prover_facade.d.ts +20 -15
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +36 -21
- package/dest/proving_broker/config.d.ts +8 -8
- package/dest/proving_broker/config.js +4 -4
- package/dest/proving_broker/factory.js +1 -1
- package/dest/proving_broker/fixtures.js +1 -1
- package/dest/proving_broker/proof_store/index.d.ts +1 -0
- 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/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +29 -18
- package/dest/proving_broker/proving_broker_database/persisted.js +5 -5
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +38 -18
- package/dest/test/mock_prover.d.ts +22 -17
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +35 -20
- package/package.json +16 -17
- package/src/block-factory/light.ts +35 -9
- package/src/mocks/fixtures.ts +39 -11
- package/src/mocks/test_context.ts +137 -31
- package/src/orchestrator/block-building-helpers.ts +213 -211
- package/src/orchestrator/block-proving-state.ts +235 -245
- package/src/orchestrator/checkpoint-proving-state.ts +299 -0
- package/src/orchestrator/epoch-proving-state.ts +169 -126
- package/src/orchestrator/orchestrator.ts +519 -286
- package/src/orchestrator/tx-proving-state.ts +45 -43
- package/src/prover-client/server-epoch-prover.ts +26 -16
- package/src/proving_broker/broker_prover_facade.ts +157 -88
- package/src/proving_broker/config.ts +6 -6
- package/src/proving_broker/factory.ts +1 -1
- package/src/proving_broker/fixtures.ts +1 -1
- package/src/proving_broker/proof_store/index.ts +1 -0
- package/src/proving_broker/proving_broker.ts +36 -18
- package/src/proving_broker/proving_broker_database/persisted.ts +5 -5
- package/src/proving_broker/proving_job_controller.ts +38 -18
- package/src/test/mock_prover.ts +142 -62
- 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
|
@@ -86,7 +86,7 @@ export class KVBrokerDatabase {
|
|
|
86
86
|
async estimateSize() {
|
|
87
87
|
const sizes = await Promise.all(Array.from(this.epochs.values()).map((x)=>x.estimateSize()));
|
|
88
88
|
return {
|
|
89
|
-
mappingSize: this.config.
|
|
89
|
+
mappingSize: this.config.dataStoreMapSizeKb,
|
|
90
90
|
physicalFileSize: sizes.reduce((prev, curr)=>prev + curr.physicalFileSize, 0),
|
|
91
91
|
numItems: sizes.reduce((prev, curr)=>prev + curr.numItems, 0),
|
|
92
92
|
actualSize: sizes.reduce((prev, curr)=>prev + curr.actualSize, 0)
|
|
@@ -109,8 +109,8 @@ export class KVBrokerDatabase {
|
|
|
109
109
|
logger.warn(`Found invalid epoch directory ${fullDirectory} when loading epoch databases, ignoring`);
|
|
110
110
|
continue;
|
|
111
111
|
}
|
|
112
|
-
logger.info(`Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.
|
|
113
|
-
const db = await openVersionedStoreAt(fullDirectory, SingleEpochDatabase.SCHEMA_VERSION, config.l1Contracts.rollupAddress, config.
|
|
112
|
+
logger.info(`Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.dataStoreMapSizeKb}KB`);
|
|
113
|
+
const db = await openVersionedStoreAt(fullDirectory, SingleEpochDatabase.SCHEMA_VERSION, config.l1Contracts.rollupAddress, config.dataStoreMapSizeKb);
|
|
114
114
|
const epochDb = new SingleEpochDatabase(db);
|
|
115
115
|
epochs.set(epochNumber, epochDb);
|
|
116
116
|
}
|
|
@@ -173,8 +173,8 @@ export class KVBrokerDatabase {
|
|
|
173
173
|
await mkdir(newEpochDirectory, {
|
|
174
174
|
recursive: true
|
|
175
175
|
});
|
|
176
|
-
this.logger.info(`Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.
|
|
177
|
-
const db = await openVersionedStoreAt(newEpochDirectory, SingleEpochDatabase.SCHEMA_VERSION, this.config.l1Contracts.rollupAddress, this.config.
|
|
176
|
+
this.logger.info(`Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.dataStoreMapSizeKb}`);
|
|
177
|
+
const db = await openVersionedStoreAt(newEpochDirectory, SingleEpochDatabase.SCHEMA_VERSION, this.config.l1Contracts.rollupAddress, this.config.dataStoreMapSizeKb);
|
|
178
178
|
epochDb = new SingleEpochDatabase(db);
|
|
179
179
|
this.epochs.set(epochNumber, epochDb);
|
|
180
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;
|
|
1
|
+
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CAmF5B"}
|
|
@@ -116,54 +116,74 @@ export class ProvingJobController {
|
|
|
116
116
|
// TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
|
|
117
117
|
return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
|
|
118
118
|
}
|
|
119
|
-
case ProvingRequestType.
|
|
119
|
+
case ProvingRequestType.PUBLIC_TUBE:
|
|
120
120
|
{
|
|
121
|
-
return await this.circuitProver.
|
|
121
|
+
return await this.circuitProver.getPublicTubeProof(inputs, signal, this.epochNumber);
|
|
122
122
|
}
|
|
123
|
-
case ProvingRequestType.
|
|
123
|
+
case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP:
|
|
124
124
|
{
|
|
125
|
-
return await this.circuitProver.
|
|
125
|
+
return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
|
|
126
126
|
}
|
|
127
|
-
case ProvingRequestType.
|
|
127
|
+
case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP:
|
|
128
128
|
{
|
|
129
|
-
return await this.circuitProver.
|
|
129
|
+
return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
|
|
130
130
|
}
|
|
131
|
-
case ProvingRequestType.
|
|
131
|
+
case ProvingRequestType.TX_MERGE_ROLLUP:
|
|
132
132
|
{
|
|
133
|
-
return await this.circuitProver.
|
|
133
|
+
return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
|
|
134
134
|
}
|
|
135
|
-
case ProvingRequestType.
|
|
135
|
+
case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
|
|
136
136
|
{
|
|
137
|
-
return await this.circuitProver.
|
|
137
|
+
return await this.circuitProver.getBlockRootFirstRollupProof(inputs, signal, this.epochNumber);
|
|
138
|
+
}
|
|
139
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
|
|
140
|
+
{
|
|
141
|
+
return await this.circuitProver.getBlockRootSingleTxFirstRollupProof(inputs, signal, this.epochNumber);
|
|
142
|
+
}
|
|
143
|
+
case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP:
|
|
144
|
+
{
|
|
145
|
+
return await this.circuitProver.getBlockRootEmptyTxFirstRollupProof(inputs, signal, this.epochNumber);
|
|
138
146
|
}
|
|
139
147
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP:
|
|
140
148
|
{
|
|
141
149
|
return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
142
150
|
}
|
|
143
|
-
case ProvingRequestType.
|
|
151
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP:
|
|
144
152
|
{
|
|
145
|
-
return await this.circuitProver.
|
|
153
|
+
return await this.circuitProver.getBlockRootSingleTxRollupProof(inputs, signal, this.epochNumber);
|
|
146
154
|
}
|
|
147
155
|
case ProvingRequestType.BLOCK_MERGE_ROLLUP:
|
|
148
156
|
{
|
|
149
157
|
return await this.circuitProver.getBlockMergeRollupProof(inputs, signal, this.epochNumber);
|
|
150
158
|
}
|
|
159
|
+
case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP:
|
|
160
|
+
{
|
|
161
|
+
return await this.circuitProver.getCheckpointRootRollupProof(inputs, signal, this.epochNumber);
|
|
162
|
+
}
|
|
163
|
+
case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP:
|
|
164
|
+
{
|
|
165
|
+
return await this.circuitProver.getCheckpointRootSingleBlockRollupProof(inputs, signal, this.epochNumber);
|
|
166
|
+
}
|
|
167
|
+
case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP:
|
|
168
|
+
{
|
|
169
|
+
return await this.circuitProver.getCheckpointPaddingRollupProof(inputs, signal, this.epochNumber);
|
|
170
|
+
}
|
|
171
|
+
case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP:
|
|
172
|
+
{
|
|
173
|
+
return await this.circuitProver.getCheckpointMergeRollupProof(inputs, signal, this.epochNumber);
|
|
174
|
+
}
|
|
151
175
|
case ProvingRequestType.ROOT_ROLLUP:
|
|
152
176
|
{
|
|
153
177
|
return await this.circuitProver.getRootRollupProof(inputs, signal, this.epochNumber);
|
|
154
178
|
}
|
|
155
|
-
case ProvingRequestType.
|
|
179
|
+
case ProvingRequestType.PARITY_BASE:
|
|
156
180
|
{
|
|
157
181
|
return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
|
|
158
182
|
}
|
|
159
|
-
case ProvingRequestType.
|
|
183
|
+
case ProvingRequestType.PARITY_ROOT:
|
|
160
184
|
{
|
|
161
185
|
return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
|
|
162
186
|
}
|
|
163
|
-
case ProvingRequestType.TUBE_PROOF:
|
|
164
|
-
{
|
|
165
|
-
return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
|
|
166
|
-
}
|
|
167
187
|
default:
|
|
168
188
|
{
|
|
169
189
|
const _exhaustive = type;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
1
|
+
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
|
-
import { type
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
3
|
+
import { type ProvingJob, type ProvingJobId, type ProvingJobProducer, type ProvingJobStatus, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
4
|
+
import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
5
|
+
import type { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointMergeRollupPrivateInputs, CheckpointPaddingRollupPrivateInputs, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs, PrivateTxBaseRollupPrivateInputs, PublicTubePrivateInputs, PublicTubePublicInputs, PublicTxBaseRollupPrivateInputs, RootRollupPrivateInputs, RootRollupPublicInputs, TxMergeRollupPrivateInputs, TxRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
6
6
|
import { type ProofStore } from '../proving_broker/proof_store/index.js';
|
|
7
7
|
export declare class TestBroker implements ProvingJobProducer {
|
|
8
8
|
private proofStore;
|
|
@@ -20,18 +20,23 @@ export declare class TestBroker implements ProvingJobProducer {
|
|
|
20
20
|
export declare class MockProver implements ServerCircuitProver {
|
|
21
21
|
constructor();
|
|
22
22
|
getAvmProof(_inputs: AvmCircuitInputs, _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
23
|
-
_signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<20000>>;
|
|
24
|
-
getBaseParityProof(_inputs:
|
|
25
|
-
getRootParityProof(_inputs:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
_signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<20000>>;
|
|
24
|
+
getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
25
|
+
getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
26
|
+
getPublicTubeProof(_inputs: PublicTubePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PublicTubePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
27
|
+
getPrivateTxBaseRollupProof(_baseRollupInput: PrivateTxBaseRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
28
|
+
getPublicTxBaseRollupProof(_inputs: PublicTxBaseRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
29
|
+
getTxMergeRollupProof(_input: TxMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
30
|
+
getBlockRootFirstRollupProof(_input: BlockRootFirstRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
31
|
+
getBlockRootSingleTxFirstRollupProof(_input: BlockRootSingleTxFirstRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
32
|
+
getBlockRootEmptyTxFirstRollupProof(_input: BlockRootEmptyTxFirstRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
33
|
+
getBlockRootRollupProof(_input: BlockRootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
34
|
+
getBlockRootSingleTxRollupProof(_input: BlockRootSingleTxRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
35
|
+
getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, 535>>;
|
|
36
|
+
getCheckpointRootRollupProof(_input: CheckpointRootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
37
|
+
getCheckpointRootSingleBlockRollupProof(_input: CheckpointRootSingleBlockRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
38
|
+
getCheckpointMergeRollupProof(_input: CheckpointMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
39
|
+
getCheckpointPaddingRollupProof(_input: CheckpointPaddingRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
40
|
+
getRootRollupProof(_input: RootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
|
|
36
41
|
}
|
|
37
42
|
//# sourceMappingURL=mock_prover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yCAAyC,
|
|
1
|
+
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yCAAyC,EAE1C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EAGzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,wCAAwC,EACxC,iCAAiC,EACjC,4BAA4B,EAC5B,yCAAyC,EACzC,oCAAoC,EACpC,kCAAkC,EAClC,oCAAoC,EACpC,4BAA4B,EAC5B,iCAAiC,EACjC,4CAA4C,EAC5C,gCAAgC,EAChC,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAK3F,qBAAa,UAAW,YAAW,kBAAkB;IAOjD,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAiB;gBAG7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,EACnB,UAAU,GAAE,UAAmC,EACvD,iBAAiB,SAAM;IASZ,KAAK;IAKL,IAAI;IAKV,aAAa,IAAI,UAAU;IAIlC,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAG7D,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAGhE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAG/D;AAED,qBAAa,UAAW,YAAW,mBAAmB;;IAGpD,WAAW,CACT,OAAO,EAAE,gBAAgB,EACzB,2BAA2B,CAAC,EAAE,OAAO,EAAE,sDAAsD;IAC7F,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM;IAUvB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM;IAUjG,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM;IAUjG,kBAAkB,CAChB,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUnH,2BAA2B,CACzB,gBAAgB,EAAE,gCAAgC,EAClD,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUjH,0BAA0B,CACxB,OAAO,EAAE,+BAA+B,EACxC,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUjH,qBAAqB,CACnB,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUjH,4BAA4B,CAC1B,MAAM,EAAE,iCAAiC,EACzC,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUpH,oCAAoC,CAClC,MAAM,EAAE,yCAAyC,EACjD,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUpH,mCAAmC,CACjC,MAAM,EAAE,wCAAwC,EAChD,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUpH,uBAAuB,CACrB,MAAM,EAAE,4BAA4B,EACpC,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUpH,+BAA+B,CAC7B,MAAM,EAAE,oCAAoC,EAC5C,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,OAAO,yCAAyC,CAAC,CAAC;IAUpH,wBAAwB,CAAC,MAAM,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM;IAU5G,4BAA4B,CAC1B,MAAM,EAAE,iCAAiC,EACzC,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CACR,6BAA6B,CAAC,4BAA4B,EAAE,OAAO,yCAAyC,CAAC,CAC9G;IAUD,uCAAuC,CACrC,MAAM,EAAE,4CAA4C,EACpD,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CACR,6BAA6B,CAAC,4BAA4B,EAAE,OAAO,yCAAyC,CAAC,CAC9G;IAUD,6BAA6B,CAC3B,MAAM,EAAE,kCAAkC,EAC1C,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CACR,6BAA6B,CAAC,4BAA4B,EAAE,OAAO,yCAAyC,CAAC,CAC9G;IAUD,+BAA+B,CAC7B,MAAM,EAAE,oCAAoC,EAC5C,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CACR,6BAA6B,CAAC,4BAA4B,EAAE,OAAO,yCAAyC,CAAC,CAC9G;IAUD,kBAAkB,CAChB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,WAAW,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;CASlE"}
|
package/dest/test/mock_prover.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import { times } from '@aztec/foundation/collection';
|
|
3
3
|
import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
|
|
5
|
-
import {
|
|
5
|
+
import { makeBlockRollupPublicInputs, makeCheckpointRollupPublicInputs, makeParityPublicInputs, makePublicTubePublicInputs, makeRootRollupPublicInputs, makeTxRollupPublicInputs } from '@aztec/stdlib/testing';
|
|
6
6
|
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
7
7
|
import { InlineProofStore } from '../proving_broker/proof_store/index.js';
|
|
8
8
|
import { ProvingAgent } from '../proving_broker/proving_agent.js';
|
|
@@ -52,34 +52,49 @@ export class MockProver {
|
|
|
52
52
|
getRootParityProof(_inputs, _signal, _epochNumber) {
|
|
53
53
|
return Promise.resolve(makePublicInputsAndRecursiveProof(makeParityPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
55
|
+
getPublicTubeProof(_inputs, _signal, _epochNumber) {
|
|
56
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makePublicTubePublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
58
|
+
getPrivateTxBaseRollupProof(_baseRollupInput, _signal, _epochNumber) {
|
|
59
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeTxRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
61
|
+
getPublicTxBaseRollupProof(_inputs, _signal, _epochNumber) {
|
|
62
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeTxRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
64
|
+
getTxMergeRollupProof(_input, _signal, _epochNumber) {
|
|
65
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeTxRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
66
|
+
}
|
|
67
|
+
getBlockRootFirstRollupProof(_input, _signal, _epochNumber) {
|
|
68
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
66
69
|
}
|
|
67
|
-
|
|
68
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
70
|
+
getBlockRootSingleTxFirstRollupProof(_input, _signal, _epochNumber) {
|
|
71
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
69
72
|
}
|
|
70
|
-
|
|
71
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
73
|
+
getBlockRootEmptyTxFirstRollupProof(_input, _signal, _epochNumber) {
|
|
74
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
72
75
|
}
|
|
73
76
|
getBlockRootRollupProof(_input, _signal, _epochNumber) {
|
|
74
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
77
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
78
|
+
}
|
|
79
|
+
getBlockRootSingleTxRollupProof(_input, _signal, _epochNumber) {
|
|
80
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
81
|
+
}
|
|
82
|
+
getBlockMergeRollupProof(_input, _signal, _epochNumber) {
|
|
83
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
75
84
|
}
|
|
76
|
-
|
|
77
|
-
return Promise.resolve(makePublicInputsAndRecursiveProof(
|
|
85
|
+
getCheckpointRootRollupProof(_input, _signal, _epochNumber) {
|
|
86
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeCheckpointRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
87
|
+
}
|
|
88
|
+
getCheckpointRootSingleBlockRollupProof(_input, _signal, _epochNumber) {
|
|
89
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeCheckpointRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
90
|
+
}
|
|
91
|
+
getCheckpointMergeRollupProof(_input, _signal, _epochNumber) {
|
|
92
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeCheckpointRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
93
|
+
}
|
|
94
|
+
getCheckpointPaddingRollupProof(_input, _signal, _epochNumber) {
|
|
95
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeCheckpointRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
78
96
|
}
|
|
79
97
|
getRootRollupProof(_input, _signal, _epochNumber) {
|
|
80
98
|
return Promise.resolve(makePublicInputsAndRecursiveProof(makeRootRollupPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
|
|
81
99
|
}
|
|
82
|
-
getTubeProof() {
|
|
83
|
-
return Promise.resolve(makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
84
|
-
}
|
|
85
100
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-devnet.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -27,8 +27,7 @@
|
|
|
27
27
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
28
28
|
"bb": "node --no-warnings ./dest/bb/index.js",
|
|
29
29
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=3500000 --forceExit",
|
|
30
|
-
"test:debug": "LOG_LEVEL=debug NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=1500000 --forceExit --testNamePattern prover/bb_prover/parity"
|
|
31
|
-
"get-proof-inputs": "node --no-warnings ./dest/bin/get-proof-inputs.js"
|
|
30
|
+
"test:debug": "LOG_LEVEL=debug NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=1500000 --forceExit --testNamePattern prover/bb_prover/parity"
|
|
32
31
|
},
|
|
33
32
|
"jest": {
|
|
34
33
|
"moduleNameMapper": {
|
|
@@ -68,19 +67,19 @@
|
|
|
68
67
|
]
|
|
69
68
|
},
|
|
70
69
|
"dependencies": {
|
|
71
|
-
"@aztec/bb-prover": "
|
|
72
|
-
"@aztec/blob-lib": "
|
|
73
|
-
"@aztec/constants": "
|
|
74
|
-
"@aztec/ethereum": "
|
|
75
|
-
"@aztec/foundation": "
|
|
76
|
-
"@aztec/kv-store": "
|
|
77
|
-
"@aztec/noir-protocol-circuits-types": "
|
|
78
|
-
"@aztec/noir-types": "
|
|
79
|
-
"@aztec/protocol-contracts": "
|
|
80
|
-
"@aztec/simulator": "
|
|
81
|
-
"@aztec/stdlib": "
|
|
82
|
-
"@aztec/telemetry-client": "
|
|
83
|
-
"@aztec/world-state": "
|
|
70
|
+
"@aztec/bb-prover": "3.0.0-devnet.2",
|
|
71
|
+
"@aztec/blob-lib": "3.0.0-devnet.2",
|
|
72
|
+
"@aztec/constants": "3.0.0-devnet.2",
|
|
73
|
+
"@aztec/ethereum": "3.0.0-devnet.2",
|
|
74
|
+
"@aztec/foundation": "3.0.0-devnet.2",
|
|
75
|
+
"@aztec/kv-store": "3.0.0-devnet.2",
|
|
76
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-devnet.2",
|
|
77
|
+
"@aztec/noir-types": "3.0.0-devnet.2",
|
|
78
|
+
"@aztec/protocol-contracts": "3.0.0-devnet.2",
|
|
79
|
+
"@aztec/simulator": "3.0.0-devnet.2",
|
|
80
|
+
"@aztec/stdlib": "3.0.0-devnet.2",
|
|
81
|
+
"@aztec/telemetry-client": "3.0.0-devnet.2",
|
|
82
|
+
"@aztec/world-state": "3.0.0-devnet.2",
|
|
84
83
|
"@google-cloud/storage": "^7.15.0",
|
|
85
84
|
"@iarna/toml": "^2.2.5",
|
|
86
85
|
"commander": "^12.1.0",
|
|
@@ -90,7 +89,7 @@
|
|
|
90
89
|
"zod": "^3.23.8"
|
|
91
90
|
},
|
|
92
91
|
"devDependencies": {
|
|
93
|
-
"@aztec/noir-contracts.js": "
|
|
92
|
+
"@aztec/noir-contracts.js": "3.0.0-devnet.2",
|
|
94
93
|
"@jest/globals": "^30.0.0",
|
|
95
94
|
"@types/jest": "^30.0.0",
|
|
96
95
|
"@types/node": "^22.15.17",
|
|
@@ -6,7 +6,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
6
6
|
import { L2Block } from '@aztec/stdlib/block';
|
|
7
7
|
import type { IBlockFactory, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
8
8
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
9
|
-
import {
|
|
9
|
+
import type { GlobalVariables, ProcessedTx } from '@aztec/stdlib/tx';
|
|
10
10
|
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
11
11
|
|
|
12
12
|
import {
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
export class LightweightBlockFactory implements IBlockFactory {
|
|
31
31
|
private globalVariables?: GlobalVariables;
|
|
32
32
|
private l1ToL2Messages?: Fr[];
|
|
33
|
-
|
|
33
|
+
private startSpongeBlob?: SpongeBlob;
|
|
34
34
|
private txs: ProcessedTx[] | undefined;
|
|
35
35
|
|
|
36
36
|
private readonly logger = createLogger('lightweight-block-factory');
|
|
@@ -40,12 +40,21 @@ export class LightweightBlockFactory implements IBlockFactory {
|
|
|
40
40
|
private telemetry: TelemetryClient = getTelemetryClient(),
|
|
41
41
|
) {}
|
|
42
42
|
|
|
43
|
-
async startNewBlock(
|
|
43
|
+
async startNewBlock(
|
|
44
|
+
globalVariables: GlobalVariables,
|
|
45
|
+
l1ToL2Messages: Fr[],
|
|
46
|
+
// Must be provided to generate the correct spongeBlobHash for the block header if there's more than one block in the checkpoint.
|
|
47
|
+
startSpongeBlob?: SpongeBlob,
|
|
48
|
+
// Only insert l1 to l2 messages for the first block in a checkpoint.
|
|
49
|
+
isFirstBlock = true,
|
|
50
|
+
): Promise<void> {
|
|
44
51
|
this.logger.debug('Starting new block', { globalVariables: globalVariables.toInspect(), l1ToL2Messages });
|
|
45
52
|
this.globalVariables = globalVariables;
|
|
46
|
-
this.l1ToL2Messages =
|
|
53
|
+
this.l1ToL2Messages = isFirstBlock
|
|
54
|
+
? padArrayEnd<Fr, number>(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP)
|
|
55
|
+
: [];
|
|
56
|
+
this.startSpongeBlob = startSpongeBlob;
|
|
47
57
|
this.txs = undefined;
|
|
48
|
-
|
|
49
58
|
// Update L1 to L2 tree
|
|
50
59
|
await this.db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, this.l1ToL2Messages!);
|
|
51
60
|
}
|
|
@@ -71,14 +80,17 @@ export class LightweightBlockFactory implements IBlockFactory {
|
|
|
71
80
|
this.globalVariables!,
|
|
72
81
|
this.l1ToL2Messages!,
|
|
73
82
|
this.db,
|
|
83
|
+
this.startSpongeBlob,
|
|
74
84
|
);
|
|
75
85
|
|
|
76
86
|
header.state.validate();
|
|
77
87
|
|
|
78
|
-
|
|
88
|
+
const blockHeader = header.toBlockHeader();
|
|
89
|
+
await this.db.updateArchive(blockHeader);
|
|
79
90
|
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
|
|
80
91
|
|
|
81
92
|
const block = new L2Block(newArchive, header, body);
|
|
93
|
+
|
|
82
94
|
this.logger.debug(`Built block ${block.number}`, {
|
|
83
95
|
globalVariables: this.globalVariables?.toInspect(),
|
|
84
96
|
archiveRoot: newArchive.root.toString(),
|
|
@@ -100,15 +112,29 @@ export async function buildBlockWithCleanDB(
|
|
|
100
112
|
globalVariables: GlobalVariables,
|
|
101
113
|
l1ToL2Messages: Fr[],
|
|
102
114
|
db: MerkleTreeWriteOperations,
|
|
115
|
+
startSpongeBlob?: SpongeBlob,
|
|
116
|
+
isFirstBlock = true,
|
|
103
117
|
telemetry: TelemetryClient = getTelemetryClient(),
|
|
104
118
|
) {
|
|
105
|
-
const
|
|
119
|
+
const lastArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
106
120
|
const builder = new LightweightBlockFactory(db, telemetry);
|
|
107
|
-
await builder.startNewBlock(globalVariables, l1ToL2Messages);
|
|
121
|
+
await builder.startNewBlock(globalVariables, l1ToL2Messages, startSpongeBlob, isFirstBlock);
|
|
108
122
|
const l1ToL2MessageTree = await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db);
|
|
123
|
+
|
|
109
124
|
for (const tx of txs) {
|
|
110
|
-
|
|
125
|
+
// startSpongeBlob and proverId are only used for constructing private inputs of the base rollup.
|
|
126
|
+
// Their values don't matter here because we are not using the return private inputs to build the block.
|
|
127
|
+
const proverId = Fr.ZERO;
|
|
128
|
+
await insertSideEffectsAndBuildBaseRollupHints(
|
|
129
|
+
tx,
|
|
130
|
+
lastArchive,
|
|
131
|
+
l1ToL2MessageTree,
|
|
132
|
+
startSpongeBlob?.clone() ?? SpongeBlob.empty(),
|
|
133
|
+
proverId,
|
|
134
|
+
db,
|
|
135
|
+
);
|
|
111
136
|
}
|
|
112
137
|
await builder.addTxs(txs);
|
|
138
|
+
|
|
113
139
|
return await builder.setBlockCompleted();
|
|
114
140
|
}
|
package/src/mocks/fixtures.ts
CHANGED
|
@@ -4,11 +4,15 @@ import { randomBytes } from '@aztec/foundation/crypto';
|
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import type { Logger } from '@aztec/foundation/log';
|
|
7
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
8
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
9
|
+
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
10
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
8
11
|
import { type CircuitSimulator, NativeACVMSimulator, WASMSimulatorWithBlobs } from '@aztec/simulator/server';
|
|
9
12
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
13
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
11
14
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
15
|
+
import { CheckpointConstantData } from '@aztec/stdlib/rollup';
|
|
12
16
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
13
17
|
import type { ProcessedTx } from '@aztec/stdlib/tx';
|
|
14
18
|
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
@@ -32,7 +36,7 @@ export const getEnvironmentConfig = async (logger: Logger) => {
|
|
|
32
36
|
try {
|
|
33
37
|
const expectedBBPath = BB_BINARY_PATH
|
|
34
38
|
? BB_BINARY_PATH
|
|
35
|
-
: `${path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../barretenberg/', BB_RELEASE_DIR)}/bb`;
|
|
39
|
+
: `${path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../barretenberg/', BB_RELEASE_DIR)}/bb-avm`;
|
|
36
40
|
await fs.access(expectedBBPath, fs.constants.R_OK);
|
|
37
41
|
const tempWorkingDirectory = `${TEMP_DIR}/${randomBytes(4).toString('hex')}`;
|
|
38
42
|
const bbWorkingDirectory = BB_WORKING_DIRECTORY ? BB_WORKING_DIRECTORY : `${tempWorkingDirectory}/bb`;
|
|
@@ -103,15 +107,39 @@ export const updateExpectedTreesFromTxs = async (db: MerkleTreeWriteOperations,
|
|
|
103
107
|
}
|
|
104
108
|
};
|
|
105
109
|
|
|
106
|
-
export const makeGlobals = (
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
export const makeGlobals = (
|
|
111
|
+
blockNumber: number,
|
|
112
|
+
slotNumber = blockNumber,
|
|
113
|
+
overrides: Partial<FieldsOf<GlobalVariables> & FieldsOf<CheckpointConstantData>> = {},
|
|
114
|
+
) => {
|
|
115
|
+
const checkpointConstants = makeCheckpointConstants(slotNumber, overrides);
|
|
116
|
+
return GlobalVariables.from({
|
|
117
|
+
chainId: checkpointConstants.chainId,
|
|
118
|
+
version: checkpointConstants.version,
|
|
110
119
|
blockNumber /** block number */,
|
|
111
|
-
new Fr(
|
|
112
|
-
BigInt(blockNumber) /** block number as pseudo-timestamp for testing */,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
slotNumber: new Fr(slotNumber) /** slot number */,
|
|
121
|
+
timestamp: BigInt(blockNumber) /** block number as pseudo-timestamp for testing */,
|
|
122
|
+
coinbase: checkpointConstants.coinbase,
|
|
123
|
+
feeRecipient: checkpointConstants.feeRecipient,
|
|
124
|
+
gasFees: checkpointConstants.gasFees,
|
|
125
|
+
...overrides,
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export const makeCheckpointConstants = (
|
|
130
|
+
slotNumber: number,
|
|
131
|
+
overrides: Partial<FieldsOf<CheckpointConstantData>> = {},
|
|
132
|
+
) => {
|
|
133
|
+
return CheckpointConstantData.from({
|
|
134
|
+
chainId: Fr.ZERO,
|
|
135
|
+
version: Fr.ZERO,
|
|
136
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
137
|
+
protocolContractsHash,
|
|
138
|
+
proverId: Fr.ZERO,
|
|
139
|
+
slotNumber: new Fr(slotNumber),
|
|
140
|
+
coinbase: EthAddress.ZERO,
|
|
141
|
+
feeRecipient: AztecAddress.ZERO,
|
|
142
|
+
gasFees: GasFees.empty(),
|
|
143
|
+
...overrides,
|
|
144
|
+
});
|
|
117
145
|
};
|