@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.
Files changed (90) hide show
  1. package/dest/block_builder/light.d.ts +0 -1
  2. package/dest/block_builder/light.d.ts.map +1 -1
  3. package/dest/block_builder/light.js +4 -14
  4. package/dest/config.d.ts +2 -1
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +3 -2
  7. package/dest/mocks/test_context.d.ts +2 -2
  8. package/dest/mocks/test_context.d.ts.map +1 -1
  9. package/dest/mocks/test_context.js +6 -6
  10. package/dest/orchestrator/block-building-helpers.d.ts +10 -25
  11. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  12. package/dest/orchestrator/block-building-helpers.js +33 -44
  13. package/dest/orchestrator/block-proving-state.d.ts +40 -44
  14. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  15. package/dest/orchestrator/block-proving-state.js +149 -85
  16. package/dest/orchestrator/epoch-proving-state.d.ts +23 -30
  17. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  18. package/dest/orchestrator/epoch-proving-state.js +92 -65
  19. package/dest/orchestrator/orchestrator.d.ts +16 -47
  20. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  21. package/dest/orchestrator/orchestrator.js +204 -341
  22. package/dest/orchestrator/tx-proving-state.d.ts +10 -6
  23. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  24. package/dest/orchestrator/tx-proving-state.js +57 -46
  25. package/dest/prover-agent/memory-proving-queue.d.ts +3 -3
  26. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
  27. package/dest/prover-agent/memory-proving-queue.js +4 -4
  28. package/dest/prover-agent/prover-agent.js +4 -4
  29. package/dest/prover-client/prover-client.d.ts.map +1 -1
  30. package/dest/prover-client/prover-client.js +5 -2
  31. package/dest/prover-client/server-epoch-prover.d.ts +25 -0
  32. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -0
  33. package/dest/prover-client/server-epoch-prover.js +40 -0
  34. package/dest/proving_broker/broker_prover_facade.d.ts +15 -4
  35. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  36. package/dest/proving_broker/broker_prover_facade.js +247 -44
  37. package/dest/proving_broker/config.d.ts +61 -0
  38. package/dest/proving_broker/config.d.ts.map +1 -0
  39. package/dest/proving_broker/config.js +83 -0
  40. package/dest/proving_broker/factory.d.ts +1 -1
  41. package/dest/proving_broker/factory.d.ts.map +1 -1
  42. package/dest/proving_broker/factory.js +2 -5
  43. package/dest/proving_broker/fixtures.d.ts +5 -0
  44. package/dest/proving_broker/fixtures.d.ts.map +1 -0
  45. package/dest/proving_broker/fixtures.js +12 -0
  46. package/dest/proving_broker/index.d.ts +1 -0
  47. package/dest/proving_broker/index.d.ts.map +1 -1
  48. package/dest/proving_broker/index.js +2 -1
  49. package/dest/proving_broker/proving_broker.d.ts +16 -12
  50. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  51. package/dest/proving_broker/proving_broker.js +306 -273
  52. package/dest/proving_broker/proving_broker_database/memory.d.ts +4 -2
  53. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  54. package/dest/proving_broker/proving_broker_database/memory.js +17 -4
  55. package/dest/proving_broker/proving_broker_database/persisted.d.ts +10 -6
  56. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  57. package/dest/proving_broker/proving_broker_database/persisted.js +105 -13
  58. package/dest/proving_broker/proving_broker_database.d.ts +7 -3
  59. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  60. package/dest/proving_broker/proving_job_controller.js +4 -4
  61. package/dest/proving_broker/rpc.d.ts.map +1 -1
  62. package/dest/proving_broker/rpc.js +4 -4
  63. package/dest/test/mock_prover.d.ts +6 -6
  64. package/dest/test/mock_prover.d.ts.map +1 -1
  65. package/dest/test/mock_prover.js +6 -6
  66. package/package.json +11 -11
  67. package/src/block_builder/light.ts +3 -21
  68. package/src/config.ts +4 -4
  69. package/src/mocks/test_context.ts +3 -6
  70. package/src/orchestrator/block-building-helpers.ts +44 -118
  71. package/src/orchestrator/block-proving-state.ts +251 -121
  72. package/src/orchestrator/epoch-proving-state.ts +159 -88
  73. package/src/orchestrator/orchestrator.ts +251 -527
  74. package/src/orchestrator/tx-proving-state.ts +35 -19
  75. package/src/prover-agent/memory-proving-queue.ts +11 -12
  76. package/src/prover-agent/prover-agent.ts +4 -4
  77. package/src/prover-client/prover-client.ts +4 -6
  78. package/src/prover-client/server-epoch-prover.ts +44 -0
  79. package/src/proving_broker/broker_prover_facade.ts +321 -61
  80. package/src/proving_broker/config.ts +93 -0
  81. package/src/proving_broker/factory.ts +2 -5
  82. package/src/proving_broker/fixtures.ts +14 -0
  83. package/src/proving_broker/index.ts +1 -0
  84. package/src/proving_broker/proving_broker.ts +114 -71
  85. package/src/proving_broker/proving_broker_database/memory.ts +24 -4
  86. package/src/proving_broker/proving_broker_database/persisted.ts +141 -19
  87. package/src/proving_broker/proving_broker_database.ts +8 -3
  88. package/src/proving_broker/proving_job_controller.ts +5 -5
  89. package/src/proving_broker/rpc.ts +2 -3
  90. 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 NESTED_RECURSIVE_PROOF_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, type NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, type Proof, type RECURSIVE_PROOF_LENGTH, type RecursiveProof, type RootParityInput, type VerificationKeyAsFields } from '@aztec/circuits.js';
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: AppendOnlyTreeSnapshot;
26
- readonly messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>;
27
- readonly messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot;
28
- readonly archiveTreeSnapshot: AppendOnlyTreeSnapshot;
29
- readonly archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
30
- readonly previousBlockHash: Fr;
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 mergeRollupInputs;
33
- private rootParityInputs;
34
- private finalRootParityInputs;
35
- blockRootRollupPublicInputs: BlockRootOrBlockMergePublicInputs | undefined;
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
- get transactionsReceived(): number;
50
- get finalRootParityInput(): RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH> | undefined;
51
- set finalRootParityInput(input: RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH> | undefined);
52
- get rootParityInput(): (RootParityInput<459> | undefined)[];
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
- * Stores the inputs to a merge circuit and determines if the circuit is ready to be executed
58
- * @param mergeInputs - The inputs to store
59
- * @param indexWithinMerge - The index in the set of inputs to this merge circuit
60
- * @param indexOfMerge - The global index of this merge circuit
61
- * @returns True if the merge circuit is ready to be executed, false otherwise
62
- */
63
- storeMergeInputs(mergeInputs: [
64
- BaseOrMergeRollupPublicInputs,
65
- RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>,
66
- VerificationKeyAsFields
67
- ], indexWithinMerge: number, indexOfMerge: number): boolean;
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
- getMergeInputs(indexOfMerge: number): MergeRollupInputData;
65
+ buildHeaderFromProvingOutputs(logger?: Logger): BlockHeader;
66
+ isReadyForMergeRollup(location: TreeNodeLocation): boolean;
70
67
  isReadyForBlockRootRollup(): boolean;
71
- setRootParityInputs(inputs: RootParityInput<typeof RECURSIVE_PROOF_LENGTH>, index: number): void;
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":"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"}
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
- import { NUM_BASE_PARITY_PER_ROOT_PARITY, } from '@aztec/circuits.js';
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.mergeRollupInputs = [];
20
- this.rootParityInputs = [];
29
+ this.baseOrMergeProvingOutputs = new UnbalancedTreeStore(0);
21
30
  this.blockRootRollupStarted = false;
22
31
  this.txs = [];
23
- this.rootParityInputs = Array.from({ length: NUM_BASE_PARITY_PER_ROOT_PARITY }).map(_ => undefined);
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.push(tx);
73
- return this.txs.length - 1;
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
- // Returns the number of received transactions
76
- get transactionsReceived() {
77
- return this.txs.length;
60
+ setMergeRollupProof(location, provingOutput) {
61
+ this.baseOrMergeProvingOutputs.setNode(location, provingOutput);
78
62
  }
79
- // Returns the final set of root parity inputs
80
- get finalRootParityInput() {
81
- return this.finalRootParityInputs;
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
- // Sets the final set of root parity inputs
84
- set finalRootParityInput(input) {
85
- this.finalRootParityInputs = input;
70
+ setRootParityProof(provingOutput) {
71
+ this.rootParityProvingOutput = provingOutput;
86
72
  }
87
- // Returns the set of root parity inputs
88
- get rootParityInput() {
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
- * Stores the inputs to a merge circuit and determines if the circuit is ready to be executed
101
- * @param mergeInputs - The inputs to store
102
- * @param indexWithinMerge - The index in the set of inputs to this merge circuit
103
- * @param indexOfMerge - The global index of this merge circuit
104
- * @returns True if the merge circuit is ready to be executed, false otherwise
105
- */
106
- storeMergeInputs(mergeInputs, indexWithinMerge, indexOfMerge) {
107
- if (!this.mergeRollupInputs[indexOfMerge]) {
108
- const mergeInputData = {
109
- inputs: [undefined, undefined],
110
- proofs: [undefined, undefined],
111
- verificationKeys: [undefined, undefined],
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
- const mergeInputData = this.mergeRollupInputs[indexOfMerge];
120
- mergeInputData.inputs[indexWithinMerge] = mergeInputs[0];
121
- mergeInputData.proofs[indexWithinMerge] = mergeInputs[1];
122
- mergeInputData.verificationKeys[indexWithinMerge] = mergeInputs[2];
123
- return true;
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
- // Returns a set of merge rollup inputs
130
- getMergeInputs(indexOfMerge) {
131
- return this.mergeRollupInputs[indexOfMerge];
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
- return !(this.block === undefined ||
136
- this.mergeRollupInputs[0] === undefined ||
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
- areRootParityInputsReady() {
146
- return this.rootParityInputs.findIndex(p => !p) === -1;
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBU0wsK0JBQStCLEdBTWhDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBa0J0RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQ2tCLEtBQWEsRUFDYixlQUFnQyxFQUNoQyxpQkFBd0UsRUFDeEUsbUJBQTJDLEVBQzNDLDBCQUFzRixFQUN0RixpQ0FBeUQsRUFDekQsbUJBQTJDLEVBQzNDLDBCQUE0RCxFQUM1RCxpQkFBcUIsRUFDcEIsV0FBOEI7UUFUL0IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVEO1FBQ3hFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0MsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0RDtRQUN0RixzQ0FBaUMsR0FBakMsaUNBQWlDLENBQXdCO1FBQ3pELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0MsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFrQztRQUM1RCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQUk7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBdEJ6QyxzQkFBaUIsR0FBMkIsRUFBRSxDQUFDO1FBQy9DLHFCQUFnQixHQUFzRSxFQUFFLENBQUM7UUFHMUYsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBS3ZDLFFBQUcsR0FBcUIsRUFBRSxDQUFDO1FBZWpDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FB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
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 { type ARCHIVE_HEIGHT, type AppendOnlyTreeSnapshot, Fr, type GlobalVariables, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, type Proof, type RecursiveProof, type VerificationKeyAsFields } from '@aztec/circuits.js';
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
- private mergeRollupInputs;
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
- get numMergeLevels(): bigint;
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
- * Stores the inputs to a merge circuit and determines if the circuit is ready to be executed
46
- * @param mergeInputs - The inputs to store
47
- * @param indexWithinMerge - The index in the set of inputs to this merge circuit
48
- * @param indexOfMerge - The global index of this merge circuit
49
- * @returns True if the merge circuit is ready to be executed, false otherwise
50
- */
51
- storeMergeInputs(mergeInputs: [
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
- getMergeInputs(indexOfMerge: number): BlockMergeRollupInputData;
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,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,EAAE,EACF,KAAK,eAAe,EACpB,KAAK,wCAAwC,EAC7C,KAAK,yCAAyC,EAE9C,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,iCAAiC,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEhH,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAStE,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,CAAC,iCAAiC,GAAG,SAAS,EAAE,iCAAiC,GAAG,SAAS,CAAC,CAAC;IACvG,MAAM,EAAE;QACN,cAAc,CAAC,OAAO,yCAAyC,CAAC,GAAG,SAAS;QAC5E,cAAc,CAAC,OAAO,yCAAyC,CAAC,GAAG,SAAS;KAC7E,CAAC;IACF,gBAAgB,EAAE,CAAC,uBAAuB,GAAG,SAAS,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;CAC9F,CAAC;AAEF,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;aASV,WAAW,EAAE,MAAM;aACnB,gBAAgB,EAAE,MAAM;aACxB,cAAc,EAAE,MAAM;IACtC,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,iBAAiB;IAZ3B,OAAO,CAAC,qBAAqB,CAAiD;IAE9E,OAAO,CAAC,iBAAiB,CAAmC;IACrD,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC3D,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAE,CAAM;gBAGpC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EAC9B,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,EACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAIrD,IAAW,cAAc,WAGxB;IAKM,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IA2BzD,aAAa,CAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,mBAAmB,EAAE,sBAAsB,EAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wCAAwC,CAAC,EACtF,iCAAiC,EAAE,sBAAsB,EACzD,mBAAmB,EAAE,sBAAsB,EAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EAC5D,iBAAiB,EAAE,EAAE,GACpB,iBAAiB;IAsBb,WAAW;IAQX,iBAAiB;IAIxB;;;;;;OAMG;IACI,gBAAgB,CACrB,WAAW,EAAE;QACX,iCAAiC;QACjC,cAAc,CAAC,OAAO,yCAAyC,CAAC;QAChE,uBAAuB;KACxB,EACD,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM;IAsBf,iCAAiC,CAAC,WAAW,EAAE,MAAM;IAKrD,cAAc,CAAC,YAAY,EAAE,MAAM;IAKnC,oBAAoB;IAKpB,MAAM;IAMN,MAAM,CAAC,MAAM,EAAE,MAAM;IAUrB,OAAO,CAAC,MAAM,EAAE,aAAa;CAOrC"}
1
+ {"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}