@aztec/prover-client 3.0.0-nightly.20250918 → 3.0.0-nightly.20250920
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/orchestrator/block-proving-state.d.ts +7 -7
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +14 -23
- package/dest/orchestrator/checkpoint-proving-state.d.ts +2 -2
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/checkpoint-proving-state.js +3 -3
- package/dest/orchestrator/epoch-proving-state.d.ts +2 -3
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +6 -13
- package/dest/orchestrator/orchestrator.d.ts +2 -2
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +21 -21
- package/dest/orchestrator/tx-proving-state.d.ts +3 -3
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +5 -5
- package/dest/prover-client/server-epoch-prover.d.ts +2 -2
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +4 -4
- package/dest/proving_broker/broker_prover_facade.d.ts +7 -7
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +8 -8
- 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.js +10 -10
- package/dest/proving_broker/proving_job_controller.js +8 -8
- package/dest/test/mock_prover.d.ts +7 -7
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +7 -7
- package/package.json +16 -17
- package/src/orchestrator/block-proving-state.ts +18 -43
- package/src/orchestrator/checkpoint-proving-state.ts +3 -3
- package/src/orchestrator/epoch-proving-state.ts +5 -13
- package/src/orchestrator/orchestrator.ts +21 -19
- package/src/orchestrator/tx-proving-state.ts +6 -6
- package/src/prover-client/server-epoch-prover.ts +3 -7
- package/src/proving_broker/broker_prover_facade.ts +26 -32
- 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 +10 -10
- package/src/proving_broker/proving_job_controller.ts +8 -8
- package/src/test/mock_prover.ts +20 -26
- 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,11 +1,11 @@
|
|
|
1
1
|
import type { SpongeBlob } from '@aztec/blob-lib';
|
|
2
2
|
import { type ARCHIVE_HEIGHT, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import type
|
|
4
|
+
import { type Tuple } from '@aztec/foundation/serialize';
|
|
5
5
|
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
6
6
|
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
7
|
-
import { type ParityPublicInputs,
|
|
8
|
-
import {
|
|
7
|
+
import { type ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
8
|
+
import { BlockRollupPublicInputs, BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointConstantData, TxMergeRollupPrivateInputs, type TxRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
9
9
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
10
10
|
import { type BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
|
|
11
11
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
@@ -49,9 +49,9 @@ export declare class BlockProvingState {
|
|
|
49
49
|
isAcceptingTxs(): boolean;
|
|
50
50
|
getProcessedTxs(): import("@aztec/stdlib/tx").ProcessedTx[];
|
|
51
51
|
tryStartProvingBase(txIndex: number): boolean;
|
|
52
|
-
setBaseRollupProof(txIndex: number, provingOutput: PublicInputsAndRecursiveProof<
|
|
52
|
+
setBaseRollupProof(txIndex: number, provingOutput: PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
53
53
|
tryStartProvingMerge(location: TreeNodeLocation): boolean;
|
|
54
|
-
setMergeRollupProof(location: TreeNodeLocation, provingOutput: PublicInputsAndRecursiveProof<
|
|
54
|
+
setMergeRollupProof(location: TreeNodeLocation, provingOutput: PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
55
55
|
tryStartProvingBaseParity(index: number): boolean;
|
|
56
56
|
setBaseParityProof(index: number, provingOutput: PublicInputsAndRecursiveProof<ParityPublicInputs>): void;
|
|
57
57
|
tryStartProvingRootParity(): boolean;
|
|
@@ -67,7 +67,7 @@ export declare class BlockProvingState {
|
|
|
67
67
|
getEndSpongeBlob(): SpongeBlob | undefined;
|
|
68
68
|
getBlockBlobFields(): Fr[];
|
|
69
69
|
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
70
|
-
getMergeRollupInputs(mergeLocation: TreeNodeLocation):
|
|
70
|
+
getMergeRollupInputs(mergeLocation: TreeNodeLocation): TxMergeRollupPrivateInputs;
|
|
71
71
|
getBlockRootRollupTypeAndInputs(): {
|
|
72
72
|
rollupType: string;
|
|
73
73
|
inputs: BlockRootEmptyTxFirstRollupPrivateInputs;
|
|
@@ -78,7 +78,7 @@ export declare class BlockProvingState {
|
|
|
78
78
|
rollupType: string;
|
|
79
79
|
inputs: BlockRootRollupPrivateInputs;
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
getParityRootInputs(): ParityRootPrivateInputs;
|
|
82
82
|
getTxProvingState(txIndex: number): TxProvingState;
|
|
83
83
|
buildHeaderFromProvingOutputs(): Promise<BlockHeader>;
|
|
84
84
|
isReadyForMergeRollup(location: TreeNodeLocation): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,wCAAwC,EAE7C,KAAK,yCAAyC,
|
|
1
|
+
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,wCAAwC,EAE7C,KAAK,yCAAyC,EAE/C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAErF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAExF,OAAO,EACL,uBAAuB,EACvB,wCAAwC,EAExC,4BAA4B,EAE5B,oCAAoC,EACpC,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,YAAY,SAAS,MAAM,IAAI;IACvD,aAAa,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,qBAAa,iBAAiB;;aAmBV,KAAK,EAAE,MAAM;aACb,WAAW,EAAE,MAAM;aACnB,WAAW,EAAE,MAAM;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,uBAAuB,EAAE,sBAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,6BAA6B;IAC9C,OAAO,CAAC,QAAQ,CAAC,mCAAmC;aACpC,4BAA4B,EAAE,sBAAsB;IACpE,OAAO,CAAC,QAAQ,CAAC,qCAAqC;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe;IACzB,gBAAgB,EAAE,sBAAsB;IA9BjD,OAAO,CAAC,iBAAiB,CAEM;IAC/B,OAAO,CAAC,gBAAgB,CAGC;IACzB,OAAO,CAAC,eAAe,CAAmF;IAC1G,OAAO,CAAC,cAAc,CAER;IACd,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAqB;gBAGhB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAClB,SAAS,EAAE,sBAAsB,EACjC,SAAS,EAAE,MAAM,EAClB,uBAAuB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EACxD,6BAA6B,EAAE,sBAAsB,EACrD,mCAAmC,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wCAAwC,CAAC,EAChG,4BAA4B,EAAE,sBAAsB,EACnD,qCAAqC,EAAE,WAAW,EAClD,eAAe,EAAE,UAAU,EACrC,gBAAgB,EAAE,sBAAsB;IAUjD,IAAW,WAAW,IAAI,MAAM,CAE/B;IAGM,QAAQ,CAAC,EAAE,EAAE,cAAc;IAS3B,cAAc;IAId,eAAe;IAIf,mBAAmB,CAAC,OAAO,EAAE,MAAM;IASnC,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,6BAA6B,CAC1C,oBAAoB,EACpB,OAAO,yCAAyC,CACjD,GACA,gBAAgB;IAIZ,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB;IAS/C,mBAAmB,CACxB,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,6BAA6B,CAC1C,oBAAoB,EACpB,OAAO,yCAAyC,CACjD;IAKI,yBAAyB,CAAC,KAAK,EAAE,MAAM;IAUvC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,6BAA6B,CAAC,kBAAkB,CAAC;IASlG,yBAAyB;IASzB,kBAAkB,CAAC,aAAa,EAAE,6BAA6B,CAAC,kBAAkB,CAAC;IAInF,wBAAwB;IASxB,uBAAuB,CAC5B,aAAa,EAAE,6BAA6B,CAC1C,uBAAuB,EACvB,OAAO,yCAAyC,CACjD,GACA,gBAAgB;IAKZ,wBAAwB;IAIxB,mBAAmB,CAAC,WAAW,EAAE,WAAW;IAI5C,mBAAmB;IAInB,kBAAkB;IAkBlB,kBAAkB;IAIlB,gBAAgB,CAAC,aAAa,EAAE,UAAU;IAI1C,gBAAgB;IAIhB,kBAAkB;IAIlB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB;IAI5C,oBAAoB,CAAC,aAAa,EAAE,gBAAgB;IASpD,+BAA+B;;;;;;;;;;IAuE/B,mBAAmB;IAWnB,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAI3B,6BAA6B;IAQnC,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB;IAKhD,yBAAyB;IAMzB,oBAAoB;IAIpB,UAAU;IAIV,WAAW;IAIX,QAAQ;IAIR,MAAM,CAAC,MAAM,EAAE,MAAM;CAgB7B"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
2
|
+
import { assertLength } from '@aztec/foundation/serialize';
|
|
2
3
|
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
3
|
-
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
4
4
|
import { getBlockBlobFields } from '@aztec/stdlib/block';
|
|
5
|
-
import {
|
|
6
|
-
import { BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs,
|
|
5
|
+
import { ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
6
|
+
import { BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, TxMergeRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
7
7
|
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
8
|
-
import { VkData } from '@aztec/stdlib/vks';
|
|
9
8
|
import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-helpers.js';
|
|
10
9
|
/**
|
|
11
10
|
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
@@ -201,9 +200,9 @@ import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-hel
|
|
|
201
200
|
if (!left || !right) {
|
|
202
201
|
throw new Error('At least one child is not ready for the merge rollup.');
|
|
203
202
|
}
|
|
204
|
-
return new
|
|
205
|
-
|
|
206
|
-
|
|
203
|
+
return new TxMergeRollupPrivateInputs([
|
|
204
|
+
toProofData(left),
|
|
205
|
+
toProofData(right)
|
|
207
206
|
]);
|
|
208
207
|
}
|
|
209
208
|
getBlockRootRollupTypeAndInputs() {
|
|
@@ -218,12 +217,12 @@ import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-hel
|
|
|
218
217
|
const [leftRollup, rightRollup] = previousRollups;
|
|
219
218
|
if (!rightRollup) {
|
|
220
219
|
return {
|
|
221
|
-
rollupType: 'block-root-single-tx
|
|
220
|
+
rollupType: 'rollup-block-root-single-tx',
|
|
222
221
|
inputs: new BlockRootSingleTxRollupPrivateInputs(leftRollup, this.lastArchiveSiblingPath)
|
|
223
222
|
};
|
|
224
223
|
} else {
|
|
225
224
|
return {
|
|
226
|
-
rollupType: 'block-root
|
|
225
|
+
rollupType: 'rollup-block-root',
|
|
227
226
|
inputs: new BlockRootRollupPrivateInputs([
|
|
228
227
|
leftRollup,
|
|
229
228
|
rightRollup
|
|
@@ -238,17 +237,17 @@ import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-hel
|
|
|
238
237
|
const l1ToL2Roots = toProofData(this.rootParityProof.provingOutput);
|
|
239
238
|
if (!leftRollup) {
|
|
240
239
|
return {
|
|
241
|
-
rollupType: 'block-root-empty-tx
|
|
240
|
+
rollupType: 'rollup-block-root-first-empty-tx',
|
|
242
241
|
inputs: new BlockRootEmptyTxFirstRollupPrivateInputs(l1ToL2Roots, this.lastArchiveTreeSnapshot, this.headerOfLastBlockInPreviousCheckpoint.state, this.constants, this.startSpongeBlob, this.timestamp, this.lastL1ToL2MessageSubtreeSiblingPath, this.lastArchiveSiblingPath)
|
|
243
242
|
};
|
|
244
243
|
} else if (!rightRollup) {
|
|
245
244
|
return {
|
|
246
|
-
rollupType: 'block-root-single-tx
|
|
245
|
+
rollupType: 'rollup-block-root-first-single-tx',
|
|
247
246
|
inputs: new BlockRootSingleTxFirstRollupPrivateInputs(l1ToL2Roots, leftRollup, this.lastL1ToL2MessageTreeSnapshot, this.lastL1ToL2MessageSubtreeSiblingPath, this.lastArchiveSiblingPath)
|
|
248
247
|
};
|
|
249
248
|
} else {
|
|
250
249
|
return {
|
|
251
|
-
rollupType: 'block-root-first
|
|
250
|
+
rollupType: 'rollup-block-root-first',
|
|
252
251
|
inputs: new BlockRootFirstRollupPrivateInputs(l1ToL2Roots, [
|
|
253
252
|
leftRollup,
|
|
254
253
|
rightRollup
|
|
@@ -256,13 +255,13 @@ import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-hel
|
|
|
256
255
|
};
|
|
257
256
|
}
|
|
258
257
|
}
|
|
259
|
-
|
|
258
|
+
getParityRootInputs() {
|
|
260
259
|
const baseParityProvingOutputs = this.baseParityProofs.filter((p)=>!!p?.provingOutput).map((p)=>p.provingOutput);
|
|
261
260
|
if (baseParityProvingOutputs.length !== this.baseParityProofs.length) {
|
|
262
261
|
throw new Error('At lease one base parity is not ready.');
|
|
263
262
|
}
|
|
264
|
-
const children = baseParityProvingOutputs.map((p)=>
|
|
265
|
-
return new
|
|
263
|
+
const children = baseParityProvingOutputs.map((p)=>toProofData(p));
|
|
264
|
+
return new ParityRootPrivateInputs(assertLength(children, NUM_BASE_PARITY_PER_ROOT_PARITY));
|
|
266
265
|
}
|
|
267
266
|
// Returns a specific transaction proving state
|
|
268
267
|
getTxProvingState(txIndex) {
|
|
@@ -312,12 +311,4 @@ import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-hel
|
|
|
312
311
|
this.baseOrMergeProofs.getNode(rootLocation)?.provingOutput
|
|
313
312
|
] : this.baseOrMergeProofs.getChildren(rootLocation).map((c)=>c?.provingOutput);
|
|
314
313
|
}
|
|
315
|
-
#getPreviousRollupData({ inputs, proof, verificationKey }) {
|
|
316
|
-
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
317
|
-
const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
|
|
318
|
-
return new PreviousRollupData(inputs, proof, vkData);
|
|
319
|
-
}
|
|
320
|
-
#getRootParityData({ inputs, proof, verificationKey }) {
|
|
321
|
-
return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(getVKIndex(verificationKey)), inputs);
|
|
322
|
-
}
|
|
323
314
|
}
|
|
@@ -4,7 +4,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
4
4
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
5
5
|
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
6
6
|
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
7
|
-
import {
|
|
7
|
+
import { ParityBasePrivateInputs } from '@aztec/stdlib/parity';
|
|
8
8
|
import { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, CheckpointConstantData, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
9
9
|
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
10
10
|
import type { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
@@ -44,7 +44,7 @@ export declare class CheckpointProvingState {
|
|
|
44
44
|
setBlockMergeRollupProof(location: TreeNodeLocation, provingOutput: PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
45
45
|
tryStartProvingCheckpointRoot(): boolean;
|
|
46
46
|
setCheckpointRootRollupProof(provingOutput: PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
47
|
-
getBaseParityInputs(baseParityIndex: number):
|
|
47
|
+
getBaseParityInputs(baseParityIndex: number): ParityBasePrivateInputs;
|
|
48
48
|
accumulateBlobs(startBlobAccumulator: BatchedBlobAccumulator): Promise<BatchedBlobAccumulator | undefined>;
|
|
49
49
|
getEndBlobAccumulator(): BatchedBlobAccumulator | undefined;
|
|
50
50
|
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEtB,KAAK,2BAA2B,EAEjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,wCAAwC,EAC7C,KAAK,yCAAyC,EAE/C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAc,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"checkpoint-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, NUM_MSGS_PER_BASE_PARITY } from '@azt
|
|
|
3
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
4
|
import { BLS12Point, Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
6
|
-
import {
|
|
6
|
+
import { ParityBasePrivateInputs } from '@aztec/stdlib/parity';
|
|
7
7
|
import { BlockMergeRollupPrivateInputs, CheckpointRootRollupHints, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
8
8
|
import { accumulateBlobs, buildBlobHints, toProofData } from './block-building-helpers.js';
|
|
9
9
|
import { BlockProvingState } from './block-proving-state.js';
|
|
@@ -113,7 +113,7 @@ export class CheckpointProvingState {
|
|
|
113
113
|
}
|
|
114
114
|
getBaseParityInputs(baseParityIndex) {
|
|
115
115
|
const messages = padArrayEnd(this.l1ToL2Messages.slice(baseParityIndex * NUM_MSGS_PER_BASE_PARITY, (baseParityIndex + 1) * NUM_MSGS_PER_BASE_PARITY), Fr.ZERO, NUM_MSGS_PER_BASE_PARITY);
|
|
116
|
-
return new
|
|
116
|
+
return new ParityBasePrivateInputs(messages, this.constants.vkTreeRoot);
|
|
117
117
|
}
|
|
118
118
|
async accumulateBlobs(startBlobAccumulator) {
|
|
119
119
|
if (this.isAcceptingBlocks() || this.blocks.some((b)=>b.isAcceptingTxs())) {
|
|
@@ -142,7 +142,7 @@ export class CheckpointProvingState {
|
|
|
142
142
|
]);
|
|
143
143
|
}
|
|
144
144
|
getCheckpointRootRollupType() {
|
|
145
|
-
return this.totalNumBlocks === 1 ? 'checkpoint-root-single-block
|
|
145
|
+
return this.totalNumBlocks === 1 ? 'rollup-checkpoint-root-single-block' : 'rollup-checkpoint-root';
|
|
146
146
|
}
|
|
147
147
|
async getCheckpointRootRollupInputs() {
|
|
148
148
|
const proofs = this.#getChildProofsForRoot();
|
|
@@ -26,7 +26,6 @@ export type ProvingResult = {
|
|
|
26
26
|
export declare class EpochProvingState {
|
|
27
27
|
#private;
|
|
28
28
|
readonly epochNumber: number;
|
|
29
|
-
private readonly firstCheckpointNumber;
|
|
30
29
|
readonly totalNumCheckpoints: number;
|
|
31
30
|
private readonly finalBlobBatchingChallenges;
|
|
32
31
|
private onCheckpointBlobAccumulatorSet;
|
|
@@ -41,8 +40,8 @@ export declare class EpochProvingState {
|
|
|
41
40
|
private finalBatchedBlob;
|
|
42
41
|
private provingStateLifecycle;
|
|
43
42
|
readonly cachedTubeProofs: Map<string, Promise<PublicInputsAndRecursiveProof<PrivateToPublicKernelCircuitPublicInputs, 535>>>;
|
|
44
|
-
constructor(epochNumber: number,
|
|
45
|
-
startNewCheckpoint(constants: CheckpointConstantData, totalNumBlocks: number, totalNumBlobFields: number, previousBlockHeader: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>): CheckpointProvingState;
|
|
43
|
+
constructor(epochNumber: number, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, onCheckpointBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => void, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
|
|
44
|
+
startNewCheckpoint(checkpointIndex: number, constants: CheckpointConstantData, totalNumBlocks: number, totalNumBlobFields: number, previousBlockHeader: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>): CheckpointProvingState;
|
|
46
45
|
getCheckpointProvingState(index: number): CheckpointProvingState | undefined;
|
|
47
46
|
getCheckpointProvingStateByBlockNumber(blockNumber: number): CheckpointProvingState | undefined;
|
|
48
47
|
getBlockProvingStateByBlockNumber(blockNumber: number): import("./block-proving-state.js").BlockProvingState | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACxG,OAAO,KAAK,EACV,cAAc,EACd,wCAAwC,EAExC,yCAAyC,EAC1C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,kCAAkC,EAClC,oCAAoC,EACpC,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAStE,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F;;;;;GAKG;AACH,qBAAa,iBAAiB;;aA0BV,WAAW,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
|
17
17
|
* Captures resolve and reject callbacks to provide a promise base interface to the consumer of our proving.
|
|
18
18
|
*/ export class EpochProvingState {
|
|
19
19
|
epochNumber;
|
|
20
|
-
firstCheckpointNumber;
|
|
21
20
|
totalNumCheckpoints;
|
|
22
21
|
finalBlobBatchingChallenges;
|
|
23
22
|
onCheckpointBlobAccumulatorSet;
|
|
@@ -33,9 +32,8 @@ var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
|
33
32
|
provingStateLifecycle;
|
|
34
33
|
// Map from tx hash to tube proof promise. Used when kickstarting tube proofs before tx processing.
|
|
35
34
|
cachedTubeProofs;
|
|
36
|
-
constructor(epochNumber,
|
|
35
|
+
constructor(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges, onCheckpointBlobAccumulatorSet, completionCallback, rejectionCallback){
|
|
37
36
|
this.epochNumber = epochNumber;
|
|
38
|
-
this.firstCheckpointNumber = firstCheckpointNumber;
|
|
39
37
|
this.totalNumCheckpoints = totalNumCheckpoints;
|
|
40
38
|
this.finalBlobBatchingChallenges = finalBlobBatchingChallenges;
|
|
41
39
|
this.onCheckpointBlobAccumulatorSet = onCheckpointBlobAccumulatorSet;
|
|
@@ -49,17 +47,12 @@ var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
|
49
47
|
}
|
|
50
48
|
// Adds a block to the proving state, returns its index
|
|
51
49
|
// Will update the proving life cycle if this is the last block
|
|
52
|
-
startNewCheckpoint(constants, totalNumBlocks, totalNumBlobFields, previousBlockHeader, lastArchiveSiblingPath, l1ToL2Messages, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath, newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
throw new Error(`Unable to start a new checkpoint - checkpoint too old. Epoch started at ${this.firstCheckpointNumber.toNumber()}. Got ${slotNumber.toNumber()}.`);
|
|
50
|
+
startNewCheckpoint(checkpointIndex, constants, totalNumBlocks, totalNumBlobFields, previousBlockHeader, lastArchiveSiblingPath, l1ToL2Messages, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath, newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath) {
|
|
51
|
+
if (checkpointIndex >= this.totalNumCheckpoints) {
|
|
52
|
+
throw new Error(`Unable to start a new checkpoint at index ${checkpointIndex}. Expected at most ${this.totalNumCheckpoints} checkpoints.`);
|
|
56
53
|
}
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
throw new Error(`Unable to start a new checkpoint at index ${index}. Expected at most ${this.totalNumCheckpoints} checkpoints.`);
|
|
60
|
-
}
|
|
61
|
-
const checkpoint = new CheckpointProvingState(index, constants, totalNumBlocks, totalNumBlobFields, this.finalBlobBatchingChallenges, previousBlockHeader, lastArchiveSiblingPath, l1ToL2Messages, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath, newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath, this, this.onCheckpointBlobAccumulatorSet);
|
|
62
|
-
this.checkpoints[index] = checkpoint;
|
|
54
|
+
const checkpoint = new CheckpointProvingState(checkpointIndex, constants, totalNumBlocks, totalNumBlobFields, this.finalBlobBatchingChallenges, previousBlockHeader, lastArchiveSiblingPath, l1ToL2Messages, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath, newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath, this, this.onCheckpointBlobAccumulatorSet);
|
|
55
|
+
this.checkpoints[checkpointIndex] = checkpoint;
|
|
63
56
|
if (this.checkpoints.filter((c)=>!!c).length === this.totalNumCheckpoints) {
|
|
64
57
|
this.provingStateLifecycle = 1;
|
|
65
58
|
}
|
|
@@ -34,8 +34,8 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
34
34
|
get tracer(): Tracer;
|
|
35
35
|
getProverId(): EthAddress;
|
|
36
36
|
stop(): Promise<void>;
|
|
37
|
-
startNewEpoch(epochNumber: number,
|
|
38
|
-
startNewCheckpoint(constants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, totalNumBlobFields: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
|
|
37
|
+
startNewEpoch(epochNumber: number, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges): void;
|
|
38
|
+
startNewCheckpoint(checkpointIndex: number, constants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, totalNumBlobFields: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
|
|
39
39
|
/**
|
|
40
40
|
* Starts off a new block
|
|
41
41
|
* @param blockNumber - The block number
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,2BAA2B,EAAc,MAAM,iBAAiB,CAAC;AAUpH,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAQ9C,OAAO,EAAE,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAML,sBAAsB,EAItB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAQlE;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EAClB,QAAQ,EAAE,UAAU,EACrC,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,UAAU;IAIzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,CAClB,WAAW,EAAE,MAAM,EACnB,
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,2BAA2B,EAAc,MAAM,iBAAiB,CAAC;AAUpH,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAQ9C,OAAO,EAAE,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAML,sBAAsB,EAItB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAQlE;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EAClB,QAAQ,EAAE,UAAU,EACrC,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,UAAU;IAIzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,CAClB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B;IAsB7C,kBAAkB,CAC7B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,EAAE,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,qCAAqC,EAAE,WAAW;IA2CpD;;;;;;OAMG;IAIU,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAwDtF;;;OAGG;IAIU,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqFtD;;;OAGG;IAEI,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE;IAwBlC;;;OAGG;IAIU,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAgCzF,kBAAkB;cA6BhB,kCAAkC,CAAC,YAAY,EAAE,iBAAiB;IAuDlF;;OAEG;IACI,MAAM;IAQb;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC;QACpC,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;QACb,iBAAiB,EAAE,WAAW,CAAC;KAChC,CAAC;IAsBF;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YAwDT,uBAAuB;YAmCvB,uBAAuB;IAkCrC,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,sBAAsB;IAyD9B,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,wBAAwB;IAgChC,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,2BAA2B;IA6DnC,OAAO,CAAC,4BAA4B;IA+BpC,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,mCAAmC;IAa3C,OAAO,CAAC,mCAAmC;IAQ3C,OAAO,CAAC,wCAAwC;IAahD,OAAO,CAAC,yBAAyB;IASjC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAoDjB,OAAO,CAAC,yBAAyB;CAWlC"}
|
|
@@ -16,7 +16,7 @@ import { pushTestData } from '@aztec/foundation/testing';
|
|
|
16
16
|
import { elapsed } from '@aztec/foundation/timer';
|
|
17
17
|
import { readAvmMinimalPublicTxInputsFromFile } from '@aztec/simulator/public/fixtures';
|
|
18
18
|
import { createBlockEndMarker } from '@aztec/stdlib/block';
|
|
19
|
-
import { BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs,
|
|
19
|
+
import { BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs, PrivateTxBaseRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
20
20
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
21
21
|
import { Attributes, getTelemetryClient, trackSpan, wrapCallbackInSpan } from '@aztec/telemetry-client';
|
|
22
22
|
import { inspect } from 'util';
|
|
@@ -65,7 +65,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
65
65
|
this.cancel();
|
|
66
66
|
return Promise.resolve();
|
|
67
67
|
}
|
|
68
|
-
startNewEpoch(epochNumber,
|
|
68
|
+
startNewEpoch(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges) {
|
|
69
69
|
if (this.provingState?.verifyState()) {
|
|
70
70
|
throw new Error(`Cannot start epoch ${epochNumber} when epoch ${this.provingState.epochNumber} is still being processed.`);
|
|
71
71
|
}
|
|
@@ -75,10 +75,10 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
75
75
|
reason
|
|
76
76
|
}));
|
|
77
77
|
logger.info(`Starting epoch ${epochNumber} with ${totalNumCheckpoints} checkpoints.`);
|
|
78
|
-
this.provingState = new EpochProvingState(epochNumber,
|
|
78
|
+
this.provingState = new EpochProvingState(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges, (provingState)=>this.checkAndEnqueueCheckpointRootRollup(provingState), resolve, reject);
|
|
79
79
|
this.provingPromise = promise;
|
|
80
80
|
}
|
|
81
|
-
async startNewCheckpoint(constants, l1ToL2Messages, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint) {
|
|
81
|
+
async startNewCheckpoint(checkpointIndex, constants, l1ToL2Messages, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint) {
|
|
82
82
|
if (!this.provingState) {
|
|
83
83
|
throw new Error('Empty epoch proving state. Call startNewEpoch before starting a checkpoint.');
|
|
84
84
|
}
|
|
@@ -94,7 +94,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
94
94
|
const lastArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, db);
|
|
95
95
|
// Insert all the l1 to l2 messages into the db. And get the states before and after the insertion.
|
|
96
96
|
const { lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath, newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath } = await this.updateL1ToL2MessageTree(l1ToL2Messages, db);
|
|
97
|
-
this.provingState.startNewCheckpoint(constants, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint, lastArchiveSiblingPath, l1ToL2Messages, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath, newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath);
|
|
97
|
+
this.provingState.startNewCheckpoint(checkpointIndex, constants, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint, lastArchiveSiblingPath, l1ToL2Messages, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeSiblingPath, newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeSiblingPath);
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Starts off a new block
|
|
@@ -444,18 +444,18 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
444
444
|
const { processedTx } = txProvingState;
|
|
445
445
|
const { rollupType, inputs } = txProvingState.getBaseRollupTypeAndInputs();
|
|
446
446
|
logger.debug(`Enqueuing deferred proving base rollup for ${processedTx.hash.toString()}`);
|
|
447
|
-
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, `ProvingOrchestrator.prover.${inputs instanceof
|
|
447
|
+
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, `ProvingOrchestrator.prover.${inputs instanceof PrivateTxBaseRollupPrivateInputs ? 'getPrivateTxBaseRollupProof' : 'getPublicTxBaseRollupProof'}`, {
|
|
448
448
|
[Attributes.TX_HASH]: processedTx.hash.toString(),
|
|
449
449
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
|
|
450
450
|
}, (signal)=>{
|
|
451
|
-
if (inputs instanceof
|
|
452
|
-
return this.prover.
|
|
451
|
+
if (inputs instanceof PrivateTxBaseRollupPrivateInputs) {
|
|
452
|
+
return this.prover.getPrivateTxBaseRollupProof(inputs, signal, provingState.epochNumber);
|
|
453
453
|
} else {
|
|
454
|
-
return this.prover.
|
|
454
|
+
return this.prover.getPublicTxBaseRollupProof(inputs, signal, provingState.epochNumber);
|
|
455
455
|
}
|
|
456
456
|
}), (result)=>{
|
|
457
457
|
logger.debug(`Completed proof for ${rollupType} for tx ${processedTx.hash.toString()}`);
|
|
458
|
-
validatePartialState(result.inputs.
|
|
458
|
+
validatePartialState(result.inputs.endPartialState, txProvingState.treeSnapshots);
|
|
459
459
|
const leafLocation = provingState.setBaseRollupProof(txIndex, result);
|
|
460
460
|
if (provingState.totalNumTxs === 1) {
|
|
461
461
|
this.checkAndEnqueueBlockRootRollup(provingState);
|
|
@@ -499,7 +499,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
499
499
|
}
|
|
500
500
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getPublicTubeProof', {
|
|
501
501
|
[Attributes.TX_HASH]: txHash,
|
|
502
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'public
|
|
502
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'tube-public'
|
|
503
503
|
}, (signal)=>this.prover.getPublicTubeProof(inputs, signal, provingState.epochNumber)), handler);
|
|
504
504
|
}
|
|
505
505
|
// Executes the merge rollup circuit and stored the output as intermediate state for the parent merge/block root circuit
|
|
@@ -514,9 +514,9 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
514
514
|
return;
|
|
515
515
|
}
|
|
516
516
|
const inputs = provingState.getMergeRollupInputs(location);
|
|
517
|
-
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.
|
|
518
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'merge
|
|
519
|
-
}, (signal)=>this.prover.
|
|
517
|
+
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getTxMergeRollupProof', {
|
|
518
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-tx-merge'
|
|
519
|
+
}, (signal)=>this.prover.getTxMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
520
520
|
provingState.setMergeRollupProof(location, result);
|
|
521
521
|
this.checkAndEnqueueNextMergeRollup(provingState, location);
|
|
522
522
|
});
|
|
@@ -573,7 +573,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
573
573
|
}
|
|
574
574
|
const inputs = checkpointProvingState.getBaseParityInputs(baseParityIndex);
|
|
575
575
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBaseParityProof', {
|
|
576
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'base
|
|
576
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'parity-base'
|
|
577
577
|
}, (signal)=>this.prover.getBaseParityProof(inputs, signal, provingState.epochNumber)), (provingOutput)=>{
|
|
578
578
|
provingState.setBaseParityProof(baseParityIndex, provingOutput);
|
|
579
579
|
this.checkAndEnqueueRootParityCircuit(provingState);
|
|
@@ -596,9 +596,9 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
596
596
|
logger.debug('Root parity already started.');
|
|
597
597
|
return;
|
|
598
598
|
}
|
|
599
|
-
const inputs = provingState.
|
|
599
|
+
const inputs = provingState.getParityRootInputs();
|
|
600
600
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getRootParityProof', {
|
|
601
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'root
|
|
601
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'parity-root'
|
|
602
602
|
}, (signal)=>this.prover.getRootParityProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
603
603
|
provingState.setRootParityProof(result);
|
|
604
604
|
this.checkAndEnqueueBlockRootRollup(provingState);
|
|
@@ -617,7 +617,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
617
617
|
}
|
|
618
618
|
const inputs = provingState.getBlockMergeRollupInputs(location);
|
|
619
619
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBlockMergeRollupProof', {
|
|
620
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'block-merge
|
|
620
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-block-merge'
|
|
621
621
|
}, (signal)=>this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
622
622
|
provingState.setBlockMergeRollupProof(location, result);
|
|
623
623
|
this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
|
|
@@ -672,7 +672,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
672
672
|
}
|
|
673
673
|
const inputs = provingState.getCheckpointMergeRollupInputs(location);
|
|
674
674
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointMergeRollupProof', {
|
|
675
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'checkpoint-merge
|
|
675
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-checkpoint-merge'
|
|
676
676
|
}, (signal)=>this.prover.getCheckpointMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
677
677
|
logger.debug('Completed proof for checkpoint merge rollup.');
|
|
678
678
|
provingState.setCheckpointMergeRollupProof(location, result);
|
|
@@ -691,7 +691,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
691
691
|
logger.debug('Padding epoch proof with a padding block root proof.');
|
|
692
692
|
const inputs = provingState.getPaddingCheckpointInputs();
|
|
693
693
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointPaddingRollupProof', {
|
|
694
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'checkpoint-padding
|
|
694
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-checkpoint-padding'
|
|
695
695
|
}, (signal)=>this.prover.getCheckpointPaddingRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
696
696
|
logger.debug('Completed proof for padding checkpoint.');
|
|
697
697
|
provingState.setCheckpointPaddingProof(result);
|
|
@@ -707,7 +707,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
707
707
|
logger.debug(`Preparing root rollup`);
|
|
708
708
|
const inputs = provingState.getRootRollupInputs();
|
|
709
709
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getRootRollupProof', {
|
|
710
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'root
|
|
710
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-root'
|
|
711
711
|
}, (signal)=>this.prover.getRootRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
712
712
|
logger.verbose(`Orchestrator completed root rollup for epoch ${provingState.epochNumber}`);
|
|
713
713
|
provingState.setRootRollupProof(result);
|
|
@@ -2,7 +2,7 @@ import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_ROLLUP_HONK_PROO
|
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
3
|
import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
5
|
-
import { type BaseRollupHints,
|
|
5
|
+
import { type BaseRollupHints, PrivateTxBaseRollupPrivateInputs, PublicTxBaseRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
6
6
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
7
7
|
import type { ProcessedTx } from '@aztec/stdlib/tx';
|
|
8
8
|
/**
|
|
@@ -24,10 +24,10 @@ export declare class TxProvingState {
|
|
|
24
24
|
getPublicTubePrivateInputs(): import("@aztec/stdlib/rollup").PublicTubePrivateInputs;
|
|
25
25
|
getBaseRollupTypeAndInputs(): {
|
|
26
26
|
rollupType: string;
|
|
27
|
-
inputs:
|
|
27
|
+
inputs: PublicTxBaseRollupPrivateInputs;
|
|
28
28
|
} | {
|
|
29
29
|
rollupType: string;
|
|
30
|
-
inputs:
|
|
30
|
+
inputs: PrivateTxBaseRollupPrivateInputs;
|
|
31
31
|
};
|
|
32
32
|
setPublicTubeProof(publicTubeProofAndVk: PublicInputsAndRecursiveProof<PrivateToPublicKernelCircuitPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
33
33
|
setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EAEpC,yCAAyC,EAC1C,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAEL,KAAK,eAAe,EAEpB,
|
|
1
|
+
{"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EAEpC,yCAAyC,EAC1C,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAEL,KAAK,eAAe,EAEpB,gCAAgC,EAEhC,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD;;;;GAIG;AACH,qBAAa,cAAc;;aAQP,WAAW,EAAE,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAT1E,OAAO,CAAC,UAAU,CAAC,CAGjB;IACF,OAAO,CAAC,GAAG,CAAC,CAAuE;gBAGjE,WAAW,EAAE,WAAW,EACvB,eAAe,EAAE,eAAe,EACjC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAG1E,IAAI,eAAe,YAElB;IAEM,KAAK;IAIL,YAAY,IAAI,gBAAgB;IAIhC,0BAA0B;IAI1B,0BAA0B;;;;;;;IAc1B,kBAAkB,CACvB,oBAAoB,EAAE,6BAA6B,CACjD,wCAAwC,EACxC,OAAO,yCAAyC,CACjD;IAKI,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,OAAO,oCAAoC,CAAC;CA+CvG"}
|
|
@@ -2,7 +2,7 @@ import { AVM_VK_INDEX } from '@aztec/constants';
|
|
|
2
2
|
import { getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
3
3
|
import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
4
4
|
import { ProofData } from '@aztec/stdlib/proofs';
|
|
5
|
-
import { AvmProofData, PrivateBaseRollupHints,
|
|
5
|
+
import { AvmProofData, PrivateBaseRollupHints, PrivateTxBaseRollupPrivateInputs, PublicBaseRollupHints, PublicTxBaseRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
6
6
|
import { VkData } from '@aztec/stdlib/vks';
|
|
7
7
|
import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } from './block-building-helpers.js';
|
|
8
8
|
/**
|
|
@@ -35,12 +35,12 @@ import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } fro
|
|
|
35
35
|
getBaseRollupTypeAndInputs() {
|
|
36
36
|
if (this.requireAvmProof) {
|
|
37
37
|
return {
|
|
38
|
-
rollupType: '
|
|
38
|
+
rollupType: 'rollup-tx-base-public',
|
|
39
39
|
inputs: this.#getPublicBaseInputs()
|
|
40
40
|
};
|
|
41
41
|
} else {
|
|
42
42
|
return {
|
|
43
|
-
rollupType: '
|
|
43
|
+
rollupType: 'rollup-tx-base-private',
|
|
44
44
|
inputs: this.#getPrivateBaseInputs()
|
|
45
45
|
};
|
|
46
46
|
}
|
|
@@ -56,7 +56,7 @@ import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } fro
|
|
|
56
56
|
throw new Error('Mismatched base rollup hints, expected private base rollup hints');
|
|
57
57
|
}
|
|
58
58
|
const privateTailProofData = new ProofData(this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(), getCivcProofFromTx(this.processedTx), getVkData('HidingKernelToRollup'));
|
|
59
|
-
return new
|
|
59
|
+
return new PrivateTxBaseRollupPrivateInputs(privateTailProofData, this.baseRollupHints);
|
|
60
60
|
}
|
|
61
61
|
#getPublicBaseInputs() {
|
|
62
62
|
if (!this.processedTx.avmProvingRequest) {
|
|
@@ -73,7 +73,7 @@ import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } fro
|
|
|
73
73
|
}
|
|
74
74
|
const publicTubeProofData = toProofData(this.publicTube);
|
|
75
75
|
const avmProofData = new AvmProofData(this.processedTx.avmProvingRequest.inputs.publicInputs, this.avm.proof, this.#getVkData(this.avm.verificationKey, AVM_VK_INDEX));
|
|
76
|
-
return new
|
|
76
|
+
return new PublicTxBaseRollupPrivateInputs(publicTubeProofData, avmProofData, this.baseRollupHints);
|
|
77
77
|
}
|
|
78
78
|
#getVkData(verificationKey, vkIndex) {
|
|
79
79
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
@@ -13,8 +13,8 @@ export declare class ServerEpochProver implements EpochProver {
|
|
|
13
13
|
private facade;
|
|
14
14
|
private orchestrator;
|
|
15
15
|
constructor(facade: BrokerCircuitProverFacade, orchestrator: ProvingOrchestrator);
|
|
16
|
-
startNewEpoch(epochNumber: number,
|
|
17
|
-
startNewCheckpoint(constants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, totalNumBlobFields: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
|
|
16
|
+
startNewEpoch(epochNumber: number, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges): void;
|
|
17
|
+
startNewCheckpoint(checkpointIndex: number, constants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, totalNumBlobFields: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
|
|
18
18
|
startTubeCircuits(txs: Tx[]): Promise<void>;
|
|
19
19
|
setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<BlockHeader>;
|
|
20
20
|
finalizeEpoch(): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-epoch-prover.d.ts","sourceRoot":"","sources":["../../src/prover-client/server-epoch-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAE3F,kEAAkE;AAClE,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBADZ,MAAM,EAAE,yBAAyB,EACjC,YAAY,EAAE,mBAAmB;IAG3C,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,
|
|
1
|
+
{"version":3,"file":"server-epoch-prover.d.ts","sourceRoot":"","sources":["../../src/prover-client/server-epoch-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAE3F,kEAAkE;AAClE,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBADZ,MAAM,EAAE,yBAAyB,EACjC,YAAY,EAAE,mBAAmB;IAG3C,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,GACvD,IAAI;IAIP,kBAAkB,CAChB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,EAAE,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,qCAAqC,EAAE,WAAW,GACjD,OAAO,CAAC,IAAI,CAAC;IAUhB,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG3C,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAG/F,aAAa,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,iBAAiB,EAAE,WAAW,CAAA;KAAE,CAAC;IAGhH,MAAM,IAAI,IAAI;IAGd,WAAW,IAAI,UAAU;IAGnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGzF,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
this.facade = facade;
|
|
6
6
|
this.orchestrator = orchestrator;
|
|
7
7
|
}
|
|
8
|
-
startNewEpoch(epochNumber,
|
|
9
|
-
this.orchestrator.startNewEpoch(epochNumber,
|
|
8
|
+
startNewEpoch(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges) {
|
|
9
|
+
this.orchestrator.startNewEpoch(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges);
|
|
10
10
|
this.facade.start();
|
|
11
11
|
}
|
|
12
|
-
startNewCheckpoint(constants, l1ToL2Messages, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint) {
|
|
13
|
-
return this.orchestrator.startNewCheckpoint(constants, l1ToL2Messages, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint);
|
|
12
|
+
startNewCheckpoint(checkpointIndex, constants, l1ToL2Messages, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint) {
|
|
13
|
+
return this.orchestrator.startNewCheckpoint(checkpointIndex, constants, l1ToL2Messages, totalNumBlocks, totalNumBlobFields, headerOfLastBlockInPreviousCheckpoint);
|
|
14
14
|
}
|
|
15
15
|
startTubeCircuits(txs) {
|
|
16
16
|
return this.orchestrator.startTubeCircuits(txs);
|