@aztec/prover-client 1.0.0-nightly.20250608 → 1.0.0-nightly.20250610
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/block-factory/light.d.ts.map +1 -1
- package/dest/block-factory/light.js +2 -1
- package/dest/mocks/test_context.d.ts +1 -0
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +3 -0
- package/dest/orchestrator/block-building-helpers.d.ts +7 -7
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +36 -24
- package/dest/orchestrator/block-proving-state.d.ts +10 -2
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +55 -18
- package/dest/orchestrator/epoch-proving-state.d.ts +9 -3
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +33 -8
- package/dest/orchestrator/orchestrator.d.ts +3 -1
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +30 -10
- package/dest/prover-client/prover-client.d.ts +1 -1
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +2 -0
- package/dest/prover-client/server-epoch-prover.d.ts +3 -1
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +2 -2
- package/package.json +15 -15
- package/src/block-factory/light.ts +2 -1
- package/src/mocks/test_context.ts +4 -0
- package/src/orchestrator/block-building-helpers.ts +42 -27
- package/src/orchestrator/block-proving-state.ts +69 -14
- package/src/orchestrator/epoch-proving-state.ts +34 -4
- package/src/orchestrator/orchestrator.ts +62 -11
- package/src/prover-client/prover-client.ts +11 -9
- package/src/prover-client/server-epoch-prover.ts +9 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/block-factory/light.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAQnF;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IASzD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAG5D,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC;IAGrD,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1F,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;YAIvB,UAAU;CAoBzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC,
|
|
1
|
+
{"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/block-factory/light.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAQnF;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IASzD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAG5D,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC;IAGrD,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1F,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;YAIvB,UAAU;CAoBzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC,oBAWlD"}
|
|
@@ -73,8 +73,9 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffectsAndBuildBa
|
|
|
73
73
|
* @param db - A db fork to use for block building which WILL BE MODIFIED.
|
|
74
74
|
*/ export async function buildBlockWithCleanDB(txs, globalVariables, l1ToL2Messages, db, telemetry = getTelemetryClient()) {
|
|
75
75
|
const spongeBlobState = SpongeBlob.init(toNumBlobFields(txs));
|
|
76
|
+
const l1ToL2MessageTree = await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db);
|
|
76
77
|
for (const tx of txs){
|
|
77
|
-
await insertSideEffectsAndBuildBaseRollupHints(tx, globalVariables, db, spongeBlobState);
|
|
78
|
+
await insertSideEffectsAndBuildBaseRollupHints(tx, globalVariables, l1ToL2MessageTree, db, spongeBlobState);
|
|
78
79
|
}
|
|
79
80
|
const builder = new LightweightBlockFactory(db, telemetry);
|
|
80
81
|
await builder.startNewBlock(globalVariables, l1ToL2Messages);
|
|
@@ -34,6 +34,7 @@ export declare class TestContext {
|
|
|
34
34
|
getFork(): Promise<import("@aztec/stdlib/trees").MerkleTreeWriteOperations>;
|
|
35
35
|
getBlockHeader(blockNumber: 0): BlockHeader;
|
|
36
36
|
getBlockHeader(blockNumber: number): BlockHeader | undefined;
|
|
37
|
+
setBlockHeader(header: BlockHeader, blockNumber: number): void;
|
|
37
38
|
getPreviousBlockHeader(currentBlockNumber?: number): BlockHeader;
|
|
38
39
|
cleanup(): Promise<void>;
|
|
39
40
|
makeProcessedTx(opts?: Parameters<typeof makeBloatedProcessedTx>[0]): Promise<ProcessedTx>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,6 +102,9 @@ export class TestContext {
|
|
|
102
102
|
getBlockHeader(blockNumber = 0) {
|
|
103
103
|
return blockNumber === 0 ? this.worldState.getCommitted().getInitialHeader() : this.headers.get(blockNumber);
|
|
104
104
|
}
|
|
105
|
+
setBlockHeader(header, blockNumber) {
|
|
106
|
+
this.headers.set(blockNumber, header);
|
|
107
|
+
}
|
|
105
108
|
getPreviousBlockHeader(currentBlockNumber = this.blockNumber) {
|
|
106
109
|
return this.getBlockHeader(currentBlockNumber - 1);
|
|
107
110
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Blob, type SpongeBlob } from '@aztec/blob-lib';
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { BatchedBlobAccumulator, Blob, type SpongeBlob } from '@aztec/blob-lib';
|
|
2
|
+
import { BLS12Point, Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
5
|
import { PublicDataHint } from '@aztec/stdlib/avm';
|
|
6
6
|
import { Body } from '@aztec/stdlib/block';
|
|
7
7
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
8
8
|
import type { ParityPublicInputs } from '@aztec/stdlib/parity';
|
|
9
|
-
import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs,
|
|
9
|
+
import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, PrivateBaseRollupHints, PublicBaseRollupHints } from '@aztec/stdlib/rollup';
|
|
10
10
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
11
11
|
import { BlockHeader, type GlobalVariables, PartialStateReference, type ProcessedTx, StateReference, TxEffect } from '@aztec/stdlib/tx';
|
|
12
12
|
import type { MerkleTreeReadOperations } from '@aztec/world-state';
|
|
@@ -18,15 +18,16 @@ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'Public
|
|
|
18
18
|
* Type representing the names of the trees.
|
|
19
19
|
*/
|
|
20
20
|
export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
|
|
21
|
-
export declare const insertSideEffectsAndBuildBaseRollupHints: (tx: ProcessedTx, globalVariables: GlobalVariables, db: MerkleTreeWriteOperations, startSpongeBlob: SpongeBlob) => Promise<PublicBaseRollupHints | PrivateBaseRollupHints>;
|
|
21
|
+
export declare const insertSideEffectsAndBuildBaseRollupHints: (tx: ProcessedTx, globalVariables: GlobalVariables, l1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, db: MerkleTreeWriteOperations, startSpongeBlob: SpongeBlob) => Promise<PublicBaseRollupHints | PrivateBaseRollupHints>;
|
|
22
22
|
export declare function getPublicDataHint(db: MerkleTreeWriteOperations, leafSlot: bigint): Promise<PublicDataHint>;
|
|
23
23
|
export declare const buildBlobHints: (txEffects: TxEffect[]) => Promise<{
|
|
24
24
|
blobFields: Fr[];
|
|
25
|
-
blobCommitments: [
|
|
25
|
+
blobCommitments: BLS12Point[];
|
|
26
26
|
blobs: Blob[];
|
|
27
27
|
blobsHash: Fr;
|
|
28
28
|
}>;
|
|
29
|
-
export declare const
|
|
29
|
+
export declare const accumulateBlobs: (txs: ProcessedTx[], startBlobAccumulator: BatchedBlobAccumulator) => Promise<BatchedBlobAccumulator>;
|
|
30
|
+
export declare const buildHeaderFromCircuitOutputs: (previousRollupData: BaseOrMergeRollupPublicInputs[], parityPublicInputs: ParityPublicInputs, rootRollupOutputs: BlockRootOrBlockMergePublicInputs, blobsHash: Buffer<ArrayBufferLike>, endState: StateReference) => BlockHeader;
|
|
30
31
|
export declare const buildHeaderAndBodyFromTxs: (txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeReadOperations) => Promise<{
|
|
31
32
|
header: BlockHeader;
|
|
32
33
|
body: Body;
|
|
@@ -48,7 +49,6 @@ export declare function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId:
|
|
|
48
49
|
readonly 0: 40;
|
|
49
50
|
readonly 2: 40;
|
|
50
51
|
}[TID]>>;
|
|
51
|
-
export declare const getConstantRollupData: (globalVariables: GlobalVariables, db: MerkleTreeReadOperations) => Promise<ConstantRollupData>;
|
|
52
52
|
export declare function getTreeSnapshot(id: MerkleTreeId, db: MerkleTreeReadOperations): Promise<AppendOnlyTreeSnapshot>;
|
|
53
53
|
export declare function makeEmptyMembershipWitness<N extends number>(height: N): MembershipWitness<N>;
|
|
54
54
|
export declare function getSubtreeSiblingPath(treeId: MerkleTreeId, subtreeHeight: number, db: MerkleTreeReadOperations): Promise<Fr[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { ARCHIVE_HEIGHT, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX,
|
|
|
3
3
|
import { makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
5
|
import { sha256Trunc } from '@aztec/foundation/crypto';
|
|
6
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
6
|
+
import { BLS12Point, Fr } from '@aztec/foundation/fields';
|
|
7
7
|
import { assertLength, serializeToBuffer, toFriendlyJSON } from '@aztec/foundation/serialize';
|
|
8
8
|
import { MembershipWitness, MerkleTreeCalculator, computeUnbalancedMerkleRoot } from '@aztec/foundation/trees';
|
|
9
9
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
@@ -12,15 +12,17 @@ import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-ju
|
|
|
12
12
|
import { PublicDataHint } from '@aztec/stdlib/avm';
|
|
13
13
|
import { Body } from '@aztec/stdlib/block';
|
|
14
14
|
import { ContractClassLogFields } from '@aztec/stdlib/logs';
|
|
15
|
-
import {
|
|
15
|
+
import { BlockConstantData, PrivateBaseRollupHints, PrivateBaseStateDiffHints, PublicBaseRollupHints } from '@aztec/stdlib/rollup';
|
|
16
16
|
import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeafPreimage, PublicDataTreeLeaf, PublicDataTreeLeafPreimage, getTreeHeight } from '@aztec/stdlib/trees';
|
|
17
17
|
import { BlockHeader, ContentCommitment, PartialStateReference, StateReference, TxEffect } from '@aztec/stdlib/tx';
|
|
18
18
|
import { Attributes, runInSpan } from '@aztec/telemetry-client';
|
|
19
19
|
// Builds the hints for base rollup. Updating the contract, nullifier, and data trees in the process.
|
|
20
|
-
export const insertSideEffectsAndBuildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseRollupHints', async (span, tx, globalVariables, db
|
|
20
|
+
export const insertSideEffectsAndBuildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseRollupHints', async (span, tx, globalVariables, // Passing in the snapshot instead of getting it from the db because it might've been updated in the orchestrator
|
|
21
|
+
// when base parity proof is being generated.
|
|
22
|
+
l1ToL2MessageTreeSnapshot, db, startSpongeBlob)=>{
|
|
21
23
|
span.setAttribute(Attributes.TX_HASH, tx.hash.toString());
|
|
22
24
|
// Get trees info before any changes hit
|
|
23
|
-
const
|
|
25
|
+
const lastArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
24
26
|
const start = new PartialStateReference(await getTreeSnapshot(MerkleTreeId.NOTE_HASH_TREE, db), await getTreeSnapshot(MerkleTreeId.NULLIFIER_TREE, db), await getTreeSnapshot(MerkleTreeId.PUBLIC_DATA_TREE, db));
|
|
25
27
|
// Get the subtree sibling paths for the circuit
|
|
26
28
|
const noteHashSubtreeSiblingPathArray = await getSubtreeSiblingPath(MerkleTreeId.NOTE_HASH_TREE, NOTE_HASH_SUBTREE_HEIGHT, db);
|
|
@@ -49,13 +51,13 @@ export const insertSideEffectsAndBuildBaseRollupHints = runInSpan('BlockBuilderH
|
|
|
49
51
|
await startSpongeBlob.absorb(tx.txEffect.toBlobFields());
|
|
50
52
|
const contractClassLogsFields = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, (i)=>tx.txEffect.contractClassLogs[i]?.fields || ContractClassLogFields.empty());
|
|
51
53
|
if (tx.avmProvingRequest) {
|
|
52
|
-
const blockHash = await tx.constants.historicalHeader.hash();
|
|
54
|
+
const blockHash = await tx.data.constants.historicalHeader.hash();
|
|
53
55
|
const archiveRootMembershipWitness = await getMembershipWitnessFor(blockHash, MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db);
|
|
54
56
|
return PublicBaseRollupHints.from({
|
|
55
57
|
startSpongeBlob: inputSpongeBlob,
|
|
58
|
+
lastArchive,
|
|
56
59
|
archiveRootMembershipWitness,
|
|
57
|
-
contractClassLogsFields
|
|
58
|
-
constants
|
|
60
|
+
contractClassLogsFields
|
|
59
61
|
});
|
|
60
62
|
} else {
|
|
61
63
|
if (txPublicDataUpdateRequestInfo.lowPublicDataWritesMembershipWitnesses.length > 1 || txPublicDataUpdateRequestInfo.lowPublicDataWritesPreimages.length > 1 || txPublicDataUpdateRequestInfo.publicDataWritesSiblingPaths.length > 1) {
|
|
@@ -75,8 +77,15 @@ export const insertSideEffectsAndBuildBaseRollupHints = runInSpan('BlockBuilderH
|
|
|
75
77
|
feeWriteLowLeafMembershipWitness,
|
|
76
78
|
feeWriteSiblingPath
|
|
77
79
|
});
|
|
78
|
-
const blockHash = await tx.constants.historicalHeader.hash();
|
|
80
|
+
const blockHash = await tx.data.constants.historicalHeader.hash();
|
|
79
81
|
const archiveRootMembershipWitness = await getMembershipWitnessFor(blockHash, MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db);
|
|
82
|
+
const constants = BlockConstantData.from({
|
|
83
|
+
lastArchive,
|
|
84
|
+
lastL1ToL2: l1ToL2MessageTreeSnapshot,
|
|
85
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
86
|
+
protocolContractTreeRoot,
|
|
87
|
+
globalVariables
|
|
88
|
+
});
|
|
80
89
|
return PrivateBaseRollupHints.from({
|
|
81
90
|
start,
|
|
82
91
|
startSpongeBlob: inputSpongeBlob,
|
|
@@ -106,7 +115,12 @@ export async function getPublicDataHint(db, leafSlot) {
|
|
|
106
115
|
export const buildBlobHints = runInSpan('BlockBuilderHelpers', 'buildBlobHints', async (_span, txEffects)=>{
|
|
107
116
|
const blobFields = txEffects.flatMap((tx)=>tx.toBlobFields());
|
|
108
117
|
const blobs = await Blob.getBlobs(blobFields);
|
|
109
|
-
|
|
118
|
+
// TODO(#13430): The blobsHash is confusingly similar to blobCommitmentsHash, calculated from below blobCommitments:
|
|
119
|
+
// - blobsHash := sha256([blobhash_0, ..., blobhash_m]) = a hash of all blob hashes in a block with m+1 blobs inserted into the header, exists so a user can cross check blobs.
|
|
120
|
+
// - blobCommitmentsHash := sha256( ...sha256(sha256(C_0), C_1) ... C_n) = iteratively calculated hash of all blob commitments in an epoch with n+1 blobs (see calculateBlobCommitmentsHash()),
|
|
121
|
+
// exists so we can validate injected commitments to the rollup circuits correspond to the correct real blobs.
|
|
122
|
+
// We may be able to combine these values e.g. blobCommitmentsHash := sha256( ...sha256(sha256(blobshash_0), blobshash_1) ... blobshash_l) for an epoch with l+1 blocks.
|
|
123
|
+
const blobCommitments = blobs.map((b)=>BLS12Point.decompress(b.commitment));
|
|
110
124
|
const blobsHash = new Fr(getBlobsHashFromBlobs(blobs));
|
|
111
125
|
return {
|
|
112
126
|
blobFields,
|
|
@@ -115,11 +129,16 @@ export const buildBlobHints = runInSpan('BlockBuilderHelpers', 'buildBlobHints',
|
|
|
115
129
|
blobsHash
|
|
116
130
|
};
|
|
117
131
|
});
|
|
118
|
-
export const
|
|
132
|
+
export const accumulateBlobs = runInSpan('BlockBuilderHelpers', 'accumulateBlobs', async (_span, txs, startBlobAccumulator)=>{
|
|
133
|
+
const blobFields = txs.flatMap((tx)=>tx.txEffect.toBlobFields());
|
|
134
|
+
const blobs = await Blob.getBlobs(blobFields);
|
|
135
|
+
const endBlobAccumulator = startBlobAccumulator.accumulateBlobs(blobs);
|
|
136
|
+
return endBlobAccumulator;
|
|
137
|
+
});
|
|
138
|
+
export const buildHeaderFromCircuitOutputs = runInSpan('BlockBuilderHelpers', 'buildHeaderFromCircuitOutputs', (_span, previousRollupData, parityPublicInputs, rootRollupOutputs, blobsHash, endState)=>{
|
|
119
139
|
if (previousRollupData.length > 2) {
|
|
120
140
|
throw new Error(`There can't be more than 2 previous rollups. Received ${previousRollupData.length}.`);
|
|
121
141
|
}
|
|
122
|
-
const blobsHash = rootRollupOutputs.blobPublicInputs[0].getBlobsHash();
|
|
123
142
|
const numTxs = previousRollupData.reduce((sum, d)=>sum + d.numTxs, 0);
|
|
124
143
|
const outHash = previousRollupData.length === 0 ? Fr.ZERO.toBuffer() : previousRollupData.length === 1 ? previousRollupData[0].outHash.toBuffer() : sha256Trunc(Buffer.concat([
|
|
125
144
|
previousRollupData[0].outHash.toBuffer(),
|
|
@@ -161,6 +180,7 @@ export function getBlobsHashFromBlobs(inputs) {
|
|
|
161
180
|
return sha256Trunc(serializeToBuffer(blobHashes));
|
|
162
181
|
}
|
|
163
182
|
// Validate that the roots of all local trees match the output of the root circuit simulation
|
|
183
|
+
// TODO: does this get called?
|
|
164
184
|
export async function validateBlockRootOutput(blockRootOutput, blockHeader, db) {
|
|
165
185
|
await Promise.all([
|
|
166
186
|
validateState(blockHeader.state, db),
|
|
@@ -195,14 +215,6 @@ export async function getRootTreeSiblingPath(treeId, db) {
|
|
|
195
215
|
const path = await db.getSiblingPath(treeId, size);
|
|
196
216
|
return padArrayEnd(path.toFields(), Fr.ZERO, getTreeHeight(treeId));
|
|
197
217
|
}
|
|
198
|
-
export const getConstantRollupData = runInSpan('BlockBuilderHelpers', 'getConstantRollupData', async (_span, globalVariables, db)=>{
|
|
199
|
-
return ConstantRollupData.from({
|
|
200
|
-
vkTreeRoot: getVKTreeRoot(),
|
|
201
|
-
protocolContractTreeRoot,
|
|
202
|
-
lastArchive: await getTreeSnapshot(MerkleTreeId.ARCHIVE, db),
|
|
203
|
-
globalVariables
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
218
|
export async function getTreeSnapshot(id, db) {
|
|
207
219
|
const treeInfo = await db.getTreeInfo(id);
|
|
208
220
|
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
|
|
@@ -268,17 +280,17 @@ function validateSimulatedTree(localTree, simulatedTree, name, label) {
|
|
|
268
280
|
}
|
|
269
281
|
}
|
|
270
282
|
export function validateTx(tx) {
|
|
271
|
-
const txHeader = tx.constants.historicalHeader;
|
|
272
|
-
if (txHeader.state.l1ToL2MessageTree.
|
|
283
|
+
const txHeader = tx.data.constants.historicalHeader;
|
|
284
|
+
if (txHeader.state.l1ToL2MessageTree.isEmpty()) {
|
|
273
285
|
throw new Error(`Empty L1 to L2 messages tree in tx: ${toFriendlyJSON(tx)}`);
|
|
274
286
|
}
|
|
275
|
-
if (txHeader.state.partial.noteHashTree.
|
|
287
|
+
if (txHeader.state.partial.noteHashTree.isEmpty()) {
|
|
276
288
|
throw new Error(`Empty note hash tree in tx: ${toFriendlyJSON(tx)}`);
|
|
277
289
|
}
|
|
278
|
-
if (txHeader.state.partial.nullifierTree.
|
|
290
|
+
if (txHeader.state.partial.nullifierTree.isEmpty()) {
|
|
279
291
|
throw new Error(`Empty nullifier tree in tx: ${toFriendlyJSON(tx)}`);
|
|
280
292
|
}
|
|
281
|
-
if (txHeader.state.partial.publicDataTree.
|
|
293
|
+
if (txHeader.state.partial.publicDataTree.isEmpty()) {
|
|
282
294
|
throw new Error(`Empty public data tree in tx: ${toFriendlyJSON(tx)}`);
|
|
283
295
|
}
|
|
284
296
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SpongeBlob } from '@aztec/blob-lib';
|
|
1
|
+
import { BatchedBlobAccumulator, 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
4
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
@@ -21,6 +21,7 @@ export declare class BlockProvingState {
|
|
|
21
21
|
readonly index: number;
|
|
22
22
|
readonly globalVariables: GlobalVariables;
|
|
23
23
|
readonly newL1ToL2Messages: Fr[];
|
|
24
|
+
readonly l1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot;
|
|
24
25
|
private readonly l1ToL2MessageSubtreeSiblingPath;
|
|
25
26
|
private readonly l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
26
27
|
private readonly lastArchiveSnapshot;
|
|
@@ -35,10 +36,13 @@ export declare class BlockProvingState {
|
|
|
35
36
|
blockRootRollupStarted: boolean;
|
|
36
37
|
block: L2Block | undefined;
|
|
37
38
|
spongeBlobState: SpongeBlob | undefined;
|
|
39
|
+
startBlobAccumulator: BatchedBlobAccumulator | undefined;
|
|
40
|
+
endBlobAccumulator: BatchedBlobAccumulator | undefined;
|
|
41
|
+
blobsHash: Buffer | undefined;
|
|
38
42
|
totalNumTxs: number;
|
|
39
43
|
private txs;
|
|
40
44
|
error: string | undefined;
|
|
41
|
-
constructor(index: number, globalVariables: GlobalVariables, newL1ToL2Messages: Fr[], l1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, l1ToL2MessageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, lastArchiveSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, newArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHeader: BlockHeader, parentEpoch: EpochProvingState);
|
|
45
|
+
constructor(index: number, globalVariables: GlobalVariables, newL1ToL2Messages: Fr[], l1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, l1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, l1ToL2MessageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, lastArchiveSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, newArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHeader: BlockHeader, parentEpoch: EpochProvingState);
|
|
42
46
|
get blockNumber(): number;
|
|
43
47
|
startNewBlock(numTxs: number, numBlobFields: number): void;
|
|
44
48
|
addNewTx(tx: TxProvingState): number;
|
|
@@ -47,6 +51,10 @@ export declare class BlockProvingState {
|
|
|
47
51
|
setBaseParityProof(index: number, provingOutput: PublicInputsAndRecursiveProof<ParityPublicInputs>): void;
|
|
48
52
|
setRootParityProof(provingOutput: PublicInputsAndRecursiveProof<ParityPublicInputs>): void;
|
|
49
53
|
setBlockRootRollupProof(provingOutput: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
54
|
+
setBlock(block: L2Block): void;
|
|
55
|
+
setStartBlobAccumulator(accumulator: BatchedBlobAccumulator): void;
|
|
56
|
+
setEndBlobAccumulator(accumulator: BatchedBlobAccumulator): void;
|
|
57
|
+
accumulateBlobs(): Promise<void>;
|
|
50
58
|
get allTxs(): TxProvingState[];
|
|
51
59
|
/** Returns the block number as an epoch number. Used for prioritizing proof requests. */
|
|
52
60
|
get epochNumber(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { SpongeBlob } from '@aztec/blob-lib';
|
|
1
|
+
import { BatchedBlobAccumulator, SpongeBlob } from '@aztec/blob-lib';
|
|
2
2
|
import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
3
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import { BLS12Point, Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
6
6
|
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
7
7
|
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
8
8
|
import { RootParityInput, RootParityInputs } from '@aztec/stdlib/parity';
|
|
9
|
-
import { BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs,
|
|
9
|
+
import { BlockConstantData, BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
10
10
|
import { StateReference } from '@aztec/stdlib/tx';
|
|
11
11
|
import { VkData } from '@aztec/stdlib/vks';
|
|
12
|
-
import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
|
|
12
|
+
import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
|
|
13
13
|
/**
|
|
14
14
|
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
15
15
|
* Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
|
|
@@ -17,6 +17,7 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
17
17
|
index;
|
|
18
18
|
globalVariables;
|
|
19
19
|
newL1ToL2Messages;
|
|
20
|
+
l1ToL2MessageTreeSnapshot;
|
|
20
21
|
l1ToL2MessageSubtreeSiblingPath;
|
|
21
22
|
l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
22
23
|
lastArchiveSnapshot;
|
|
@@ -31,13 +32,17 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
31
32
|
blockRootRollupStarted;
|
|
32
33
|
block;
|
|
33
34
|
spongeBlobState;
|
|
35
|
+
startBlobAccumulator;
|
|
36
|
+
endBlobAccumulator;
|
|
37
|
+
blobsHash;
|
|
34
38
|
totalNumTxs;
|
|
35
39
|
txs;
|
|
36
40
|
error;
|
|
37
|
-
constructor(index, globalVariables, newL1ToL2Messages, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, parentEpoch){
|
|
41
|
+
constructor(index, globalVariables, newL1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, parentEpoch){
|
|
38
42
|
this.index = index;
|
|
39
43
|
this.globalVariables = globalVariables;
|
|
40
44
|
this.newL1ToL2Messages = newL1ToL2Messages;
|
|
45
|
+
this.l1ToL2MessageTreeSnapshot = l1ToL2MessageTreeSnapshot;
|
|
41
46
|
this.l1ToL2MessageSubtreeSiblingPath = l1ToL2MessageSubtreeSiblingPath;
|
|
42
47
|
this.l1ToL2MessageTreeSnapshotAfterInsertion = l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
43
48
|
this.lastArchiveSnapshot = lastArchiveSnapshot;
|
|
@@ -52,6 +57,9 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
52
57
|
length: NUM_BASE_PARITY_PER_ROOT_PARITY
|
|
53
58
|
}).map((_)=>undefined);
|
|
54
59
|
this.totalNumTxs = 0;
|
|
60
|
+
if (this.blockNumber == parentEpoch.firstBlockNumber) {
|
|
61
|
+
this.startBlobAccumulator = BatchedBlobAccumulator.newWithChallenges(parentEpoch.finalBlobBatchingChallenges);
|
|
62
|
+
}
|
|
55
63
|
}
|
|
56
64
|
get blockNumber() {
|
|
57
65
|
return this.globalVariables.blockNumber.toNumber();
|
|
@@ -94,6 +102,23 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
94
102
|
setBlockRootRollupProof(provingOutput) {
|
|
95
103
|
this.blockRootProvingOutput = provingOutput;
|
|
96
104
|
}
|
|
105
|
+
setBlock(block) {
|
|
106
|
+
this.block = block;
|
|
107
|
+
}
|
|
108
|
+
setStartBlobAccumulator(accumulator) {
|
|
109
|
+
this.startBlobAccumulator = accumulator;
|
|
110
|
+
}
|
|
111
|
+
setEndBlobAccumulator(accumulator) {
|
|
112
|
+
this.endBlobAccumulator = accumulator;
|
|
113
|
+
}
|
|
114
|
+
async accumulateBlobs() {
|
|
115
|
+
if (!this.block || !this.startBlobAccumulator) {
|
|
116
|
+
// We only want to accumulate once we have all txs, so we wait until the block is set.
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const endBlobAccumulator = await accumulateBlobs(this.allTxs.map((t)=>t.processedTx), this.startBlobAccumulator);
|
|
120
|
+
this.setEndBlobAccumulator(endBlobAccumulator);
|
|
121
|
+
}
|
|
97
122
|
// Returns the complete set of transaction proving state objects
|
|
98
123
|
get allTxs() {
|
|
99
124
|
return this.txs;
|
|
@@ -125,8 +150,9 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
125
150
|
}
|
|
126
151
|
const data = this.#getBlockRootRollupData(proverId);
|
|
127
152
|
if (this.totalNumTxs === 0) {
|
|
128
|
-
const constants =
|
|
153
|
+
const constants = BlockConstantData.from({
|
|
129
154
|
lastArchive: this.lastArchiveSnapshot,
|
|
155
|
+
lastL1ToL2: this.l1ToL2MessageTreeSnapshot,
|
|
130
156
|
globalVariables: this.globalVariables,
|
|
131
157
|
vkTreeRoot: getVKTreeRoot(),
|
|
132
158
|
protocolContractTreeRoot
|
|
@@ -142,6 +168,7 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
142
168
|
}
|
|
143
169
|
const previousRollupData = await Promise.all(nonEmptyProofs.map((p)=>this.#getPreviousRollupData(p)));
|
|
144
170
|
const blobData = await this.#getBlockRootRollupBlobData();
|
|
171
|
+
this.blobsHash = blobData.blobsHash.toBuffer();
|
|
145
172
|
if (previousRollupData.length === 1) {
|
|
146
173
|
return {
|
|
147
174
|
rollupType: 'single-tx-block-root-rollup',
|
|
@@ -158,19 +185,26 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
158
185
|
if (!this.rootParityProvingOutput) {
|
|
159
186
|
throw new Error('Root parity is not ready.');
|
|
160
187
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
188
|
+
if (!this.blockRootProvingOutput || !this.endBlobAccumulator) {
|
|
189
|
+
throw new Error('Block root not ready for padding.');
|
|
190
|
+
}
|
|
191
|
+
// Use the new block header, archive and l1toL2 of the current block as the previous header, archive and l1toL2 of the next padding block.
|
|
192
|
+
const previousBlockHeader = await this.buildHeaderFromProvingOutputs();
|
|
193
|
+
const lastArchive = this.blockRootProvingOutput.inputs.newArchive;
|
|
194
|
+
const lastL1ToL2 = this.l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
164
195
|
const data = BlockRootRollupData.from({
|
|
165
196
|
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput),
|
|
166
197
|
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
167
198
|
previousArchiveSiblingPath: this.lastArchiveSiblingPath,
|
|
168
199
|
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
169
|
-
previousBlockHeader
|
|
200
|
+
previousBlockHeader,
|
|
201
|
+
startBlobAccumulator: this.endBlobAccumulator.toBlobAccumulatorPublicInputs(),
|
|
202
|
+
finalBlobChallenges: this.endBlobAccumulator.finalBlobChallenges,
|
|
170
203
|
proverId
|
|
171
204
|
});
|
|
172
|
-
const constants =
|
|
173
|
-
lastArchive
|
|
205
|
+
const constants = BlockConstantData.from({
|
|
206
|
+
lastArchive,
|
|
207
|
+
lastL1ToL2,
|
|
174
208
|
globalVariables: this.globalVariables,
|
|
175
209
|
vkTreeRoot: getVKTreeRoot(),
|
|
176
210
|
protocolContractTreeRoot
|
|
@@ -204,7 +238,11 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
204
238
|
endPartialState = lastRollup.inputs.end;
|
|
205
239
|
}
|
|
206
240
|
const endState = new StateReference(this.l1ToL2MessageTreeSnapshotAfterInsertion, endPartialState);
|
|
207
|
-
|
|
241
|
+
// TODO(MW): cleanup
|
|
242
|
+
if (!this.blobsHash) {
|
|
243
|
+
this.blobsHash = (await buildBlobHints(this.txs.map((txProvingState)=>txProvingState.processedTx.txEffect))).blobsHash.toBuffer();
|
|
244
|
+
}
|
|
245
|
+
return buildHeaderFromCircuitOutputs(previousRollupData.map((d)=>d.baseOrMergeRollupPublicInputs), this.rootParityProvingOutput.inputs, this.blockRootProvingOutput.inputs, this.blobsHash, endState);
|
|
208
246
|
}
|
|
209
247
|
isReadyForMergeRollup(location) {
|
|
210
248
|
return this.baseOrMergeProvingOutputs.getSibling(location) !== undefined;
|
|
@@ -212,7 +250,7 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
212
250
|
// Returns true if we have sufficient inputs to execute the block root rollup
|
|
213
251
|
isReadyForBlockRootRollup() {
|
|
214
252
|
const childProofs = this.#getChildProofsForBlockRoot();
|
|
215
|
-
return this.block !== undefined && this.rootParityProvingOutput !== undefined && childProofs.every((p)=>!!p);
|
|
253
|
+
return this.block !== undefined && this.rootParityProvingOutput !== undefined && this.endBlobAccumulator !== undefined && childProofs.every((p)=>!!p);
|
|
216
254
|
}
|
|
217
255
|
// Returns true if we have sufficient root parity inputs to execute the root parity circuit
|
|
218
256
|
isReadyForRootParity() {
|
|
@@ -236,6 +274,8 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
236
274
|
previousArchiveSiblingPath: this.lastArchiveSiblingPath,
|
|
237
275
|
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
238
276
|
previousBlockHeader: this.previousBlockHeader,
|
|
277
|
+
startBlobAccumulator: this.startBlobAccumulator.toBlobAccumulatorPublicInputs(),
|
|
278
|
+
finalBlobChallenges: this.startBlobAccumulator.finalBlobChallenges,
|
|
239
279
|
proverId
|
|
240
280
|
});
|
|
241
281
|
}
|
|
@@ -244,10 +284,7 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
|
|
|
244
284
|
const { blobFields, blobCommitments, blobsHash } = await buildBlobHints(txEffects);
|
|
245
285
|
return BlockRootRollupBlobData.from({
|
|
246
286
|
blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_BLOCK),
|
|
247
|
-
blobCommitments: padArrayEnd(blobCommitments,
|
|
248
|
-
Fr.ZERO,
|
|
249
|
-
Fr.ZERO
|
|
250
|
-
], BLOBS_PER_BLOCK),
|
|
287
|
+
blobCommitments: padArrayEnd(blobCommitments, BLS12Point.ZERO, BLOBS_PER_BLOCK),
|
|
251
288
|
blobsHash
|
|
252
289
|
});
|
|
253
290
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BatchedBlob, type FinalBlobBatchingChallenges } from '@aztec/blob-lib';
|
|
1
2
|
import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
3
|
import type { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
@@ -26,30 +27,35 @@ export declare class EpochProvingState {
|
|
|
26
27
|
readonly epochNumber: number;
|
|
27
28
|
readonly firstBlockNumber: number;
|
|
28
29
|
readonly totalNumBlocks: number;
|
|
30
|
+
readonly finalBlobBatchingChallenges: FinalBlobBatchingChallenges;
|
|
29
31
|
private completionCallback;
|
|
30
32
|
private rejectionCallback;
|
|
31
33
|
private blockRootOrMergeProvingOutputs;
|
|
32
34
|
private paddingBlockRootProvingOutput;
|
|
33
35
|
private rootRollupProvingOutput;
|
|
36
|
+
private finalBatchedBlob;
|
|
34
37
|
private provingStateLifecycle;
|
|
35
38
|
readonly cachedTubeProofs: Map<string, Promise<ProofAndVerificationKey<535>>>;
|
|
36
39
|
blocks: (BlockProvingState | undefined)[];
|
|
37
|
-
constructor(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
|
|
38
|
-
startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[], l1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, l1ToL2MessageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, lastArchiveSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, newArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHeader: BlockHeader): BlockProvingState;
|
|
40
|
+
constructor(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
|
|
41
|
+
startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[], l1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, l1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, l1ToL2MessageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, lastArchiveSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, newArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHeader: BlockHeader): BlockProvingState;
|
|
39
42
|
verifyState(): boolean;
|
|
40
43
|
isAcceptingBlocks(): boolean;
|
|
41
44
|
setBlockRootRollupProof(blockIndex: number, proof: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
42
45
|
setBlockMergeRollupProof(location: TreeNodeLocation, proof: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
43
46
|
setRootRollupProof(proof: PublicInputsAndRecursiveProof<RootRollupPublicInputs>): void;
|
|
44
47
|
setPaddingBlockRootProof(proof: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
48
|
+
setFinalBatchedBlob(batchedBlob: BatchedBlob): void;
|
|
49
|
+
setBlobAccumulators(toBlock?: number): Promise<void>;
|
|
45
50
|
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
46
51
|
getBlockMergeRollupInputs(mergeLocation: TreeNodeLocation): BlockMergeRollupInputs;
|
|
47
|
-
getRootRollupInputs(
|
|
52
|
+
getRootRollupInputs(): RootRollupInputs;
|
|
48
53
|
getPaddingBlockRootInputs(proverId: Fr): Promise<import("@aztec/stdlib/rollup").EmptyBlockRootRollupInputs>;
|
|
49
54
|
getBlockProvingStateByBlockNumber(blockNumber: number): BlockProvingState | undefined;
|
|
50
55
|
getEpochProofResult(): {
|
|
51
56
|
proof: Proof;
|
|
52
57
|
publicInputs: RootRollupPublicInputs;
|
|
58
|
+
batchedBlobInputs: BatchedBlob;
|
|
53
59
|
};
|
|
54
60
|
isReadyForBlockMerge(location: TreeNodeLocation): boolean;
|
|
55
61
|
isReadyForRootRollup(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,wCAAwC,EACxC,yCAAyC,EAE1C,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;AAErF,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,KAAK,iCAAiC,EAEtC,gBAAgB,EAChB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,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;;
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|