@aztec/prover-client 4.0.0-devnet.1-patch.1 → 4.0.0-devnet.2-patch.0
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/light/lightweight_checkpoint_builder.d.ts +5 -4
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
- package/dest/light/lightweight_checkpoint_builder.js +13 -11
- package/dest/mocks/test_context.js +4 -1
- package/dest/orchestrator/block-building-helpers.d.ts +3 -3
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +2 -2
- package/dest/orchestrator/block-proving-state.d.ts +4 -1
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +7 -0
- package/dest/orchestrator/checkpoint-proving-state.d.ts +3 -3
- 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 -2
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.d.ts +2 -2
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +43 -52
- package/dest/test/mock_prover.d.ts +1 -1
- package/package.json +15 -15
- package/src/light/lightweight_checkpoint_builder.ts +10 -5
- package/src/mocks/test_context.ts +1 -1
- package/src/orchestrator/block-building-helpers.ts +2 -2
- package/src/orchestrator/block-proving-state.ts +9 -0
- package/src/orchestrator/checkpoint-proving-state.ts +4 -4
- package/src/orchestrator/epoch-proving-state.ts +1 -1
- package/src/orchestrator/orchestrator.ts +53 -59
|
@@ -14,6 +14,7 @@ import { type CheckpointGlobalVariables, type GlobalVariables, type ProcessedTx,
|
|
|
14
14
|
export declare class LightweightCheckpointBuilder {
|
|
15
15
|
readonly checkpointNumber: CheckpointNumber;
|
|
16
16
|
readonly constants: CheckpointGlobalVariables;
|
|
17
|
+
feeAssetPriceModifier: bigint;
|
|
17
18
|
readonly l1ToL2Messages: Fr[];
|
|
18
19
|
private readonly previousCheckpointOutHashes;
|
|
19
20
|
readonly db: MerkleTreeWriteOperations;
|
|
@@ -22,15 +23,15 @@ export declare class LightweightCheckpointBuilder {
|
|
|
22
23
|
private spongeBlob;
|
|
23
24
|
private blocks;
|
|
24
25
|
private blobFields;
|
|
25
|
-
constructor(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, bindings?: LoggerBindings);
|
|
26
|
-
static startNewCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, bindings?: LoggerBindings): Promise<LightweightCheckpointBuilder>;
|
|
26
|
+
constructor(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, bindings?: LoggerBindings);
|
|
27
|
+
static startNewCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, bindings?: LoggerBindings, feeAssetPriceModifier?: bigint): Promise<LightweightCheckpointBuilder>;
|
|
27
28
|
/**
|
|
28
29
|
* Resumes building a checkpoint from existing blocks. This is used for validator re-execution
|
|
29
30
|
* where blocks have already been built and their effects are already in the database.
|
|
30
31
|
* Unlike startNewCheckpoint, this does NOT append l1ToL2Messages to the tree since they
|
|
31
32
|
* were already added when the blocks were originally built.
|
|
32
33
|
*/
|
|
33
|
-
static resumeCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, existingBlocks: L2Block[], bindings?: LoggerBindings): Promise<LightweightCheckpointBuilder>;
|
|
34
|
+
static resumeCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, existingBlocks: L2Block[], bindings?: LoggerBindings): Promise<LightweightCheckpointBuilder>;
|
|
34
35
|
/** Returns how many blocks have been added to this checkpoint so far */
|
|
35
36
|
getBlockCount(): number;
|
|
36
37
|
/**
|
|
@@ -44,4 +45,4 @@ export declare class LightweightCheckpointBuilder {
|
|
|
44
45
|
completeCheckpoint(): Promise<Checkpoint>;
|
|
45
46
|
clone(): LightweightCheckpointBuilder;
|
|
46
47
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlnaHQvbGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUWpGLE9BQU8sRUFDTCxLQUFLLHlCQUF5QixFQUM5QixLQUFLLGVBQWUsRUFDcEIsS0FBSyxXQUFXLEVBQ2hCLGNBQWMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBUTFCOzs7OztHQUtHO0FBQ0gscUJBQWEsNEJBQTRCO2FBU3JCLGdCQUFnQixFQUFFLGdCQUFnQjthQUNsQyxTQUFTLEVBQUUseUJBQXlCO0lBQzdDLHFCQUFxQixFQUFFLE1BQU07YUFDcEIsY0FBYyxFQUFFLEVBQUUsRUFBRTtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLDJCQUEyQjthQUM1QixFQUFFLEVBQUUseUJBQXlCO0lBYi9DLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFTO0lBRWhDLE9BQU8sQ0FBQyxZQUFZLENBQWdDO0lBQ3BELE9BQU8sQ0FBQyxVQUFVLENBQWE7SUFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBaUI7SUFDL0IsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUU5QixZQUNrQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsU0FBUyxFQUFFLHlCQUF5QixFQUM3QyxxQkFBcUIsRUFBRSxNQUFNLEVBQ3BCLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFDbkIsMkJBQTJCLEVBQUUsRUFBRSxFQUFFLEVBQ2xDLEVBQUUsRUFBRSx5QkFBeUIsRUFDN0MsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQVExQjtJQUVELE9BQWEsa0JBQWtCLENBQzdCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxTQUFTLEVBQUUseUJBQXlCLEVBQ3BDLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFDcEIsMkJBQTJCLEVBQUUsRUFBRSxFQUFFLEVBQ2pDLEVBQUUsRUFBRSx5QkFBeUIsRUFDN0IsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUN6QixxQkFBcUIsR0FBRSxNQUFXLEdBQ2pDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQWdCdkM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQWEsZ0JBQWdCLENBQzNCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxTQUFTLEVBQUUseUJBQXlCLEVBQ3BDLHFCQUFxQixFQUFFLE1BQU0sRUFDN0IsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUNwQiwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsRUFDakMsRUFBRSxFQUFFLHlCQUF5QixFQUM3QixjQUFjLEVBQUUsT0FBTyxFQUFFLEVBQ3pCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBK0N2QztJQUVELHdFQUF3RTtJQUNqRSxhQUFhLFdBRW5CO0lBRUQ7OztPQUdHO0lBQ1UsUUFBUSxDQUNuQixlQUFlLEVBQUUsZUFBZSxFQUNoQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQ2xCLElBQUksR0FBRTtRQUFFLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO1FBQUMsZ0JBQWdCLENBQUMsRUFBRSxjQUFjLENBQUE7S0FBTyxHQUMzRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBaUVsQjtJQUVLLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0E2QzlDO0lBRUQsS0FBSyxpQ0FlSjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightweight_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/light/lightweight_checkpoint_builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAQjF,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAQ1B;;;;;GAKG;AACH,qBAAa,4BAA4B;aASrB,gBAAgB,EAAE,gBAAgB;aAClC,SAAS,EAAE,yBAAyB;
|
|
1
|
+
{"version":3,"file":"lightweight_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/light/lightweight_checkpoint_builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAQjF,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAQ1B;;;;;GAKG;AACH,qBAAa,4BAA4B;aASrB,gBAAgB,EAAE,gBAAgB;aAClC,SAAS,EAAE,yBAAyB;IAC7C,qBAAqB,EAAE,MAAM;aACpB,cAAc,EAAE,EAAE,EAAE;IACpC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;aAC5B,EAAE,EAAE,yBAAyB;IAb/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAE9B,YACkB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EAC7C,qBAAqB,EAAE,MAAM,EACpB,cAAc,EAAE,EAAE,EAAE,EACnB,2BAA2B,EAAE,EAAE,EAAE,EAClC,EAAE,EAAE,yBAAyB,EAC7C,QAAQ,CAAC,EAAE,cAAc,EAQ1B;IAED,OAAa,kBAAkB,CAC7B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,EAAE,EAAE,yBAAyB,EAC7B,QAAQ,CAAC,EAAE,cAAc,EACzB,qBAAqB,GAAE,MAAW,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAgBvC;IAED;;;;;OAKG;IACH,OAAa,gBAAgB,CAC3B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,qBAAqB,EAAE,MAAM,EAC7B,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,EAAE,EAAE,yBAAyB,EAC7B,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,4BAA4B,CAAC,CA+CvC;IAED,wEAAwE;IACjE,aAAa,WAEnB;IAED;;;OAGG;IACU,QAAQ,CACnB,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,WAAW,EAAE,EAClB,IAAI,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,cAAc,CAAA;KAAO,GAC3E,OAAO,CAAC,OAAO,CAAC,CAiElB;IAEK,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA6C9C;IAED,KAAK,iCAeJ;CACF"}
|
|
@@ -18,6 +18,7 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
18
18
|
*/ export class LightweightCheckpointBuilder {
|
|
19
19
|
checkpointNumber;
|
|
20
20
|
constants;
|
|
21
|
+
feeAssetPriceModifier;
|
|
21
22
|
l1ToL2Messages;
|
|
22
23
|
previousCheckpointOutHashes;
|
|
23
24
|
db;
|
|
@@ -26,9 +27,10 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
26
27
|
spongeBlob;
|
|
27
28
|
blocks;
|
|
28
29
|
blobFields;
|
|
29
|
-
constructor(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings){
|
|
30
|
+
constructor(checkpointNumber, constants, feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, db, bindings){
|
|
30
31
|
this.checkpointNumber = checkpointNumber;
|
|
31
32
|
this.constants = constants;
|
|
33
|
+
this.feeAssetPriceModifier = feeAssetPriceModifier;
|
|
32
34
|
this.l1ToL2Messages = l1ToL2Messages;
|
|
33
35
|
this.previousCheckpointOutHashes = previousCheckpointOutHashes;
|
|
34
36
|
this.db = db;
|
|
@@ -42,21 +44,22 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
42
44
|
this.spongeBlob = SpongeBlob.init();
|
|
43
45
|
this.logger.debug('Starting new checkpoint', {
|
|
44
46
|
constants,
|
|
45
|
-
l1ToL2Messages
|
|
47
|
+
l1ToL2Messages,
|
|
48
|
+
feeAssetPriceModifier
|
|
46
49
|
});
|
|
47
50
|
}
|
|
48
|
-
static async startNewCheckpoint(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings) {
|
|
51
|
+
static async startNewCheckpoint(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings, feeAssetPriceModifier = 0n) {
|
|
49
52
|
// Insert l1-to-l2 messages into the tree.
|
|
50
53
|
await db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
|
|
51
|
-
return new LightweightCheckpointBuilder(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings);
|
|
54
|
+
return new LightweightCheckpointBuilder(checkpointNumber, constants, feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, db, bindings);
|
|
52
55
|
}
|
|
53
56
|
/**
|
|
54
57
|
* Resumes building a checkpoint from existing blocks. This is used for validator re-execution
|
|
55
58
|
* where blocks have already been built and their effects are already in the database.
|
|
56
59
|
* Unlike startNewCheckpoint, this does NOT append l1ToL2Messages to the tree since they
|
|
57
60
|
* were already added when the blocks were originally built.
|
|
58
|
-
*/ static async resumeCheckpoint(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, existingBlocks, bindings) {
|
|
59
|
-
const builder = new LightweightCheckpointBuilder(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings);
|
|
61
|
+
*/ static async resumeCheckpoint(checkpointNumber, constants, feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, db, existingBlocks, bindings) {
|
|
62
|
+
const builder = new LightweightCheckpointBuilder(checkpointNumber, constants, feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, db, bindings);
|
|
60
63
|
builder.logger.debug('Resuming checkpoint from existing blocks', {
|
|
61
64
|
checkpointNumber,
|
|
62
65
|
numExistingBlocks: existingBlocks.length,
|
|
@@ -151,7 +154,7 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
151
154
|
const blocks = this.blocks;
|
|
152
155
|
const blockHeadersHash = await computeBlockHeadersHash(blocks.map((block)=>block.header));
|
|
153
156
|
const newArchive = this.lastArchives[this.lastArchives.length - 1];
|
|
154
|
-
const blobs = getBlobsPerL1Block(this.blobFields);
|
|
157
|
+
const blobs = await getBlobsPerL1Block(this.blobFields);
|
|
155
158
|
const blobsHash = computeBlobsHashFromBlobs(blobs);
|
|
156
159
|
const inHash = computeInHashFromL1ToL2Messages(this.l1ToL2Messages);
|
|
157
160
|
const { slotNumber, coinbase, feeRecipient, gasFees } = this.constants;
|
|
@@ -160,8 +163,7 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
160
163
|
...this.previousCheckpointOutHashes,
|
|
161
164
|
checkpointOutHash
|
|
162
165
|
]);
|
|
163
|
-
//
|
|
164
|
-
// timestamp of a checkpoint is the timestamp of the last block in the checkpoint.
|
|
166
|
+
// All blocks in the checkpoint have the same timestamp
|
|
165
167
|
const timestamp = blocks[blocks.length - 1].timestamp;
|
|
166
168
|
const totalManaUsed = blocks.reduce((acc, block)=>acc.add(block.header.totalManaUsed), Fr.ZERO);
|
|
167
169
|
const header = CheckpointHeader.from({
|
|
@@ -177,10 +179,10 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
177
179
|
gasFees,
|
|
178
180
|
totalManaUsed
|
|
179
181
|
});
|
|
180
|
-
return new Checkpoint(newArchive, header, blocks, this.checkpointNumber);
|
|
182
|
+
return new Checkpoint(newArchive, header, blocks, this.checkpointNumber, this.feeAssetPriceModifier);
|
|
181
183
|
}
|
|
182
184
|
clone() {
|
|
183
|
-
const clone = new LightweightCheckpointBuilder(this.checkpointNumber, this.constants, [
|
|
185
|
+
const clone = new LightweightCheckpointBuilder(this.checkpointNumber, this.constants, this.feeAssetPriceModifier, [
|
|
184
186
|
...this.l1ToL2Messages
|
|
185
187
|
], [
|
|
186
188
|
...this.previousCheckpointOutHashes
|
|
@@ -173,7 +173,10 @@ export class TestContext {
|
|
|
173
173
|
});
|
|
174
174
|
const cleanFork = await this.worldState.fork();
|
|
175
175
|
const previousCheckpointOutHashes = this.checkpointOutHashes;
|
|
176
|
-
const builder = await LightweightCheckpointBuilder.startNewCheckpoint(checkpointNumber,
|
|
176
|
+
const builder = await LightweightCheckpointBuilder.startNewCheckpoint(checkpointNumber, {
|
|
177
|
+
...constants,
|
|
178
|
+
timestamp
|
|
179
|
+
}, l1ToL2Messages, previousCheckpointOutHashes, cleanFork);
|
|
177
180
|
// Add tx effects to db and build block headers.
|
|
178
181
|
const blocks = [];
|
|
179
182
|
for(let i = 0; i < numBlocks; i++){
|
|
@@ -24,11 +24,11 @@ export declare const insertSideEffects: (tx: ProcessedTx, db: MerkleTreeWriteOpe
|
|
|
24
24
|
}>;
|
|
25
25
|
export declare function getChonkProofFromTx(tx: Tx | ProcessedTx): RecursiveProof<1935>;
|
|
26
26
|
export declare function getPublicChonkVerifierPrivateInputsFromTx(tx: Tx | ProcessedTx, proverId: Fr): PublicChonkVerifierPrivateInputs;
|
|
27
|
-
export declare const buildBlobHints: (blobFields: Fr[]) => {
|
|
27
|
+
export declare const buildBlobHints: (blobFields: Fr[]) => Promise<{
|
|
28
28
|
blobCommitments: import("@aztec/foundation/curves/bls12").BLS12Point[];
|
|
29
29
|
blobs: import("@aztec/blob-lib").Blob[];
|
|
30
30
|
blobsHash: Fr;
|
|
31
|
-
}
|
|
31
|
+
}>;
|
|
32
32
|
export declare const buildFinalBlobChallenges: (blobFieldsPerCheckpoint: Fr[][]) => Promise<import("@aztec/blob-lib").FinalBlobBatchingChallenges>;
|
|
33
33
|
export declare const accumulateBlobs: (blobFields: Fr[], startBlobAccumulator: BatchedBlobAccumulator) => Promise<BatchedBlobAccumulator>;
|
|
34
34
|
export declare const buildHeaderFromCircuitOutputs: (blockRootRollupOutput: BlockRollupPublicInputs) => Promise<BlockHeader>;
|
|
@@ -59,4 +59,4 @@ export declare function validatePartialState(partialState: PartialStateReference
|
|
|
59
59
|
export declare function validateTx(tx: ProcessedTx): void;
|
|
60
60
|
export declare function toProofData<T extends Bufferable, PROOF_LENGTH extends number>({ inputs, proof, verificationKey }: PublicInputsAndRecursiveProof<T, PROOF_LENGTH>, vkIndex?: number): ProofData<T, PROOF_LENGTH>;
|
|
61
61
|
export {};
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci9ibG9jay1idWlsZGluZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsVUFBVSxFQUtYLE1BQU0saUJBQWlCLENBQUM7QUFpQnpCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQWdDLE1BQU0sNkJBQTZCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEgsT0FBTyxFQUFTLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBRWpDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixZQUFZLEVBSWIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsS0FBSyxXQUFXLEVBQ2hCLGNBQWMsRUFDZCxFQUFFLEVBQ0gsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsS0FBSyxhQUFhLEdBQUcsY0FBYyxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7QUFDMUY7O0dBRUc7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7QUFHeEUsZUFBTyxNQUFNLHdDQUF3QyxtUEEwSHBELENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCOzs7RUFvQzdCLENBQUM7QUFFRix3QkFBZ0IsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLHdCQVF2RDtBQUVELHdCQUFnQix5Q0FBeUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxvQ0FPM0Y7QUFLRCxlQUFPLE1BQU0sY0FBYzs7OztFQUsxQixDQUFDO0FBRUYsZUFBTyxNQUFNLHdCQUF3QixxR0FFcEMsQ0FBQztBQUVGLGVBQU8sTUFBTSxlQUFlLHFHQU8zQixDQUFDO0FBRUYsZUFBTyxNQUFNLDZCQUE2QiwwRUEyQnpDLENBQUM7QUFFRixlQUFPLE1BQU0seUJBQXlCOzs7O0VBMERyQyxDQUFDO0FBRUYsd0JBQXNCLGtCQUFrQixDQUFDLEdBQUcsU0FBUyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsd0JBQXdCOzs7Ozs7U0FJM0c7QUFFRCx3QkFBc0Isc0JBQXNCLENBQUMsR0FBRyxTQUFTLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSx3QkFBd0I7Ozs7OztTQUkvRztBQUVELHdCQUFzQixlQUFlLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBR3JIO0FBRUQsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsd0JBTXJFO0FBRUQsd0JBQXNCLHFCQUFxQixDQUN6QyxNQUFNLEVBQUUsWUFBWSxFQUNwQixhQUFhLEVBQUUsTUFBTSxFQUNyQixFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQU1mO0FBR0Qsd0JBQXNCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQzVELEtBQUssRUFBRSxFQUFFLEVBQ1QsTUFBTSxFQUFFLFlBQVksRUFDcEIsTUFBTSxFQUFFLENBQUMsRUFDVCxFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQVkvQjtBQUVELHdCQUFnQixvQkFBb0IsQ0FDbEMsWUFBWSxFQUFFLHFCQUFxQixFQUNuQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxRQVN6RDtBQXFCRCx3QkFBZ0IsVUFBVSxDQUFDLEVBQUUsRUFBRSxXQUFXLFFBY3pDO0FBRUQsd0JBQWdCLFdBQVcsQ0FBQyxDQUFDLFNBQVMsVUFBVSxFQUFFLFlBQVksU0FBUyxNQUFNLEVBQzNFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQ2xGLE9BQU8sQ0FBQyxFQUFFLE1BQU0sOEJBS2pCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,UAAU,EAKX,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAgC,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI5D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhH,OAAO,EAAS,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,gCAAgC,EAEjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,YAAY,EAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,KAAK,WAAW,EAChB,cAAc,EACd,EAAE,EACH,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,KAAK,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC1F;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAGxE,eAAO,MAAM,wCAAwC,mPA0HpD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;EAoC7B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,WAAW,wBAQvD;AAED,wBAAgB,yCAAyC,CAAC,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,EAAE,oCAO3F;AAKD,eAAO,MAAM,cAAc;;;;
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,8 +116,8 @@ export function getPublicChonkVerifierPrivateInputsFromTx(tx, proverId) {
|
|
|
116
116
|
// Build "hints" as the private inputs for the checkpoint root rollup circuit.
|
|
117
117
|
// The `blobCommitments` will be accumulated and checked in the root rollup against the `finalBlobChallenges`.
|
|
118
118
|
// The `blobsHash` will be validated on L1 against the submitted blob data.
|
|
119
|
-
export const buildBlobHints = (blobFields)=>{
|
|
120
|
-
const blobs = getBlobsPerL1Block(blobFields);
|
|
119
|
+
export const buildBlobHints = async (blobFields)=>{
|
|
120
|
+
const blobs = await getBlobsPerL1Block(blobFields);
|
|
121
121
|
const blobCommitments = getBlobCommitmentsFromBlobs(blobs);
|
|
122
122
|
const blobsHash = computeBlobsHashFromBlobs(blobs);
|
|
123
123
|
return {
|
|
@@ -40,6 +40,7 @@ export declare class BlockProvingState {
|
|
|
40
40
|
private rootParityProof;
|
|
41
41
|
private blockRootProof;
|
|
42
42
|
private builtBlockHeader;
|
|
43
|
+
private builtArchive;
|
|
43
44
|
private endState;
|
|
44
45
|
private endSpongeBlob;
|
|
45
46
|
private txs;
|
|
@@ -63,6 +64,8 @@ export declare class BlockProvingState {
|
|
|
63
64
|
getBlockRootRollupOutput(): BlockRollupPublicInputs | undefined;
|
|
64
65
|
buildBlockHeader(): Promise<BlockHeader>;
|
|
65
66
|
getBuiltBlockHeader(): BlockHeader | undefined;
|
|
67
|
+
setBuiltArchive(archive: AppendOnlyTreeSnapshot): void;
|
|
68
|
+
getBuiltArchive(): AppendOnlyTreeSnapshot | undefined;
|
|
66
69
|
getStartSpongeBlob(): SpongeBlob;
|
|
67
70
|
setEndSpongeBlob(endSpongeBlob: SpongeBlob): void;
|
|
68
71
|
getEndSpongeBlob(): SpongeBlob | undefined;
|
|
@@ -95,4 +98,4 @@ export declare class BlockProvingState {
|
|
|
95
98
|
getError(): string | undefined;
|
|
96
99
|
reject(reason: string): void;
|
|
97
100
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvdmluZy1zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci9ibG9jay1wcm92aW5nLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBRSxLQUFLLGdCQUFnQixFQUFFLEtBQUssVUFBVSxFQUEwQixNQUFNLGlCQUFpQixDQUFDO0FBQ3JILE9BQU8sRUFDTCxLQUFLLGNBQWMsRUFDbkIsS0FBSyw2Q0FBNkMsRUFFbEQsS0FBSyx5Q0FBeUMsRUFFL0MsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBdUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix3Q0FBd0MsRUFFeEMsNEJBQTRCLEVBRTVCLG9DQUFvQyxFQUNwQyxzQkFBc0IsRUFDdEIsMEJBQTBCLEVBQzFCLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBbUIsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbEQsT0FBTyxLQUFL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAA0B,MAAM,iBAAiB,CAAC;AACrH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,6CAA6C,EAElD,KAAK,yCAAyC,EAE/C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AACrF,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,WAAW,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,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;;
|
|
1
|
+
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-hel
|
|
|
29
29
|
rootParityProof;
|
|
30
30
|
blockRootProof;
|
|
31
31
|
builtBlockHeader;
|
|
32
|
+
builtArchive;
|
|
32
33
|
endState;
|
|
33
34
|
endSpongeBlob;
|
|
34
35
|
txs;
|
|
@@ -178,6 +179,12 @@ import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-hel
|
|
|
178
179
|
getBuiltBlockHeader() {
|
|
179
180
|
return this.builtBlockHeader;
|
|
180
181
|
}
|
|
182
|
+
setBuiltArchive(archive) {
|
|
183
|
+
this.builtArchive = archive;
|
|
184
|
+
}
|
|
185
|
+
getBuiltArchive() {
|
|
186
|
+
return this.builtArchive;
|
|
187
|
+
}
|
|
181
188
|
getStartSpongeBlob() {
|
|
182
189
|
return this.startSpongeBlob;
|
|
183
190
|
}
|
|
@@ -43,7 +43,7 @@ export declare class CheckpointProvingState {
|
|
|
43
43
|
private blobFields;
|
|
44
44
|
private error;
|
|
45
45
|
readonly firstBlockNumber: BlockNumber;
|
|
46
|
-
constructor(index: number, constants: CheckpointConstantData, totalNumBlocks: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, headerOfLastBlockInPreviousCheckpoint: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, parentEpoch: EpochProvingState, onBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => void);
|
|
46
|
+
constructor(index: number, constants: CheckpointConstantData, totalNumBlocks: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, headerOfLastBlockInPreviousCheckpoint: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, parentEpoch: EpochProvingState, onBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => Promise<void>);
|
|
47
47
|
get epochNumber(): number;
|
|
48
48
|
startNewBlock(blockNumber: BlockNumber, timestamp: UInt64, totalNumTxs: number, lastArchiveTreeSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>): BlockProvingState;
|
|
49
49
|
isAcceptingBlocks(): boolean;
|
|
@@ -63,7 +63,7 @@ export declare class CheckpointProvingState {
|
|
|
63
63
|
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
64
64
|
getBlockMergeRollupInputs(mergeLocation: TreeNodeLocation): BlockMergeRollupPrivateInputs;
|
|
65
65
|
getCheckpointRootRollupType(): CircuitName;
|
|
66
|
-
getCheckpointRootRollupInputs(): CheckpointRootRollupPrivateInputs | CheckpointRootSingleBlockRollupPrivateInputs
|
|
66
|
+
getCheckpointRootRollupInputs(): Promise<CheckpointRootRollupPrivateInputs | CheckpointRootSingleBlockRollupPrivateInputs>;
|
|
67
67
|
getBlockProvingStateByBlockNumber(blockNumber: BlockNumber): BlockProvingState | undefined;
|
|
68
68
|
isReadyForBlockMerge(location: TreeNodeLocation): boolean;
|
|
69
69
|
isReadyForCheckpointRoot(): boolean;
|
|
@@ -73,4 +73,4 @@ export declare class CheckpointProvingState {
|
|
|
73
73
|
reject(reason: string): void;
|
|
74
74
|
}
|
|
75
75
|
export {};
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC1wcm92aW5nLXN0YXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL2NoZWNrcG9pbnQtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLEtBQUssMkJBQTJCLEVBR2pDLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUduQixLQUFLLDZDQUE2QyxFQUNsRCxLQUFLLHlDQUF5QyxFQUU5QyxvQkFBb0IsRUFDckIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF1QixNQUFNLHlCQUF5QixDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUU1QixpQ0FBaUMsRUFDakMsNENBQTRDLEVBQzdDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-proving-state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"checkpoint-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,EAGjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,6CAA6C,EAClD,KAAK,yCAAyC,EAE9C,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,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;AAErF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAE5B,iCAAiC,EACjC,4CAA4C,EAC7C,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,sBAAsB,CAAC;IACrC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,oBAAoB,CAAC,CAAC;CACrD,CAAC;AAEF,qBAAa,sBAAsB;;aAoBf,KAAK,EAAE,MAAM;aACb,SAAS,EAAE,sBAAsB;aACjC,cAAc,EAAE,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,qCAAqC;IACtD,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,6BAA6B;IAC9C,OAAO,CAAC,QAAQ,CAAC,uCAAuC;IAKxD,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAC7C,OAAO,CAAC,QAAQ,CAAC,sCAAsC;IAIhD,WAAW,EAAE,iBAAiB;IACrC,OAAO,CAAC,oBAAoB;IAvC9B,OAAO,CAAC,WAAW,CAEjB;IACF,OAAO,CAAC,mBAAmB,CAEb;IACd,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,OAAO,CAAiB;IAGhC,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,KAAK,CAAqB;IAClC,SAAgB,gBAAgB,EAAE,WAAW,CAAC;IAE9C,YACkB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,MAAM,EACrB,2BAA2B,EAAE,2BAA2B,EACxD,qCAAqC,EAAE,WAAW,EAClD,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EACxD,cAAc,EAAE,EAAE,EAAE,EAEpB,6BAA6B,EAAE,sBAAsB,EACrD,uCAAuC,EAAE,KAAK,CAC7D,EAAE,EACF,OAAO,6CAA6C,CACrD,EAEgB,4BAA4B,EAAE,sBAAsB,EACpD,sCAAsC,EAAE,KAAK,CAC5D,EAAE,EACF,OAAO,6CAA6C,CACrD,EACM,WAAW,EAAE,iBAAiB,EAC7B,oBAAoB,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,EAIpF;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAEM,aAAa,CAClB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,uBAAuB,EAAE,sBAAsB,EAC/C,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,GACvD,iBAAiB,CAuCnB;IAGM,iBAAiB,YAEvB;IAEM,uBAAuB,CAC5B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,6BAA6B,CAC1C,uBAAuB,EACvB,OAAO,yCAAyC,CACjD,GACA,gBAAgB,CAElB;IAEM,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,WAO1D;IAEM,wBAAwB,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,6BAA6B,CAC1C,uBAAuB,EACvB,OAAO,yCAAyC,CACjD,QAGF;IAEM,6BAA6B,YAOnC;IAEM,4BAA4B,CACjC,aAAa,EAAE,6BAA6B,CAC1C,4BAA4B,EAC5B,OAAO,yCAAyC,CACjD,GACA,gBAAgB,CAGlB;IAEM,mBAAmB,CAAC,eAAe,EAAE,MAAM,2BAUjD;IAEM,cAAc,CAAC,IAAI,EAAE,WAAW,QAEtC;IAEM,cAAc,4BAEpB;IAEM,wBAAwB,mBAW9B;IAEM,+BAA+B,CAAC,IAAI,EAAE,WAAW,QAEvD;IAEM,+BAA+B,4BAErC;IAEY,eAAe,CAAC,oBAAoB,EAAE,sBAAsB,+CAYxE;IAEM,qBAAqB,uCAE3B;IAEM,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,oBAElD;IAEM,yBAAyB,CAAC,aAAa,EAAE,gBAAgB,iCAO/D;IAEM,2BAA2B,IAAI,WAAW,CAEhD;IAEY,6BAA6B,8FAmCzC;IAEM,iCAAiC,CAAC,WAAW,EAAE,WAAW,iCAGhE;IAEM,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,WAErD;IAEM,wBAAwB,YAG9B;IAEM,WAAW,YAEjB;IAEM,QAAQ,uBAEd;IAGM,MAAM,SAEZ;IAEM,MAAM,CAAC,MAAM,EAAE,MAAM,QAG3B;CAQF"}
|
|
@@ -151,7 +151,7 @@ export class CheckpointProvingState {
|
|
|
151
151
|
this.blobFields = encodeCheckpointBlobDataFromBlocks(this.blocks.map((b)=>b.getBlockBlobData()));
|
|
152
152
|
this.endBlobAccumulator = await accumulateBlobs(this.blobFields, startBlobAccumulator);
|
|
153
153
|
this.startBlobAccumulator = startBlobAccumulator;
|
|
154
|
-
this.onBlobAccumulatorSet(this);
|
|
154
|
+
await this.onBlobAccumulatorSet(this);
|
|
155
155
|
return this.endBlobAccumulator;
|
|
156
156
|
}
|
|
157
157
|
getEndBlobAccumulator() {
|
|
@@ -173,7 +173,7 @@ export class CheckpointProvingState {
|
|
|
173
173
|
getCheckpointRootRollupType() {
|
|
174
174
|
return this.totalNumBlocks === 1 ? 'rollup-checkpoint-root-single-block' : 'rollup-checkpoint-root';
|
|
175
175
|
}
|
|
176
|
-
getCheckpointRootRollupInputs() {
|
|
176
|
+
async getCheckpointRootRollupInputs() {
|
|
177
177
|
const proofs = this.#getChildProofsForRoot();
|
|
178
178
|
const nonEmptyProofs = proofs.filter((p)=>!!p);
|
|
179
179
|
if (proofs.length !== nonEmptyProofs.length) {
|
|
@@ -187,7 +187,7 @@ export class CheckpointProvingState {
|
|
|
187
187
|
}
|
|
188
188
|
// `blobFields` must've been set if `startBlobAccumulator` is set (in `accumulateBlobs`).
|
|
189
189
|
const blobFields = this.blobFields;
|
|
190
|
-
const { blobCommitments, blobsHash } = buildBlobHints(blobFields);
|
|
190
|
+
const { blobCommitments, blobsHash } = await buildBlobHints(blobFields);
|
|
191
191
|
const hints = CheckpointRootRollupHints.from({
|
|
192
192
|
previousBlockHeader: this.headerOfLastBlockInPreviousCheckpoint,
|
|
193
193
|
previousArchiveSiblingPath: this.lastArchiveSiblingPath,
|
|
@@ -40,7 +40,7 @@ export declare class EpochProvingState {
|
|
|
40
40
|
private finalBatchedBlob;
|
|
41
41
|
private provingStateLifecycle;
|
|
42
42
|
readonly cachedChonkVerifierProofs: Map<string, Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, 519>>>;
|
|
43
|
-
constructor(epochNumber: EpochNumber, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, onCheckpointBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => void
|
|
43
|
+
constructor(epochNumber: EpochNumber, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, onCheckpointBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => Promise<void>, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
|
|
44
44
|
startNewCheckpoint(checkpointIndex: number, constants: CheckpointConstantData, totalNumBlocks: number, previousBlockHeader: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>): CheckpointProvingState;
|
|
45
45
|
getCheckpointProvingState(index: number): CheckpointProvingState | undefined;
|
|
46
46
|
getCheckpointProvingStateByBlockNumber(blockNumber: BlockNumber): CheckpointProvingState | undefined;
|
|
@@ -72,4 +72,4 @@ export declare class EpochProvingState {
|
|
|
72
72
|
reject(reason: string): void;
|
|
73
73
|
resolve(result: ProvingResult): void;
|
|
74
74
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci9lcG9jaC1wcm92aW5nLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQTBCLEtBQUssMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RyxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssNkNBQTZDLEVBRWxELEtBQUsseUNBQXlDLEVBRS9DLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUVMLEtBQUssZ0JBQWdCLEVBR3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGtDQUFrQyxFQUNsQyxvQ0FBb0MsRUFDcEMsNEJBQTRCLEVBQzVCLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsS0FBSyxzQkFBc0IsRUFDNUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RSxNQUFNLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FB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
|
|
@@ -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,EACL,KAAK,cAAc,EACnB,KAAK,6CAA6C,EAElD,KAAK,yCAAyC,EAE/C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,kCAAkC,EAClC,oCAAoC,EACpC,4BAA4B,EAC5B,+BAA+B,EAC/B,uBAAuB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,KAAK,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;;aAuBV,WAAW,EAAE,WAAW;aACxB,mBAAmB,EAAE,MAAM;IAC3C,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,8BAA8B;IACtC,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,iBAAiB;IA3B3B,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,sBAAsB,CAEhB;IACd,OAAO,CAAC,eAAe,CAAuF;IAC9G,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,qBAAqB,CAAiD;IAG9E,SAAgB,yBAAyB,4FAKrC;IAEJ,YACkB,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,MAAM,EAC1B,2BAA2B,EAAE,2BAA2B,EACjE,8BAA8B,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,7 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
79
79
|
* If cancelJobsOnStop is false (default), jobs remain in the broker queue and can be reused on restart/reorg.
|
|
80
80
|
*/
|
|
81
81
|
cancel(): void;
|
|
82
|
+
private getDbForBlock;
|
|
82
83
|
/**
|
|
83
84
|
* Returns the proof for the current epoch.
|
|
84
85
|
*/
|
|
@@ -87,7 +88,6 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
87
88
|
proof: Proof;
|
|
88
89
|
batchedBlobInputs: BatchedBlob;
|
|
89
90
|
}>;
|
|
90
|
-
private cleanupDBFork;
|
|
91
91
|
/**
|
|
92
92
|
* Enqueue a job to be scheduled
|
|
93
93
|
* @param provingState - The proving state object being operated on
|
|
@@ -125,4 +125,4 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
125
125
|
private enqueueVM;
|
|
126
126
|
private checkAndEnqueueBaseRollup;
|
|
127
127
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JjaGVzdHJhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFRN0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTXZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBTUwsc0JBQXNCLEVBS3RCLHNCQUFzQixFQUN2QixNQUFNLHNCQUFzQixDQUFDO0FBRzlCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUVMLEtBQUssZUFBZSxFQUNwQixLQUFLLE1BQU0sRUFJWixNQUFNLHlCQUF5QixDQUFDO0FBZWpDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFNbEU7Ozs7Ozs7OztHQVNHO0FBRUg7O0dBRUc7QUFDSCxxQkFBYSxtQkFBb0IsWUFBVyxXQUFXO0lBV25ELE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxNQUFNO0lB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAc,MAAM,uBAAuB,CAAC;AAQ7F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAMvF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAML,sBAAsB,EAKtB,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;AAejC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -506,10 +506,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
506
506
|
const lastBlockNumber = headerOfLastBlockInPreviousCheckpoint.globalVariables.blockNumber;
|
|
507
507
|
const db = await this.dbProvider.fork(lastBlockNumber);
|
|
508
508
|
const firstBlockNumber = BlockNumber(lastBlockNumber + 1);
|
|
509
|
-
this.dbs.set(firstBlockNumber,
|
|
510
|
-
fork: db,
|
|
511
|
-
cleanupPromise: undefined
|
|
512
|
-
});
|
|
509
|
+
this.dbs.set(firstBlockNumber, db);
|
|
513
510
|
// Get archive sibling path before any block in this checkpoint lands.
|
|
514
511
|
const lastArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, db);
|
|
515
512
|
// Insert all the l1 to l2 messages into the db. And get the states before and after the insertion.
|
|
@@ -539,12 +536,9 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
539
536
|
if (!this.dbs.has(blockNumber)) {
|
|
540
537
|
// Fork world state at the end of the immediately previous block
|
|
541
538
|
const db = await this.dbProvider.fork(BlockNumber(blockNumber - 1));
|
|
542
|
-
this.dbs.set(blockNumber,
|
|
543
|
-
fork: db,
|
|
544
|
-
cleanupPromise: undefined
|
|
545
|
-
});
|
|
539
|
+
this.dbs.set(blockNumber, db);
|
|
546
540
|
}
|
|
547
|
-
const db = this.
|
|
541
|
+
const db = this.getDbForBlock(blockNumber);
|
|
548
542
|
// Get archive snapshot and sibling path before any txs in this block lands.
|
|
549
543
|
const lastArchiveTreeSnapshot = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
550
544
|
const lastArchiveSiblingPath = await getRootTreeSiblingPath(MerkleTreeId.ARCHIVE, db);
|
|
@@ -594,7 +588,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
594
588
|
throw new Error(`Block ${blockNumber} has been initialized with transactions.`);
|
|
595
589
|
}
|
|
596
590
|
this.logger.info(`Adding ${txs.length} transactions to block ${blockNumber}`);
|
|
597
|
-
const db = this.
|
|
591
|
+
const db = this.getDbForBlock(blockNumber);
|
|
598
592
|
const lastArchive = provingState.lastArchiveTreeSnapshot;
|
|
599
593
|
const newL1ToL2MessageTreeSnapshot = provingState.newL1ToL2MessageTreeSnapshot;
|
|
600
594
|
const spongeBlobState = provingState.getStartSpongeBlob().clone();
|
|
@@ -683,11 +677,17 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
683
677
|
this.logger.error(`Block header mismatch: header=${header} expectedHeader=${expectedHeader}`);
|
|
684
678
|
throw new Error('Block header mismatch');
|
|
685
679
|
}
|
|
686
|
-
// Get db for this block
|
|
687
|
-
const db = this.
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
680
|
+
// Get db for this block and remove from map — no other code should use it after this point.
|
|
681
|
+
const db = this.getDbForBlock(provingState.blockNumber);
|
|
682
|
+
this.dbs.delete(provingState.blockNumber);
|
|
683
|
+
// Update the archive tree, capture the snapshot, and close the fork deterministically.
|
|
684
|
+
try {
|
|
685
|
+
this.logger.verbose(`Updating archive tree with block ${provingState.blockNumber} header ${(await header.hash()).toString()}`);
|
|
686
|
+
await db.updateArchive(header);
|
|
687
|
+
provingState.setBuiltArchive(await getTreeSnapshot(MerkleTreeId.ARCHIVE, db));
|
|
688
|
+
} finally{
|
|
689
|
+
await db.close();
|
|
690
|
+
}
|
|
691
691
|
await this.verifyBuiltBlockAgainstSyncedState(provingState);
|
|
692
692
|
return header;
|
|
693
693
|
}
|
|
@@ -703,16 +703,18 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
703
703
|
this.logger.debug('Block root rollup proof not built yet, skipping header check.');
|
|
704
704
|
return;
|
|
705
705
|
}
|
|
706
|
+
const newArchive = provingState.getBuiltArchive();
|
|
707
|
+
if (!newArchive) {
|
|
708
|
+
this.logger.debug('Archive snapshot not yet captured, skipping header check.');
|
|
709
|
+
return;
|
|
710
|
+
}
|
|
706
711
|
const header = await buildHeaderFromCircuitOutputs(output);
|
|
707
712
|
if (!(await header.hash()).equals(await builtBlockHeader.hash())) {
|
|
708
713
|
this.logger.error(`Block header mismatch.\nCircuit: ${inspect(header)}\nComputed: ${inspect(builtBlockHeader)}`);
|
|
709
714
|
provingState.reject(`Block header hash mismatch.`);
|
|
710
715
|
return;
|
|
711
716
|
}
|
|
712
|
-
// Get db for this block
|
|
713
717
|
const blockNumber = provingState.blockNumber;
|
|
714
|
-
const db = this.dbs.get(blockNumber).fork;
|
|
715
|
-
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
716
718
|
const syncedArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.dbProvider.getSnapshot(blockNumber));
|
|
717
719
|
if (!syncedArchive.equals(newArchive)) {
|
|
718
720
|
this.logger.error(`Archive tree mismatch for block ${blockNumber}: world state synced to ${inspect(syncedArchive)} but built ${inspect(newArchive)}`);
|
|
@@ -725,11 +727,6 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
725
727
|
provingState.reject(`New archive mismatch.`);
|
|
726
728
|
return;
|
|
727
729
|
}
|
|
728
|
-
// TODO(palla/prover): This closes the fork only on the happy path. If this epoch orchestrator
|
|
729
|
-
// is aborted and never reaches this point, it will leak the fork. We need to add a global cleanup,
|
|
730
|
-
// but have to make sure it only runs once all operations are completed, otherwise some function here
|
|
731
|
-
// will attempt to access the fork after it was closed.
|
|
732
|
-
void this.cleanupDBFork(blockNumber);
|
|
733
730
|
}
|
|
734
731
|
/**
|
|
735
732
|
* Cancel any further proving.
|
|
@@ -742,6 +739,17 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
742
739
|
}
|
|
743
740
|
}
|
|
744
741
|
this.provingState?.cancel();
|
|
742
|
+
for (const [blockNumber, db] of this.dbs.entries()){
|
|
743
|
+
void db.close().catch((err)=>this.logger.error(`Error closing db for block ${blockNumber}`, err));
|
|
744
|
+
}
|
|
745
|
+
this.dbs.clear();
|
|
746
|
+
}
|
|
747
|
+
getDbForBlock(blockNumber) {
|
|
748
|
+
const db = this.dbs.get(blockNumber);
|
|
749
|
+
if (!db) {
|
|
750
|
+
throw new Error(`World state fork for block ${blockNumber} not found.`);
|
|
751
|
+
}
|
|
752
|
+
return db;
|
|
745
753
|
}
|
|
746
754
|
/**
|
|
747
755
|
* Returns the proof for the current epoch.
|
|
@@ -761,22 +769,6 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
761
769
|
});
|
|
762
770
|
return epochProofResult;
|
|
763
771
|
}
|
|
764
|
-
async cleanupDBFork(blockNumber) {
|
|
765
|
-
this.logger.debug(`Cleaning up world state fork for ${blockNumber}`);
|
|
766
|
-
const fork = this.dbs.get(blockNumber);
|
|
767
|
-
if (!fork) {
|
|
768
|
-
return;
|
|
769
|
-
}
|
|
770
|
-
try {
|
|
771
|
-
if (!fork.cleanupPromise) {
|
|
772
|
-
fork.cleanupPromise = fork.fork.close();
|
|
773
|
-
}
|
|
774
|
-
await fork.cleanupPromise;
|
|
775
|
-
this.dbs.delete(blockNumber);
|
|
776
|
-
} catch (err) {
|
|
777
|
-
this.logger.error(`Error closing db for block ${blockNumber}`, err);
|
|
778
|
-
}
|
|
779
|
-
}
|
|
780
772
|
/**
|
|
781
773
|
* Enqueue a job to be scheduled
|
|
782
774
|
* @param provingState - The proving state object being operated on
|
|
@@ -988,15 +980,14 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
988
980
|
this.logger.debug(`Completed ${rollupType} proof for block ${provingState.blockNumber}`);
|
|
989
981
|
const leafLocation = provingState.setBlockRootRollupProof(result);
|
|
990
982
|
const checkpointProvingState = provingState.parentCheckpoint;
|
|
991
|
-
//
|
|
983
|
+
// Verification is called from both here and setBlockCompleted. Whichever runs last
|
|
984
|
+
// will be the first to see all three pieces (header, proof output, archive) and run the checks.
|
|
992
985
|
await this.verifyBuiltBlockAgainstSyncedState(provingState);
|
|
993
986
|
if (checkpointProvingState.totalNumBlocks === 1) {
|
|
994
|
-
this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
|
|
987
|
+
await this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
|
|
995
988
|
} else {
|
|
996
|
-
this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
|
|
989
|
+
await this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
|
|
997
990
|
}
|
|
998
|
-
// We are finished with the block at this point, ensure the fork is cleaned up
|
|
999
|
-
void this.cleanupDBFork(provingState.blockNumber);
|
|
1000
991
|
});
|
|
1001
992
|
}
|
|
1002
993
|
// Executes the base parity circuit and stores the intermediate state for the root parity circuit
|
|
@@ -1057,12 +1048,12 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
1057
1048
|
const inputs = provingState.getBlockMergeRollupInputs(location);
|
|
1058
1049
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBlockMergeRollupProof', {
|
|
1059
1050
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-block-merge'
|
|
1060
|
-
}, (signal)=>this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
1051
|
+
}, (signal)=>this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber)), async (result)=>{
|
|
1061
1052
|
provingState.setBlockMergeRollupProof(location, result);
|
|
1062
|
-
this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
|
|
1053
|
+
await this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
|
|
1063
1054
|
});
|
|
1064
1055
|
}
|
|
1065
|
-
enqueueCheckpointRootRollup(provingState) {
|
|
1056
|
+
async enqueueCheckpointRootRollup(provingState) {
|
|
1066
1057
|
if (!provingState.verifyState()) {
|
|
1067
1058
|
this.logger.debug('Not running checkpoint root rollup. State no longer valid.');
|
|
1068
1059
|
return;
|
|
@@ -1073,7 +1064,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
1073
1064
|
}
|
|
1074
1065
|
const rollupType = provingState.getCheckpointRootRollupType();
|
|
1075
1066
|
this.logger.debug(`Enqueuing ${rollupType} for checkpoint ${provingState.index}.`);
|
|
1076
|
-
const inputs = provingState.getCheckpointRootRollupInputs();
|
|
1067
|
+
const inputs = await provingState.getCheckpointRootRollupInputs();
|
|
1077
1068
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointRootRollupProof', {
|
|
1078
1069
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
|
|
1079
1070
|
}, (signal)=>{
|
|
@@ -1173,22 +1164,22 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
|
|
|
1173
1164
|
}
|
|
1174
1165
|
this.enqueueBlockRootRollup(provingState);
|
|
1175
1166
|
}
|
|
1176
|
-
checkAndEnqueueNextBlockMergeRollup(provingState, currentLocation) {
|
|
1167
|
+
async checkAndEnqueueNextBlockMergeRollup(provingState, currentLocation) {
|
|
1177
1168
|
if (!provingState.isReadyForBlockMerge(currentLocation)) {
|
|
1178
1169
|
return;
|
|
1179
1170
|
}
|
|
1180
1171
|
const parentLocation = provingState.getParentLocation(currentLocation);
|
|
1181
1172
|
if (parentLocation.level === 0) {
|
|
1182
|
-
this.checkAndEnqueueCheckpointRootRollup(provingState);
|
|
1173
|
+
await this.checkAndEnqueueCheckpointRootRollup(provingState);
|
|
1183
1174
|
} else {
|
|
1184
1175
|
this.enqueueBlockMergeRollup(provingState, parentLocation);
|
|
1185
1176
|
}
|
|
1186
1177
|
}
|
|
1187
|
-
checkAndEnqueueCheckpointRootRollup(provingState) {
|
|
1178
|
+
async checkAndEnqueueCheckpointRootRollup(provingState) {
|
|
1188
1179
|
if (!provingState.isReadyForCheckpointRoot()) {
|
|
1189
1180
|
return;
|
|
1190
1181
|
}
|
|
1191
|
-
this.enqueueCheckpointRootRollup(provingState);
|
|
1182
|
+
await this.enqueueCheckpointRootRollup(provingState);
|
|
1192
1183
|
}
|
|
1193
1184
|
checkAndEnqueueNextCheckpointMergeRollup(provingState, currentLocation) {
|
|
1194
1185
|
if (!provingState.isReadyForCheckpointMerge(currentLocation)) {
|
|
@@ -19,7 +19,7 @@ export declare class TestBroker implements ProvingJobProducer {
|
|
|
19
19
|
}
|
|
20
20
|
export declare class MockProver implements ServerCircuitProver {
|
|
21
21
|
constructor();
|
|
22
|
-
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/proofs").RecursiveProof<
|
|
22
|
+
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/proofs").RecursiveProof<16400>>;
|
|
23
23
|
getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 449>>;
|
|
24
24
|
getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 449>>;
|
|
25
25
|
getPublicChonkVerifierProof(_inputs: PublicChonkVerifierPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "4.0.0-devnet.
|
|
3
|
+
"version": "4.0.0-devnet.2-patch.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -68,19 +68,19 @@
|
|
|
68
68
|
]
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@aztec/bb-prover": "4.0.0-devnet.
|
|
72
|
-
"@aztec/blob-lib": "4.0.0-devnet.
|
|
73
|
-
"@aztec/constants": "4.0.0-devnet.
|
|
74
|
-
"@aztec/ethereum": "4.0.0-devnet.
|
|
75
|
-
"@aztec/foundation": "4.0.0-devnet.
|
|
76
|
-
"@aztec/kv-store": "4.0.0-devnet.
|
|
77
|
-
"@aztec/noir-protocol-circuits-types": "4.0.0-devnet.
|
|
78
|
-
"@aztec/noir-types": "4.0.0-devnet.
|
|
79
|
-
"@aztec/protocol-contracts": "4.0.0-devnet.
|
|
80
|
-
"@aztec/simulator": "4.0.0-devnet.
|
|
81
|
-
"@aztec/stdlib": "4.0.0-devnet.
|
|
82
|
-
"@aztec/telemetry-client": "4.0.0-devnet.
|
|
83
|
-
"@aztec/world-state": "4.0.0-devnet.
|
|
71
|
+
"@aztec/bb-prover": "4.0.0-devnet.2-patch.0",
|
|
72
|
+
"@aztec/blob-lib": "4.0.0-devnet.2-patch.0",
|
|
73
|
+
"@aztec/constants": "4.0.0-devnet.2-patch.0",
|
|
74
|
+
"@aztec/ethereum": "4.0.0-devnet.2-patch.0",
|
|
75
|
+
"@aztec/foundation": "4.0.0-devnet.2-patch.0",
|
|
76
|
+
"@aztec/kv-store": "4.0.0-devnet.2-patch.0",
|
|
77
|
+
"@aztec/noir-protocol-circuits-types": "4.0.0-devnet.2-patch.0",
|
|
78
|
+
"@aztec/noir-types": "4.0.0-devnet.2-patch.0",
|
|
79
|
+
"@aztec/protocol-contracts": "4.0.0-devnet.2-patch.0",
|
|
80
|
+
"@aztec/simulator": "4.0.0-devnet.2-patch.0",
|
|
81
|
+
"@aztec/stdlib": "4.0.0-devnet.2-patch.0",
|
|
82
|
+
"@aztec/telemetry-client": "4.0.0-devnet.2-patch.0",
|
|
83
|
+
"@aztec/world-state": "4.0.0-devnet.2-patch.0",
|
|
84
84
|
"@google-cloud/storage": "^7.15.0",
|
|
85
85
|
"@iarna/toml": "^2.2.5",
|
|
86
86
|
"commander": "^12.1.0",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"zod": "^3.23.8"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
|
-
"@aztec/noir-contracts.js": "4.0.0-devnet.
|
|
93
|
+
"@aztec/noir-contracts.js": "4.0.0-devnet.2-patch.0",
|
|
94
94
|
"@jest/globals": "^30.0.0",
|
|
95
95
|
"@types/jest": "^30.0.0",
|
|
96
96
|
"@types/node": "^22.15.17",
|
|
@@ -44,6 +44,7 @@ export class LightweightCheckpointBuilder {
|
|
|
44
44
|
constructor(
|
|
45
45
|
public readonly checkpointNumber: CheckpointNumber,
|
|
46
46
|
public readonly constants: CheckpointGlobalVariables,
|
|
47
|
+
public feeAssetPriceModifier: bigint,
|
|
47
48
|
public readonly l1ToL2Messages: Fr[],
|
|
48
49
|
private readonly previousCheckpointOutHashes: Fr[],
|
|
49
50
|
public readonly db: MerkleTreeWriteOperations,
|
|
@@ -54,7 +55,7 @@ export class LightweightCheckpointBuilder {
|
|
|
54
55
|
instanceId: `checkpoint-${checkpointNumber}`,
|
|
55
56
|
});
|
|
56
57
|
this.spongeBlob = SpongeBlob.init();
|
|
57
|
-
this.logger.debug('Starting new checkpoint', { constants, l1ToL2Messages });
|
|
58
|
+
this.logger.debug('Starting new checkpoint', { constants, l1ToL2Messages, feeAssetPriceModifier });
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
static async startNewCheckpoint(
|
|
@@ -64,6 +65,7 @@ export class LightweightCheckpointBuilder {
|
|
|
64
65
|
previousCheckpointOutHashes: Fr[],
|
|
65
66
|
db: MerkleTreeWriteOperations,
|
|
66
67
|
bindings?: LoggerBindings,
|
|
68
|
+
feeAssetPriceModifier: bigint = 0n,
|
|
67
69
|
): Promise<LightweightCheckpointBuilder> {
|
|
68
70
|
// Insert l1-to-l2 messages into the tree.
|
|
69
71
|
await db.appendLeaves(
|
|
@@ -74,6 +76,7 @@ export class LightweightCheckpointBuilder {
|
|
|
74
76
|
return new LightweightCheckpointBuilder(
|
|
75
77
|
checkpointNumber,
|
|
76
78
|
constants,
|
|
79
|
+
feeAssetPriceModifier,
|
|
77
80
|
l1ToL2Messages,
|
|
78
81
|
previousCheckpointOutHashes,
|
|
79
82
|
db,
|
|
@@ -90,6 +93,7 @@ export class LightweightCheckpointBuilder {
|
|
|
90
93
|
static async resumeCheckpoint(
|
|
91
94
|
checkpointNumber: CheckpointNumber,
|
|
92
95
|
constants: CheckpointGlobalVariables,
|
|
96
|
+
feeAssetPriceModifier: bigint,
|
|
93
97
|
l1ToL2Messages: Fr[],
|
|
94
98
|
previousCheckpointOutHashes: Fr[],
|
|
95
99
|
db: MerkleTreeWriteOperations,
|
|
@@ -99,6 +103,7 @@ export class LightweightCheckpointBuilder {
|
|
|
99
103
|
const builder = new LightweightCheckpointBuilder(
|
|
100
104
|
checkpointNumber,
|
|
101
105
|
constants,
|
|
106
|
+
feeAssetPriceModifier,
|
|
102
107
|
l1ToL2Messages,
|
|
103
108
|
previousCheckpointOutHashes,
|
|
104
109
|
db,
|
|
@@ -237,7 +242,7 @@ export class LightweightCheckpointBuilder {
|
|
|
237
242
|
|
|
238
243
|
const newArchive = this.lastArchives[this.lastArchives.length - 1];
|
|
239
244
|
|
|
240
|
-
const blobs = getBlobsPerL1Block(this.blobFields);
|
|
245
|
+
const blobs = await getBlobsPerL1Block(this.blobFields);
|
|
241
246
|
const blobsHash = computeBlobsHashFromBlobs(blobs);
|
|
242
247
|
|
|
243
248
|
const inHash = computeInHashFromL1ToL2Messages(this.l1ToL2Messages);
|
|
@@ -248,8 +253,7 @@ export class LightweightCheckpointBuilder {
|
|
|
248
253
|
);
|
|
249
254
|
const epochOutHash = accumulateCheckpointOutHashes([...this.previousCheckpointOutHashes, checkpointOutHash]);
|
|
250
255
|
|
|
251
|
-
//
|
|
252
|
-
// timestamp of a checkpoint is the timestamp of the last block in the checkpoint.
|
|
256
|
+
// All blocks in the checkpoint have the same timestamp
|
|
253
257
|
const timestamp = blocks[blocks.length - 1].timestamp;
|
|
254
258
|
|
|
255
259
|
const totalManaUsed = blocks.reduce((acc, block) => acc.add(block.header.totalManaUsed), Fr.ZERO);
|
|
@@ -268,13 +272,14 @@ export class LightweightCheckpointBuilder {
|
|
|
268
272
|
totalManaUsed,
|
|
269
273
|
});
|
|
270
274
|
|
|
271
|
-
return new Checkpoint(newArchive, header, blocks, this.checkpointNumber);
|
|
275
|
+
return new Checkpoint(newArchive, header, blocks, this.checkpointNumber, this.feeAssetPriceModifier);
|
|
272
276
|
}
|
|
273
277
|
|
|
274
278
|
clone() {
|
|
275
279
|
const clone = new LightweightCheckpointBuilder(
|
|
276
280
|
this.checkpointNumber,
|
|
277
281
|
this.constants,
|
|
282
|
+
this.feeAssetPriceModifier,
|
|
278
283
|
[...this.l1ToL2Messages],
|
|
279
284
|
[...this.previousCheckpointOutHashes],
|
|
280
285
|
this.db,
|
|
@@ -250,7 +250,7 @@ export class TestContext {
|
|
|
250
250
|
const previousCheckpointOutHashes = this.checkpointOutHashes;
|
|
251
251
|
const builder = await LightweightCheckpointBuilder.startNewCheckpoint(
|
|
252
252
|
checkpointNumber,
|
|
253
|
-
constants,
|
|
253
|
+
{ ...constants, timestamp },
|
|
254
254
|
l1ToL2Messages,
|
|
255
255
|
previousCheckpointOutHashes,
|
|
256
256
|
cleanFork,
|
|
@@ -253,8 +253,8 @@ export function getPublicChonkVerifierPrivateInputsFromTx(tx: Tx | ProcessedTx,
|
|
|
253
253
|
// Build "hints" as the private inputs for the checkpoint root rollup circuit.
|
|
254
254
|
// The `blobCommitments` will be accumulated and checked in the root rollup against the `finalBlobChallenges`.
|
|
255
255
|
// The `blobsHash` will be validated on L1 against the submitted blob data.
|
|
256
|
-
export const buildBlobHints = (blobFields: Fr[]) => {
|
|
257
|
-
const blobs = getBlobsPerL1Block(blobFields);
|
|
256
|
+
export const buildBlobHints = async (blobFields: Fr[]) => {
|
|
257
|
+
const blobs = await getBlobsPerL1Block(blobFields);
|
|
258
258
|
const blobCommitments = getBlobCommitmentsFromBlobs(blobs);
|
|
259
259
|
const blobsHash = computeBlobsHashFromBlobs(blobs);
|
|
260
260
|
return { blobCommitments, blobs, blobsHash };
|
|
@@ -55,6 +55,7 @@ export class BlockProvingState {
|
|
|
55
55
|
| ProofState<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
56
56
|
| undefined;
|
|
57
57
|
private builtBlockHeader: BlockHeader | undefined;
|
|
58
|
+
private builtArchive: AppendOnlyTreeSnapshot | undefined;
|
|
58
59
|
private endState: StateReference | undefined;
|
|
59
60
|
private endSpongeBlob: SpongeBlob | undefined;
|
|
60
61
|
private txs: TxProvingState[] = [];
|
|
@@ -232,6 +233,14 @@ export class BlockProvingState {
|
|
|
232
233
|
return this.builtBlockHeader;
|
|
233
234
|
}
|
|
234
235
|
|
|
236
|
+
public setBuiltArchive(archive: AppendOnlyTreeSnapshot) {
|
|
237
|
+
this.builtArchive = archive;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
public getBuiltArchive() {
|
|
241
|
+
return this.builtArchive;
|
|
242
|
+
}
|
|
243
|
+
|
|
235
244
|
public getStartSpongeBlob() {
|
|
236
245
|
return this.startSpongeBlob;
|
|
237
246
|
}
|
|
@@ -85,7 +85,7 @@ export class CheckpointProvingState {
|
|
|
85
85
|
typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH
|
|
86
86
|
>,
|
|
87
87
|
public parentEpoch: EpochProvingState,
|
|
88
|
-
private onBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => void
|
|
88
|
+
private onBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => Promise<void>,
|
|
89
89
|
) {
|
|
90
90
|
this.blockProofs = new UnbalancedTreeStore(totalNumBlocks);
|
|
91
91
|
this.firstBlockNumber = BlockNumber(headerOfLastBlockInPreviousCheckpoint.globalVariables.blockNumber + 1);
|
|
@@ -245,7 +245,7 @@ export class CheckpointProvingState {
|
|
|
245
245
|
this.endBlobAccumulator = await accumulateBlobs(this.blobFields!, startBlobAccumulator);
|
|
246
246
|
this.startBlobAccumulator = startBlobAccumulator;
|
|
247
247
|
|
|
248
|
-
this.onBlobAccumulatorSet(this);
|
|
248
|
+
await this.onBlobAccumulatorSet(this);
|
|
249
249
|
|
|
250
250
|
return this.endBlobAccumulator;
|
|
251
251
|
}
|
|
@@ -271,7 +271,7 @@ export class CheckpointProvingState {
|
|
|
271
271
|
return this.totalNumBlocks === 1 ? 'rollup-checkpoint-root-single-block' : 'rollup-checkpoint-root';
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
public getCheckpointRootRollupInputs() {
|
|
274
|
+
public async getCheckpointRootRollupInputs() {
|
|
275
275
|
const proofs = this.#getChildProofsForRoot();
|
|
276
276
|
const nonEmptyProofs = proofs.filter(p => !!p);
|
|
277
277
|
if (proofs.length !== nonEmptyProofs.length) {
|
|
@@ -287,7 +287,7 @@ export class CheckpointProvingState {
|
|
|
287
287
|
// `blobFields` must've been set if `startBlobAccumulator` is set (in `accumulateBlobs`).
|
|
288
288
|
const blobFields = this.blobFields!;
|
|
289
289
|
|
|
290
|
-
const { blobCommitments, blobsHash } = buildBlobHints(blobFields);
|
|
290
|
+
const { blobCommitments, blobsHash } = await buildBlobHints(blobFields);
|
|
291
291
|
|
|
292
292
|
const hints = CheckpointRootRollupHints.from({
|
|
293
293
|
previousBlockHeader: this.headerOfLastBlockInPreviousCheckpoint,
|
|
@@ -76,7 +76,7 @@ export class EpochProvingState {
|
|
|
76
76
|
public readonly epochNumber: EpochNumber,
|
|
77
77
|
public readonly totalNumCheckpoints: number,
|
|
78
78
|
private readonly finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
|
|
79
|
-
private onCheckpointBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => void
|
|
79
|
+
private onCheckpointBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => Promise<void>,
|
|
80
80
|
private completionCallback: (result: ProvingResult) => void,
|
|
81
81
|
private rejectionCallback: (reason: string) => void,
|
|
82
82
|
) {
|
|
@@ -71,11 +71,6 @@ import { EpochProvingState, type ProvingResult, type TreeSnapshots } from './epo
|
|
|
71
71
|
import { ProvingOrchestratorMetrics } from './orchestrator_metrics.js';
|
|
72
72
|
import { TxProvingState } from './tx-proving-state.js';
|
|
73
73
|
|
|
74
|
-
type WorldStateFork = {
|
|
75
|
-
fork: MerkleTreeWriteOperations;
|
|
76
|
-
cleanupPromise: Promise<void> | undefined;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
74
|
/**
|
|
80
75
|
* Implements an event driven proving scheduler to build the recursive proof tree. The idea being:
|
|
81
76
|
* 1. Transactions are provided to the scheduler post simulation.
|
|
@@ -97,7 +92,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
97
92
|
private provingPromise: Promise<ProvingResult> | undefined = undefined;
|
|
98
93
|
private metrics: ProvingOrchestratorMetrics;
|
|
99
94
|
// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
|
|
100
|
-
private dbs: Map<BlockNumber,
|
|
95
|
+
private dbs: Map<BlockNumber, MerkleTreeWriteOperations> = new Map();
|
|
101
96
|
private logger: Logger;
|
|
102
97
|
|
|
103
98
|
constructor(
|
|
@@ -182,7 +177,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
182
177
|
const db = await this.dbProvider.fork(lastBlockNumber);
|
|
183
178
|
|
|
184
179
|
const firstBlockNumber = BlockNumber(lastBlockNumber + 1);
|
|
185
|
-
this.dbs.set(firstBlockNumber,
|
|
180
|
+
this.dbs.set(firstBlockNumber, db);
|
|
186
181
|
|
|
187
182
|
// Get archive sibling path before any block in this checkpoint lands.
|
|
188
183
|
const lastArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, db);
|
|
@@ -240,9 +235,9 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
240
235
|
if (!this.dbs.has(blockNumber)) {
|
|
241
236
|
// Fork world state at the end of the immediately previous block
|
|
242
237
|
const db = await this.dbProvider.fork(BlockNumber(blockNumber - 1));
|
|
243
|
-
this.dbs.set(blockNumber,
|
|
238
|
+
this.dbs.set(blockNumber, db);
|
|
244
239
|
}
|
|
245
|
-
const db = this.
|
|
240
|
+
const db = this.getDbForBlock(blockNumber);
|
|
246
241
|
|
|
247
242
|
// Get archive snapshot and sibling path before any txs in this block lands.
|
|
248
243
|
const lastArchiveTreeSnapshot = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
@@ -317,7 +312,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
317
312
|
|
|
318
313
|
this.logger.info(`Adding ${txs.length} transactions to block ${blockNumber}`);
|
|
319
314
|
|
|
320
|
-
const db = this.
|
|
315
|
+
const db = this.getDbForBlock(blockNumber);
|
|
321
316
|
const lastArchive = provingState.lastArchiveTreeSnapshot;
|
|
322
317
|
const newL1ToL2MessageTreeSnapshot = provingState.newL1ToL2MessageTreeSnapshot;
|
|
323
318
|
const spongeBlobState = provingState.getStartSpongeBlob().clone();
|
|
@@ -445,14 +440,20 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
445
440
|
throw new Error('Block header mismatch');
|
|
446
441
|
}
|
|
447
442
|
|
|
448
|
-
// Get db for this block
|
|
449
|
-
const db = this.
|
|
443
|
+
// Get db for this block and remove from map — no other code should use it after this point.
|
|
444
|
+
const db = this.getDbForBlock(provingState.blockNumber);
|
|
445
|
+
this.dbs.delete(provingState.blockNumber);
|
|
450
446
|
|
|
451
|
-
// Update the archive tree,
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
447
|
+
// Update the archive tree, capture the snapshot, and close the fork deterministically.
|
|
448
|
+
try {
|
|
449
|
+
this.logger.verbose(
|
|
450
|
+
`Updating archive tree with block ${provingState.blockNumber} header ${(await header.hash()).toString()}`,
|
|
451
|
+
);
|
|
452
|
+
await db.updateArchive(header);
|
|
453
|
+
provingState.setBuiltArchive(await getTreeSnapshot(MerkleTreeId.ARCHIVE, db));
|
|
454
|
+
} finally {
|
|
455
|
+
await db.close();
|
|
456
|
+
}
|
|
456
457
|
|
|
457
458
|
await this.verifyBuiltBlockAgainstSyncedState(provingState);
|
|
458
459
|
|
|
@@ -472,6 +473,13 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
472
473
|
this.logger.debug('Block root rollup proof not built yet, skipping header check.');
|
|
473
474
|
return;
|
|
474
475
|
}
|
|
476
|
+
|
|
477
|
+
const newArchive = provingState.getBuiltArchive();
|
|
478
|
+
if (!newArchive) {
|
|
479
|
+
this.logger.debug('Archive snapshot not yet captured, skipping header check.');
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
|
|
475
483
|
const header = await buildHeaderFromCircuitOutputs(output);
|
|
476
484
|
|
|
477
485
|
if (!(await header.hash()).equals(await builtBlockHeader.hash())) {
|
|
@@ -480,11 +488,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
480
488
|
return;
|
|
481
489
|
}
|
|
482
490
|
|
|
483
|
-
// Get db for this block
|
|
484
491
|
const blockNumber = provingState.blockNumber;
|
|
485
|
-
const db = this.dbs.get(blockNumber)!.fork;
|
|
486
|
-
|
|
487
|
-
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
488
492
|
const syncedArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.dbProvider.getSnapshot(blockNumber));
|
|
489
493
|
if (!syncedArchive.equals(newArchive)) {
|
|
490
494
|
this.logger.error(
|
|
@@ -502,12 +506,6 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
502
506
|
provingState.reject(`New archive mismatch.`);
|
|
503
507
|
return;
|
|
504
508
|
}
|
|
505
|
-
|
|
506
|
-
// TODO(palla/prover): This closes the fork only on the happy path. If this epoch orchestrator
|
|
507
|
-
// is aborted and never reaches this point, it will leak the fork. We need to add a global cleanup,
|
|
508
|
-
// but have to make sure it only runs once all operations are completed, otherwise some function here
|
|
509
|
-
// will attempt to access the fork after it was closed.
|
|
510
|
-
void this.cleanupDBFork(blockNumber);
|
|
511
509
|
}
|
|
512
510
|
|
|
513
511
|
/**
|
|
@@ -523,6 +521,19 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
523
521
|
}
|
|
524
522
|
|
|
525
523
|
this.provingState?.cancel();
|
|
524
|
+
|
|
525
|
+
for (const [blockNumber, db] of this.dbs.entries()) {
|
|
526
|
+
void db.close().catch(err => this.logger.error(`Error closing db for block ${blockNumber}`, err));
|
|
527
|
+
}
|
|
528
|
+
this.dbs.clear();
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
private getDbForBlock(blockNumber: BlockNumber): MerkleTreeWriteOperations {
|
|
532
|
+
const db = this.dbs.get(blockNumber);
|
|
533
|
+
if (!db) {
|
|
534
|
+
throw new Error(`World state fork for block ${blockNumber} not found.`);
|
|
535
|
+
}
|
|
536
|
+
return db;
|
|
526
537
|
}
|
|
527
538
|
|
|
528
539
|
/**
|
|
@@ -554,24 +565,6 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
554
565
|
return epochProofResult;
|
|
555
566
|
}
|
|
556
567
|
|
|
557
|
-
private async cleanupDBFork(blockNumber: BlockNumber): Promise<void> {
|
|
558
|
-
this.logger.debug(`Cleaning up world state fork for ${blockNumber}`);
|
|
559
|
-
const fork = this.dbs.get(blockNumber);
|
|
560
|
-
if (!fork) {
|
|
561
|
-
return;
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
try {
|
|
565
|
-
if (!fork.cleanupPromise) {
|
|
566
|
-
fork.cleanupPromise = fork.fork.close();
|
|
567
|
-
}
|
|
568
|
-
await fork.cleanupPromise;
|
|
569
|
-
this.dbs.delete(blockNumber);
|
|
570
|
-
} catch (err) {
|
|
571
|
-
this.logger.error(`Error closing db for block ${blockNumber}`, err);
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
|
|
575
568
|
/**
|
|
576
569
|
* Enqueue a job to be scheduled
|
|
577
570
|
* @param provingState - The proving state object being operated on
|
|
@@ -894,17 +887,15 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
894
887
|
const leafLocation = provingState.setBlockRootRollupProof(result);
|
|
895
888
|
const checkpointProvingState = provingState.parentCheckpoint;
|
|
896
889
|
|
|
897
|
-
//
|
|
890
|
+
// Verification is called from both here and setBlockCompleted. Whichever runs last
|
|
891
|
+
// will be the first to see all three pieces (header, proof output, archive) and run the checks.
|
|
898
892
|
await this.verifyBuiltBlockAgainstSyncedState(provingState);
|
|
899
893
|
|
|
900
894
|
if (checkpointProvingState.totalNumBlocks === 1) {
|
|
901
|
-
this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
|
|
895
|
+
await this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
|
|
902
896
|
} else {
|
|
903
|
-
this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
|
|
897
|
+
await this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
|
|
904
898
|
}
|
|
905
|
-
|
|
906
|
-
// We are finished with the block at this point, ensure the fork is cleaned up
|
|
907
|
-
void this.cleanupDBFork(provingState.blockNumber);
|
|
908
899
|
},
|
|
909
900
|
);
|
|
910
901
|
}
|
|
@@ -1009,14 +1000,14 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
1009
1000
|
},
|
|
1010
1001
|
signal => this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber),
|
|
1011
1002
|
),
|
|
1012
|
-
result => {
|
|
1003
|
+
async result => {
|
|
1013
1004
|
provingState.setBlockMergeRollupProof(location, result);
|
|
1014
|
-
this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
|
|
1005
|
+
await this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
|
|
1015
1006
|
},
|
|
1016
1007
|
);
|
|
1017
1008
|
}
|
|
1018
1009
|
|
|
1019
|
-
private enqueueCheckpointRootRollup(provingState: CheckpointProvingState) {
|
|
1010
|
+
private async enqueueCheckpointRootRollup(provingState: CheckpointProvingState) {
|
|
1020
1011
|
if (!provingState.verifyState()) {
|
|
1021
1012
|
this.logger.debug('Not running checkpoint root rollup. State no longer valid.');
|
|
1022
1013
|
return;
|
|
@@ -1031,7 +1022,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
1031
1022
|
|
|
1032
1023
|
this.logger.debug(`Enqueuing ${rollupType} for checkpoint ${provingState.index}.`);
|
|
1033
1024
|
|
|
1034
|
-
const inputs = provingState.getCheckpointRootRollupInputs();
|
|
1025
|
+
const inputs = await provingState.getCheckpointRootRollupInputs();
|
|
1035
1026
|
|
|
1036
1027
|
this.deferredProving(
|
|
1037
1028
|
provingState,
|
|
@@ -1191,25 +1182,28 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
1191
1182
|
this.enqueueBlockRootRollup(provingState);
|
|
1192
1183
|
}
|
|
1193
1184
|
|
|
1194
|
-
private checkAndEnqueueNextBlockMergeRollup(
|
|
1185
|
+
private async checkAndEnqueueNextBlockMergeRollup(
|
|
1186
|
+
provingState: CheckpointProvingState,
|
|
1187
|
+
currentLocation: TreeNodeLocation,
|
|
1188
|
+
) {
|
|
1195
1189
|
if (!provingState.isReadyForBlockMerge(currentLocation)) {
|
|
1196
1190
|
return;
|
|
1197
1191
|
}
|
|
1198
1192
|
|
|
1199
1193
|
const parentLocation = provingState.getParentLocation(currentLocation);
|
|
1200
1194
|
if (parentLocation.level === 0) {
|
|
1201
|
-
this.checkAndEnqueueCheckpointRootRollup(provingState);
|
|
1195
|
+
await this.checkAndEnqueueCheckpointRootRollup(provingState);
|
|
1202
1196
|
} else {
|
|
1203
1197
|
this.enqueueBlockMergeRollup(provingState, parentLocation);
|
|
1204
1198
|
}
|
|
1205
1199
|
}
|
|
1206
1200
|
|
|
1207
|
-
private checkAndEnqueueCheckpointRootRollup(provingState: CheckpointProvingState) {
|
|
1201
|
+
private async checkAndEnqueueCheckpointRootRollup(provingState: CheckpointProvingState) {
|
|
1208
1202
|
if (!provingState.isReadyForCheckpointRoot()) {
|
|
1209
1203
|
return;
|
|
1210
1204
|
}
|
|
1211
1205
|
|
|
1212
|
-
this.enqueueCheckpointRootRollup(provingState);
|
|
1206
|
+
await this.enqueueCheckpointRootRollup(provingState);
|
|
1213
1207
|
}
|
|
1214
1208
|
|
|
1215
1209
|
private checkAndEnqueueNextCheckpointMergeRollup(provingState: EpochProvingState, currentLocation: TreeNodeLocation) {
|