@aztec/prover-client 0.69.0-devnet → 0.69.1-devnet
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_builder/light.d.ts +0 -1
- package/dest/block_builder/light.d.ts.map +1 -1
- package/dest/block_builder/light.js +4 -14
- package/dest/config.d.ts +2 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +3 -2
- package/dest/mocks/test_context.d.ts +2 -2
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +6 -6
- package/dest/orchestrator/block-building-helpers.d.ts +10 -25
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +33 -44
- package/dest/orchestrator/block-proving-state.d.ts +40 -44
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +149 -85
- package/dest/orchestrator/epoch-proving-state.d.ts +23 -30
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +92 -65
- package/dest/orchestrator/orchestrator.d.ts +16 -47
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +204 -341
- package/dest/orchestrator/tx-proving-state.d.ts +10 -6
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +57 -46
- package/dest/prover-agent/memory-proving-queue.d.ts +3 -3
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +4 -4
- package/dest/prover-agent/prover-agent.js +4 -4
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +5 -2
- package/dest/prover-client/server-epoch-prover.d.ts +25 -0
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -0
- package/dest/prover-client/server-epoch-prover.js +40 -0
- package/dest/proving_broker/broker_prover_facade.d.ts +15 -4
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +247 -44
- package/dest/proving_broker/config.d.ts +61 -0
- package/dest/proving_broker/config.d.ts.map +1 -0
- package/dest/proving_broker/config.js +83 -0
- package/dest/proving_broker/factory.d.ts +1 -1
- package/dest/proving_broker/factory.d.ts.map +1 -1
- package/dest/proving_broker/factory.js +2 -5
- package/dest/proving_broker/fixtures.d.ts +5 -0
- package/dest/proving_broker/fixtures.d.ts.map +1 -0
- package/dest/proving_broker/fixtures.js +12 -0
- package/dest/proving_broker/index.d.ts +1 -0
- package/dest/proving_broker/index.d.ts.map +1 -1
- package/dest/proving_broker/index.js +2 -1
- package/dest/proving_broker/proving_broker.d.ts +16 -12
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +306 -273
- package/dest/proving_broker/proving_broker_database/memory.d.ts +4 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/memory.js +17 -4
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +10 -6
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +105 -13
- package/dest/proving_broker/proving_broker_database.d.ts +7 -3
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +4 -4
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +4 -4
- package/dest/test/mock_prover.d.ts +6 -6
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +6 -6
- package/package.json +11 -11
- package/src/block_builder/light.ts +3 -21
- package/src/config.ts +4 -4
- package/src/mocks/test_context.ts +3 -6
- package/src/orchestrator/block-building-helpers.ts +44 -118
- package/src/orchestrator/block-proving-state.ts +251 -121
- package/src/orchestrator/epoch-proving-state.ts +159 -88
- package/src/orchestrator/orchestrator.ts +251 -527
- package/src/orchestrator/tx-proving-state.ts +35 -19
- package/src/prover-agent/memory-proving-queue.ts +11 -12
- package/src/prover-agent/prover-agent.ts +4 -4
- package/src/prover-client/prover-client.ts +4 -6
- package/src/prover-client/server-epoch-prover.ts +44 -0
- package/src/proving_broker/broker_prover_facade.ts +321 -61
- package/src/proving_broker/config.ts +93 -0
- package/src/proving_broker/factory.ts +2 -5
- package/src/proving_broker/fixtures.ts +14 -0
- package/src/proving_broker/index.ts +1 -0
- package/src/proving_broker/proving_broker.ts +114 -71
- package/src/proving_broker/proving_broker_database/memory.ts +24 -4
- package/src/proving_broker/proving_broker_database/persisted.ts +141 -19
- package/src/proving_broker/proving_broker_database.ts +8 -3
- package/src/proving_broker/proving_job_controller.ts +5 -5
- package/src/proving_broker/rpc.ts +2 -3
- package/src/test/mock_prover.ts +9 -11
|
@@ -1,75 +1,71 @@
|
|
|
1
|
-
import { type L2Block, type MerkleTreeId } from '@aztec/circuit-types';
|
|
2
|
-
import { type ARCHIVE_HEIGHT, type AppendOnlyTreeSnapshot, type Fr, type GlobalVariables, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type
|
|
1
|
+
import { type L2Block, type MerkleTreeId, type PublicInputsAndRecursiveProof } from '@aztec/circuit-types';
|
|
2
|
+
import { type ARCHIVE_HEIGHT, type AppendOnlyTreeSnapshot, type BlockHeader, Fr, type GlobalVariables, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, type NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, type ParityPublicInputs, RootParityInput, RootParityInputs } from '@aztec/circuits.js';
|
|
3
3
|
import { SpongeBlob } from '@aztec/circuits.js/blobs';
|
|
4
|
-
import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs } from '@aztec/circuits.js/rollup';
|
|
4
|
+
import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, SingleTxBlockRootRollupInputs } from '@aztec/circuits.js/rollup';
|
|
5
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
5
6
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
7
|
+
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
6
8
|
import { type EpochProvingState } from './epoch-proving-state.js';
|
|
7
9
|
import { type TxProvingState } from './tx-proving-state.js';
|
|
8
|
-
export type MergeRollupInputData = {
|
|
9
|
-
inputs: [BaseOrMergeRollupPublicInputs | undefined, BaseOrMergeRollupPublicInputs | undefined];
|
|
10
|
-
proofs: [
|
|
11
|
-
RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH> | undefined,
|
|
12
|
-
RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH> | undefined
|
|
13
|
-
];
|
|
14
|
-
verificationKeys: [VerificationKeyAsFields | undefined, VerificationKeyAsFields | undefined];
|
|
15
|
-
};
|
|
16
10
|
export type TreeSnapshots = Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
|
|
17
11
|
/**
|
|
18
12
|
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
19
13
|
* Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
|
|
20
14
|
*/
|
|
21
15
|
export declare class BlockProvingState {
|
|
16
|
+
#private;
|
|
22
17
|
readonly index: number;
|
|
23
18
|
readonly globalVariables: GlobalVariables;
|
|
24
19
|
readonly newL1ToL2Messages: Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP>;
|
|
25
|
-
readonly messageTreeSnapshot
|
|
26
|
-
readonly messageTreeRootSiblingPath
|
|
27
|
-
readonly messageTreeSnapshotAfterInsertion
|
|
28
|
-
readonly archiveTreeSnapshot
|
|
29
|
-
readonly archiveTreeRootSiblingPath
|
|
30
|
-
readonly
|
|
20
|
+
private readonly messageTreeSnapshot;
|
|
21
|
+
private readonly messageTreeRootSiblingPath;
|
|
22
|
+
private readonly messageTreeSnapshotAfterInsertion;
|
|
23
|
+
private readonly archiveTreeSnapshot;
|
|
24
|
+
private readonly archiveTreeRootSiblingPath;
|
|
25
|
+
private readonly previousBlockHeader;
|
|
26
|
+
private readonly previousBlockHash;
|
|
31
27
|
private readonly parentEpoch;
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
private
|
|
35
|
-
|
|
28
|
+
private baseOrMergeProvingOutputs;
|
|
29
|
+
private baseParityProvingOutputs;
|
|
30
|
+
private rootParityProvingOutput;
|
|
31
|
+
private blockRootProvingOutput;
|
|
36
32
|
blockRootRollupStarted: boolean;
|
|
37
|
-
finalProof: Proof | undefined;
|
|
38
33
|
block: L2Block | undefined;
|
|
39
34
|
spongeBlobState: SpongeBlob | undefined;
|
|
40
35
|
totalNumTxs: number;
|
|
41
36
|
private txs;
|
|
42
37
|
error: string | undefined;
|
|
43
|
-
constructor(index: number, globalVariables: GlobalVariables, newL1ToL2Messages: Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP>, messageTreeSnapshot: AppendOnlyTreeSnapshot, messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, archiveTreeSnapshot: AppendOnlyTreeSnapshot, archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHash: Fr, parentEpoch: EpochProvingState);
|
|
38
|
+
constructor(index: number, globalVariables: GlobalVariables, newL1ToL2Messages: Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP>, messageTreeSnapshot: AppendOnlyTreeSnapshot, messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, archiveTreeSnapshot: AppendOnlyTreeSnapshot, archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHeader: BlockHeader, previousBlockHash: Fr, parentEpoch: EpochProvingState);
|
|
44
39
|
get blockNumber(): number;
|
|
45
|
-
get numMergeLevels(): bigint;
|
|
46
|
-
findMergeLevel(currentLevel: bigint, currentIndex: bigint): bigint[];
|
|
47
40
|
startNewBlock(numTxs: number, numBlobFields: number): void;
|
|
48
41
|
addNewTx(tx: TxProvingState): number;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
setBaseRollupProof(txIndex: number, provingOutput: PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
43
|
+
setMergeRollupProof(location: TreeNodeLocation, provingOutput: PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
44
|
+
setBaseParityProof(index: number, provingOutput: PublicInputsAndRecursiveProof<ParityPublicInputs>): void;
|
|
45
|
+
setRootParityProof(provingOutput: PublicInputsAndRecursiveProof<ParityPublicInputs>): void;
|
|
46
|
+
setBlockRootRollupProof(provingOutput: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
53
47
|
get allTxs(): TxProvingState[];
|
|
54
48
|
/** Returns the block number as an epoch number. Used for prioritizing proof requests. */
|
|
55
49
|
get epochNumber(): number;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
50
|
+
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
51
|
+
getMergeRollupInputs(mergeLocation: TreeNodeLocation): MergeRollupInputs;
|
|
52
|
+
getBlockRootRollupTypeAndInputs(proverId: Fr): {
|
|
53
|
+
rollupType: string;
|
|
54
|
+
inputs: EmptyBlockRootRollupInputs;
|
|
55
|
+
} | {
|
|
56
|
+
rollupType: string;
|
|
57
|
+
inputs: SingleTxBlockRootRollupInputs;
|
|
58
|
+
} | {
|
|
59
|
+
rollupType: string;
|
|
60
|
+
inputs: BlockRootRollupInputs;
|
|
61
|
+
};
|
|
62
|
+
getRootParityInputs(): RootParityInputs;
|
|
63
|
+
getL1ToL2Roots(): RootParityInput<459>;
|
|
68
64
|
getTxProvingState(txIndex: number): TxProvingState;
|
|
69
|
-
|
|
65
|
+
buildHeaderFromProvingOutputs(logger?: Logger): BlockHeader;
|
|
66
|
+
isReadyForMergeRollup(location: TreeNodeLocation): boolean;
|
|
70
67
|
isReadyForBlockRootRollup(): boolean;
|
|
71
|
-
|
|
72
|
-
areRootParityInputsReady(): boolean;
|
|
68
|
+
isReadyForRootParity(): boolean;
|
|
73
69
|
verifyState(): boolean;
|
|
74
70
|
reject(reason: string): void;
|
|
75
71
|
}
|
|
@@ -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,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,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,11 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
var _BlockProvingState_instances, _BlockProvingState_getEmptyBlockRootInputs, _BlockProvingState_getBlockRootRollupData, _BlockProvingState_getChildProofsForBlockRoot, _BlockProvingState_getPreviousRollupData, _BlockProvingState_getRootParityInputFromProvingOutput;
|
|
2
|
+
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
+
import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, Fr, MembershipWitness, NUM_BASE_PARITY_PER_ROOT_PARITY, RootParityInput, RootParityInputs, StateReference, VK_TREE_HEIGHT, } from '@aztec/circuits.js';
|
|
2
4
|
import { SpongeBlob } from '@aztec/circuits.js/blobs';
|
|
5
|
+
import { BlockRootRollupData, BlockRootRollupInputs, ConstantRollupData, EmptyBlockRootRollupInputs, MergeRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs, } from '@aztec/circuits.js/rollup';
|
|
6
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
7
|
+
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
8
|
+
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vks';
|
|
9
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
10
|
+
import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
|
|
3
11
|
/**
|
|
4
12
|
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
5
13
|
* Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
|
|
6
14
|
*/
|
|
7
15
|
export class BlockProvingState {
|
|
8
|
-
constructor(index, globalVariables, newL1ToL2Messages, messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHash, parentEpoch) {
|
|
16
|
+
constructor(index, globalVariables, newL1ToL2Messages, messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHeader, previousBlockHash, parentEpoch) {
|
|
17
|
+
_BlockProvingState_instances.add(this);
|
|
9
18
|
this.index = index;
|
|
10
19
|
this.globalVariables = globalVariables;
|
|
11
20
|
this.newL1ToL2Messages = newL1ToL2Messages;
|
|
@@ -14,51 +23,23 @@ export class BlockProvingState {
|
|
|
14
23
|
this.messageTreeSnapshotAfterInsertion = messageTreeSnapshotAfterInsertion;
|
|
15
24
|
this.archiveTreeSnapshot = archiveTreeSnapshot;
|
|
16
25
|
this.archiveTreeRootSiblingPath = archiveTreeRootSiblingPath;
|
|
26
|
+
this.previousBlockHeader = previousBlockHeader;
|
|
17
27
|
this.previousBlockHash = previousBlockHash;
|
|
18
28
|
this.parentEpoch = parentEpoch;
|
|
19
|
-
this.
|
|
20
|
-
this.rootParityInputs = [];
|
|
29
|
+
this.baseOrMergeProvingOutputs = new UnbalancedTreeStore(0);
|
|
21
30
|
this.blockRootRollupStarted = false;
|
|
22
31
|
this.txs = [];
|
|
23
|
-
this.
|
|
32
|
+
this.baseParityProvingOutputs = Array.from({ length: NUM_BASE_PARITY_PER_ROOT_PARITY }).map(_ => undefined);
|
|
24
33
|
this.totalNumTxs = 0;
|
|
25
34
|
}
|
|
26
35
|
get blockNumber() {
|
|
27
36
|
return this.globalVariables.blockNumber.toNumber();
|
|
28
37
|
}
|
|
29
|
-
// Returns the number of levels of merge rollups
|
|
30
|
-
get numMergeLevels() {
|
|
31
|
-
return BigInt(Math.ceil(Math.log2(this.totalNumTxs)) - 1);
|
|
32
|
-
}
|
|
33
|
-
// Calculates the index and level of the parent rollup circuit
|
|
34
|
-
// Based on tree implementation in unbalanced_tree.ts -> batchInsert()
|
|
35
|
-
findMergeLevel(currentLevel, currentIndex) {
|
|
36
|
-
const moveUpMergeLevel = (levelSize, index, nodeToShift) => {
|
|
37
|
-
levelSize /= 2;
|
|
38
|
-
if (levelSize & 1) {
|
|
39
|
-
[levelSize, nodeToShift] = nodeToShift ? [levelSize + 1, false] : [levelSize - 1, true];
|
|
40
|
-
}
|
|
41
|
-
index >>= 1n;
|
|
42
|
-
return { thisLevelSize: levelSize, thisIndex: index, shiftUp: nodeToShift };
|
|
43
|
-
};
|
|
44
|
-
let [thisLevelSize, shiftUp] = this.totalNumTxs & 1 ? [this.totalNumTxs - 1, true] : [this.totalNumTxs, false];
|
|
45
|
-
const maxLevel = this.numMergeLevels + 1n;
|
|
46
|
-
let placeholder = currentIndex;
|
|
47
|
-
for (let i = 0; i < maxLevel - currentLevel; i++) {
|
|
48
|
-
({ thisLevelSize, thisIndex: placeholder, shiftUp } = moveUpMergeLevel(thisLevelSize, placeholder, shiftUp));
|
|
49
|
-
}
|
|
50
|
-
let thisIndex = currentIndex;
|
|
51
|
-
let mergeLevel = currentLevel;
|
|
52
|
-
while (thisIndex >= thisLevelSize && mergeLevel != 0n) {
|
|
53
|
-
mergeLevel -= 1n;
|
|
54
|
-
({ thisLevelSize, thisIndex, shiftUp } = moveUpMergeLevel(thisLevelSize, thisIndex, shiftUp));
|
|
55
|
-
}
|
|
56
|
-
return [mergeLevel - 1n, thisIndex >> 1n, thisIndex & 1n];
|
|
57
|
-
}
|
|
58
38
|
startNewBlock(numTxs, numBlobFields) {
|
|
59
39
|
if (this.spongeBlobState) {
|
|
60
40
|
throw new Error(`Block ${this.blockNumber} already initalised.`);
|
|
61
41
|
}
|
|
42
|
+
this.baseOrMergeProvingOutputs = new UnbalancedTreeStore(numTxs);
|
|
62
43
|
// Initialise the sponge which will eventually absorb all tx effects to be added to the blob.
|
|
63
44
|
// Like l1 to l2 messages, we need to know beforehand how many effects will be absorbed.
|
|
64
45
|
this.spongeBlobState = SpongeBlob.init(numBlobFields);
|
|
@@ -69,24 +50,28 @@ export class BlockProvingState {
|
|
|
69
50
|
if (!this.spongeBlobState) {
|
|
70
51
|
throw new Error(`Invalid block proving state, call startNewBlock before adding transactions.`);
|
|
71
52
|
}
|
|
72
|
-
this.txs.
|
|
73
|
-
|
|
53
|
+
const txIndex = this.txs.length;
|
|
54
|
+
this.txs[txIndex] = tx;
|
|
55
|
+
return txIndex;
|
|
56
|
+
}
|
|
57
|
+
setBaseRollupProof(txIndex, provingOutput) {
|
|
58
|
+
return this.baseOrMergeProvingOutputs.setLeaf(txIndex, provingOutput);
|
|
74
59
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return this.txs.length;
|
|
60
|
+
setMergeRollupProof(location, provingOutput) {
|
|
61
|
+
this.baseOrMergeProvingOutputs.setNode(location, provingOutput);
|
|
78
62
|
}
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
63
|
+
// Stores a set of root parity inputs at the given index
|
|
64
|
+
setBaseParityProof(index, provingOutput) {
|
|
65
|
+
if (index >= NUM_BASE_PARITY_PER_ROOT_PARITY) {
|
|
66
|
+
throw new Error(`Unable to set a base parity proofs at index ${index}. Expected at most ${NUM_BASE_PARITY_PER_ROOT_PARITY} proofs.`);
|
|
67
|
+
}
|
|
68
|
+
this.baseParityProvingOutputs[index] = provingOutput;
|
|
82
69
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.finalRootParityInputs = input;
|
|
70
|
+
setRootParityProof(provingOutput) {
|
|
71
|
+
this.rootParityProvingOutput = provingOutput;
|
|
86
72
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return this.rootParityInputs;
|
|
73
|
+
setBlockRootRollupProof(provingOutput) {
|
|
74
|
+
this.blockRootProvingOutput = provingOutput;
|
|
90
75
|
}
|
|
91
76
|
// Returns the complete set of transaction proving state objects
|
|
92
77
|
get allTxs() {
|
|
@@ -96,54 +81,85 @@ export class BlockProvingState {
|
|
|
96
81
|
get epochNumber() {
|
|
97
82
|
return this.parentEpoch.epochNumber;
|
|
98
83
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
84
|
+
getParentLocation(location) {
|
|
85
|
+
return this.baseOrMergeProvingOutputs.getParentLocation(location);
|
|
86
|
+
}
|
|
87
|
+
getMergeRollupInputs(mergeLocation) {
|
|
88
|
+
const [left, right] = this.baseOrMergeProvingOutputs.getChildren(mergeLocation);
|
|
89
|
+
if (!left || !right) {
|
|
90
|
+
throw new Error('At lease one child is not ready.');
|
|
91
|
+
}
|
|
92
|
+
return new MergeRollupInputs([__classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getPreviousRollupData).call(this, left), __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getPreviousRollupData).call(this, right)]);
|
|
93
|
+
}
|
|
94
|
+
getBlockRootRollupTypeAndInputs(proverId) {
|
|
95
|
+
if (this.totalNumTxs === 0) {
|
|
96
|
+
return {
|
|
97
|
+
rollupType: 'empty-block-root-rollup',
|
|
98
|
+
inputs: __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getEmptyBlockRootInputs).call(this, proverId),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const proofs = __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getChildProofsForBlockRoot).call(this);
|
|
102
|
+
const nonEmptyProofs = proofs.filter(p => !!p);
|
|
103
|
+
if (proofs.length !== nonEmptyProofs.length) {
|
|
104
|
+
throw new Error('At lease one child is not ready for the block root.');
|
|
105
|
+
}
|
|
106
|
+
const previousRollupData = nonEmptyProofs.map(p => __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getPreviousRollupData).call(this, p));
|
|
107
|
+
const data = __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getBlockRootRollupData).call(this, proverId);
|
|
108
|
+
if (previousRollupData.length === 1) {
|
|
109
|
+
return {
|
|
110
|
+
rollupType: 'single-tx-block-root-rollup',
|
|
111
|
+
inputs: new SingleTxBlockRootRollupInputs(previousRollupData, data),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
return {
|
|
116
|
+
rollupType: 'block-root-rollup',
|
|
117
|
+
inputs: new BlockRootRollupInputs(previousRollupData, data),
|
|
112
118
|
};
|
|
113
|
-
mergeInputData.inputs[indexWithinMerge] = mergeInputs[0];
|
|
114
|
-
mergeInputData.proofs[indexWithinMerge] = mergeInputs[1];
|
|
115
|
-
mergeInputData.verificationKeys[indexWithinMerge] = mergeInputs[2];
|
|
116
|
-
this.mergeRollupInputs[indexOfMerge] = mergeInputData;
|
|
117
|
-
return false;
|
|
118
119
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
}
|
|
121
|
+
getRootParityInputs() {
|
|
122
|
+
if (!this.baseParityProvingOutputs.every(p => !!p)) {
|
|
123
|
+
throw new Error('At lease one base parity is not ready.');
|
|
124
|
+
}
|
|
125
|
+
const children = this.baseParityProvingOutputs.map(p => __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getRootParityInputFromProvingOutput).call(this, p));
|
|
126
|
+
return new RootParityInputs(children);
|
|
127
|
+
}
|
|
128
|
+
getL1ToL2Roots() {
|
|
129
|
+
if (!this.rootParityProvingOutput) {
|
|
130
|
+
throw new Error('Root parity is not ready.');
|
|
131
|
+
}
|
|
132
|
+
return __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getRootParityInputFromProvingOutput).call(this, this.rootParityProvingOutput);
|
|
124
133
|
}
|
|
125
134
|
// Returns a specific transaction proving state
|
|
126
135
|
getTxProvingState(txIndex) {
|
|
127
136
|
return this.txs[txIndex];
|
|
128
137
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
buildHeaderFromProvingOutputs(logger) {
|
|
139
|
+
const previousRollupData = this.totalNumTxs === 0 ? [] : __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getChildProofsForBlockRoot).call(this).map(p => __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getPreviousRollupData).call(this, p));
|
|
140
|
+
let endPartialState = this.previousBlockHeader.state.partial;
|
|
141
|
+
if (this.totalNumTxs !== 0) {
|
|
142
|
+
const previousRollupData = __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getChildProofsForBlockRoot).call(this);
|
|
143
|
+
const lastRollup = previousRollupData[previousRollupData.length - 1];
|
|
144
|
+
if (!lastRollup) {
|
|
145
|
+
throw new Error('End state of the block is not available. Last rollup is not ready yet.');
|
|
146
|
+
}
|
|
147
|
+
endPartialState = lastRollup.inputs.end;
|
|
148
|
+
}
|
|
149
|
+
const endState = new StateReference(this.messageTreeSnapshotAfterInsertion, endPartialState);
|
|
150
|
+
return buildHeaderFromCircuitOutputs(previousRollupData.map(d => d.baseOrMergeRollupPublicInputs), this.rootParityProvingOutput.inputs, this.blockRootProvingOutput.inputs, endState, logger);
|
|
151
|
+
}
|
|
152
|
+
isReadyForMergeRollup(location) {
|
|
153
|
+
return this.baseOrMergeProvingOutputs.getSibling(location) !== undefined;
|
|
132
154
|
}
|
|
133
155
|
// Returns true if we have sufficient inputs to execute the block root rollup
|
|
134
156
|
isReadyForBlockRootRollup() {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
this.finalRootParityInput === undefined ||
|
|
138
|
-
this.mergeRollupInputs[0].inputs.findIndex(p => !p) !== -1);
|
|
139
|
-
}
|
|
140
|
-
// Stores a set of root parity inputs at the given index
|
|
141
|
-
setRootParityInputs(inputs, index) {
|
|
142
|
-
this.rootParityInputs[index] = inputs;
|
|
157
|
+
const childProofs = __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getChildProofsForBlockRoot).call(this);
|
|
158
|
+
return this.block !== undefined && this.rootParityProvingOutput !== undefined && childProofs.every(p => !!p);
|
|
143
159
|
}
|
|
144
160
|
// Returns true if we have sufficient root parity inputs to execute the root parity circuit
|
|
145
|
-
|
|
146
|
-
return this.
|
|
161
|
+
isReadyForRootParity() {
|
|
162
|
+
return this.baseParityProvingOutputs.every(p => !!p);
|
|
147
163
|
}
|
|
148
164
|
// Returns whether the proving state is still valid
|
|
149
165
|
verifyState() {
|
|
@@ -154,4 +170,52 @@ export class BlockProvingState {
|
|
|
154
170
|
this.parentEpoch.reject(reason);
|
|
155
171
|
}
|
|
156
172
|
}
|
|
157
|
-
|
|
173
|
+
_BlockProvingState_instances = new WeakSet(), _BlockProvingState_getEmptyBlockRootInputs = function _BlockProvingState_getEmptyBlockRootInputs(proverId) {
|
|
174
|
+
const l1ToL2Roots = this.getL1ToL2Roots();
|
|
175
|
+
const constants = ConstantRollupData.from({
|
|
176
|
+
lastArchive: this.archiveTreeSnapshot,
|
|
177
|
+
globalVariables: this.globalVariables,
|
|
178
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
179
|
+
protocolContractTreeRoot,
|
|
180
|
+
});
|
|
181
|
+
return EmptyBlockRootRollupInputs.from({
|
|
182
|
+
l1ToL2Roots,
|
|
183
|
+
newL1ToL2MessageTreeRootSiblingPath: this.messageTreeRootSiblingPath,
|
|
184
|
+
startL1ToL2MessageTreeSnapshot: this.messageTreeSnapshot,
|
|
185
|
+
newArchiveSiblingPath: this.archiveTreeRootSiblingPath,
|
|
186
|
+
previousBlockHash: this.previousBlockHash,
|
|
187
|
+
previousPartialState: this.previousBlockHeader.state.partial,
|
|
188
|
+
constants,
|
|
189
|
+
proverId,
|
|
190
|
+
isPadding: false,
|
|
191
|
+
});
|
|
192
|
+
}, _BlockProvingState_getBlockRootRollupData = function _BlockProvingState_getBlockRootRollupData(proverId) {
|
|
193
|
+
const txEffects = this.txs.map(txProvingState => txProvingState.processedTx.txEffect);
|
|
194
|
+
const { blobFields, blobCommitments, blobsHash } = buildBlobHints(txEffects);
|
|
195
|
+
return BlockRootRollupData.from({
|
|
196
|
+
l1ToL2Roots: this.getL1ToL2Roots(),
|
|
197
|
+
newL1ToL2MessageTreeRootSiblingPath: this.messageTreeRootSiblingPath,
|
|
198
|
+
startL1ToL2MessageTreeSnapshot: this.messageTreeSnapshot,
|
|
199
|
+
newArchiveSiblingPath: this.archiveTreeRootSiblingPath,
|
|
200
|
+
previousBlockHash: this.previousBlockHash,
|
|
201
|
+
proverId,
|
|
202
|
+
blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_BLOCK),
|
|
203
|
+
blobCommitments: padArrayEnd(blobCommitments, [Fr.ZERO, Fr.ZERO], BLOBS_PER_BLOCK),
|
|
204
|
+
blobsHash,
|
|
205
|
+
});
|
|
206
|
+
}, _BlockProvingState_getChildProofsForBlockRoot = function _BlockProvingState_getChildProofsForBlockRoot() {
|
|
207
|
+
if (this.totalNumTxs === 0) {
|
|
208
|
+
return [];
|
|
209
|
+
}
|
|
210
|
+
const rootLocation = { level: 0, index: 0 };
|
|
211
|
+
// If there's only 1 tx, its base rollup proof will be stored at the root.
|
|
212
|
+
return this.totalNumTxs === 1
|
|
213
|
+
? [this.baseOrMergeProvingOutputs.getNode(rootLocation)]
|
|
214
|
+
: this.baseOrMergeProvingOutputs.getChildren(rootLocation);
|
|
215
|
+
}, _BlockProvingState_getPreviousRollupData = function _BlockProvingState_getPreviousRollupData({ inputs, proof, verificationKey, }) {
|
|
216
|
+
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
217
|
+
return new PreviousRollupData(inputs, proof, verificationKey.keyAsFields, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
218
|
+
}, _BlockProvingState_getRootParityInputFromProvingOutput = function _BlockProvingState_getRootParityInputFromProvingOutput({ inputs, proof, verificationKey, }) {
|
|
219
|
+
return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(getVKIndex(verificationKey)), inputs);
|
|
220
|
+
};
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFHTCxlQUFlLEVBRWYsZUFBZSxFQUNmLEVBQUUsRUFHRixpQkFBaUIsRUFHakIsK0JBQStCLEVBRy9CLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGNBQWMsR0FDZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsNkJBQTZCLEdBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzNELE9BQU8sRUFBeUIsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxjQUFjLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU01Rjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBZ0I1QixZQUNrQixLQUFhLEVBQ2IsZUFBZ0MsRUFDaEMsaUJBQXdFLEVBQ3ZFLG1CQUEyQyxFQUMzQywwQkFBc0YsRUFDdEYsaUNBQXlELEVBQ3pELG1CQUEyQyxFQUMzQywwQkFBNEQsRUFDNUQsbUJBQWdDLEVBQ2hDLGlCQUFxQixFQUNyQixXQUE4Qjs7UUFWL0IsVUFBSyxHQUFMLEtBQUss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
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import { type MerkleTreeId } from '@aztec/circuit-types';
|
|
2
|
-
import {
|
|
3
|
-
import { type BlockRootOrBlockMergePublicInputs, type RootRollupPublicInputs } from '@aztec/circuits.js/rollup';
|
|
1
|
+
import { type MerkleTreeId, type ProofAndVerificationKey, type PublicInputsAndRecursiveProof } from '@aztec/circuit-types';
|
|
2
|
+
import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, type BlockHeader, Fr, type GlobalVariables, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/circuits.js';
|
|
3
|
+
import { BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, EmptyBlockRootRollupInputs, RootRollupInputs, type RootRollupPublicInputs } from '@aztec/circuits.js/rollup';
|
|
4
4
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
5
|
+
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
5
6
|
import { BlockProvingState } from './block-proving-state.js';
|
|
6
7
|
export type TreeSnapshots = Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
|
|
7
|
-
export type BlockMergeRollupInputData = {
|
|
8
|
-
inputs: [BlockRootOrBlockMergePublicInputs | undefined, BlockRootOrBlockMergePublicInputs | undefined];
|
|
9
|
-
proofs: [
|
|
10
|
-
RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH> | undefined,
|
|
11
|
-
RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH> | undefined
|
|
12
|
-
];
|
|
13
|
-
verificationKeys: [VerificationKeyAsFields | undefined, VerificationKeyAsFields | undefined];
|
|
14
|
-
};
|
|
15
8
|
export type ProvingResult = {
|
|
16
9
|
status: 'success';
|
|
17
10
|
} | {
|
|
@@ -25,36 +18,36 @@ export type ProvingResult = {
|
|
|
25
18
|
* Captures resolve and reject callbacks to provide a promise base interface to the consumer of our proving.
|
|
26
19
|
*/
|
|
27
20
|
export declare class EpochProvingState {
|
|
21
|
+
#private;
|
|
28
22
|
readonly epochNumber: number;
|
|
29
23
|
readonly firstBlockNumber: number;
|
|
30
24
|
readonly totalNumBlocks: number;
|
|
31
25
|
private completionCallback;
|
|
32
26
|
private rejectionCallback;
|
|
27
|
+
private blockRootOrMergeProvingOutputs;
|
|
28
|
+
private paddingBlockRootProvingOutput;
|
|
29
|
+
private rootRollupProvingOutput;
|
|
33
30
|
private provingStateLifecycle;
|
|
34
|
-
|
|
35
|
-
rootRollupPublicInputs: RootRollupPublicInputs | undefined;
|
|
36
|
-
finalProof: Proof | undefined;
|
|
31
|
+
readonly cachedTubeProofs: Map<string, Promise<ProofAndVerificationKey<534>>>;
|
|
37
32
|
blocks: (BlockProvingState | undefined)[];
|
|
38
33
|
constructor(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
|
|
39
|
-
|
|
40
|
-
findMergeLevel(currentLevel: bigint, currentIndex: bigint): bigint[];
|
|
41
|
-
startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[], messageTreeSnapshot: AppendOnlyTreeSnapshot, messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, archiveTreeSnapshot: AppendOnlyTreeSnapshot, archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHash: Fr): BlockProvingState;
|
|
34
|
+
startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[], messageTreeSnapshot: AppendOnlyTreeSnapshot, messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, archiveTreeSnapshot: AppendOnlyTreeSnapshot, archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHeader: BlockHeader, previousBlockHash: Fr): BlockProvingState;
|
|
42
35
|
verifyState(): boolean;
|
|
43
36
|
isAcceptingBlocks(): boolean;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
BlockRootOrBlockMergePublicInputs,
|
|
53
|
-
RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>,
|
|
54
|
-
VerificationKeyAsFields
|
|
55
|
-
], indexWithinMerge: number, indexOfMerge: number): boolean;
|
|
37
|
+
setBlockRootRollupProof(blockIndex: number, proof: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
38
|
+
setBlockMergeRollupProof(location: TreeNodeLocation, proof: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
39
|
+
setRootRollupProof(proof: PublicInputsAndRecursiveProof<RootRollupPublicInputs>): void;
|
|
40
|
+
setPaddingBlockRootProof(proof: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
41
|
+
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
42
|
+
getBlockMergeRollupInputs(mergeLocation: TreeNodeLocation): BlockMergeRollupInputs;
|
|
43
|
+
getRootRollupInputs(proverId: Fr): RootRollupInputs;
|
|
44
|
+
getPaddingBlockRootInputs(proverId: Fr): EmptyBlockRootRollupInputs;
|
|
56
45
|
getBlockProvingStateByBlockNumber(blockNumber: number): BlockProvingState | undefined;
|
|
57
|
-
|
|
46
|
+
getEpochProofResult(): {
|
|
47
|
+
proof: import("@aztec/circuits.js").Proof;
|
|
48
|
+
publicInputs: RootRollupPublicInputs;
|
|
49
|
+
};
|
|
50
|
+
isReadyForBlockMerge(location: TreeNodeLocation): boolean;
|
|
58
51
|
isReadyForRootRollup(): boolean;
|
|
59
52
|
cancel(): void;
|
|
60
53
|
reject(reason: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|