@aztec/prover-client 0.55.1 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dest/index.d.ts +1 -1
  2. package/dest/index.d.ts.map +1 -1
  3. package/dest/mocks/fixtures.d.ts.map +1 -1
  4. package/dest/mocks/fixtures.js +6 -27
  5. package/dest/mocks/test_context.d.ts +9 -10
  6. package/dest/mocks/test_context.d.ts.map +1 -1
  7. package/dest/mocks/test_context.js +13 -15
  8. package/dest/orchestrator/block-building-helpers.d.ts +12 -3
  9. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  10. package/dest/orchestrator/block-building-helpers.js +34 -32
  11. package/dest/orchestrator/{proving-state.d.ts → block-proving-state.d.ts} +19 -16
  12. package/dest/orchestrator/block-proving-state.d.ts.map +1 -0
  13. package/dest/orchestrator/block-proving-state.js +147 -0
  14. package/dest/orchestrator/epoch-proving-state.d.ts +63 -0
  15. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -0
  16. package/dest/orchestrator/epoch-proving-state.js +143 -0
  17. package/dest/orchestrator/orchestrator.d.ts +33 -15
  18. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  19. package/dest/orchestrator/orchestrator.js +315 -172
  20. package/dest/orchestrator/tx-proving-state.d.ts +3 -2
  21. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  22. package/dest/orchestrator/tx-proving-state.js +54 -26
  23. package/dest/prover-agent/memory-proving-queue.d.ts +11 -5
  24. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
  25. package/dest/prover-agent/memory-proving-queue.js +16 -6
  26. package/dest/prover-agent/prover-agent.d.ts.map +1 -1
  27. package/dest/prover-agent/prover-agent.js +10 -10
  28. package/dest/prover-agent/rpc.d.ts.map +1 -1
  29. package/dest/prover-agent/rpc.js +8 -2
  30. package/dest/test/mock_prover.d.ts +6 -4
  31. package/dest/test/mock_prover.d.ts.map +1 -1
  32. package/dest/test/mock_prover.js +9 -3
  33. package/dest/tx-prover/tx-prover.d.ts +3 -3
  34. package/dest/tx-prover/tx-prover.d.ts.map +1 -1
  35. package/dest/tx-prover/tx-prover.js +1 -1
  36. package/package.json +15 -11
  37. package/src/index.ts +1 -1
  38. package/src/mocks/fixtures.ts +5 -49
  39. package/src/mocks/test_context.ts +15 -20
  40. package/src/orchestrator/block-building-helpers.ts +90 -57
  41. package/src/orchestrator/{proving-state.ts → block-proving-state.ts} +29 -53
  42. package/src/orchestrator/epoch-proving-state.ts +221 -0
  43. package/src/orchestrator/orchestrator.ts +494 -292
  44. package/src/orchestrator/tx-proving-state.ts +63 -27
  45. package/src/prover-agent/memory-proving-queue.ts +31 -16
  46. package/src/prover-agent/prover-agent.ts +11 -9
  47. package/src/prover-agent/rpc.ts +9 -0
  48. package/src/test/mock_prover.ts +23 -1
  49. package/src/tx-prover/tx-prover.ts +4 -4
  50. package/dest/orchestrator/proving-state.d.ts.map +0 -1
  51. package/dest/orchestrator/proving-state.js +0 -170
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import { NUM_BASE_PARITY_PER_ROOT_PARITY, } from '@aztec/circuits.js';
2
+ /**
3
+ * The current state of the proving schedule for a given block. Managed by ProvingState.
4
+ * Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
5
+ */
6
+ export class BlockProvingState {
7
+ constructor(index, totalNumTxs, globalVariables, newL1ToL2Messages, messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHash, parentEpoch) {
8
+ this.index = index;
9
+ this.totalNumTxs = totalNumTxs;
10
+ this.globalVariables = globalVariables;
11
+ this.newL1ToL2Messages = newL1ToL2Messages;
12
+ this.messageTreeSnapshot = messageTreeSnapshot;
13
+ this.messageTreeRootSiblingPath = messageTreeRootSiblingPath;
14
+ this.messageTreeSnapshotAfterInsertion = messageTreeSnapshotAfterInsertion;
15
+ this.archiveTreeSnapshot = archiveTreeSnapshot;
16
+ this.archiveTreeRootSiblingPath = archiveTreeRootSiblingPath;
17
+ this.previousBlockHash = previousBlockHash;
18
+ this.parentEpoch = parentEpoch;
19
+ this.mergeRollupInputs = [];
20
+ this.rootParityInputs = [];
21
+ this.blockRootRollupStarted = false;
22
+ this.txs = [];
23
+ this.rootParityInputs = Array.from({ length: NUM_BASE_PARITY_PER_ROOT_PARITY }).map(_ => undefined);
24
+ }
25
+ get blockNumber() {
26
+ return this.globalVariables.blockNumber.toNumber();
27
+ }
28
+ // Returns the number of levels of merge rollups
29
+ get numMergeLevels() {
30
+ return BigInt(Math.ceil(Math.log2(this.totalNumTxs)) - 1);
31
+ }
32
+ // Calculates the index and level of the parent rollup circuit
33
+ // Based on tree implementation in unbalanced_tree.ts -> batchInsert()
34
+ findMergeLevel(currentLevel, currentIndex) {
35
+ const moveUpMergeLevel = (levelSize, index, nodeToShift) => {
36
+ levelSize /= 2;
37
+ if (levelSize & 1) {
38
+ [levelSize, nodeToShift] = nodeToShift ? [levelSize + 1, false] : [levelSize - 1, true];
39
+ }
40
+ index >>= 1n;
41
+ return { thisLevelSize: levelSize, thisIndex: index, shiftUp: nodeToShift };
42
+ };
43
+ let [thisLevelSize, shiftUp] = this.totalNumTxs & 1 ? [this.totalNumTxs - 1, true] : [this.totalNumTxs, false];
44
+ const maxLevel = this.numMergeLevels + 1n;
45
+ let placeholder = currentIndex;
46
+ for (let i = 0; i < maxLevel - currentLevel; i++) {
47
+ ({ thisLevelSize, thisIndex: placeholder, shiftUp } = moveUpMergeLevel(thisLevelSize, placeholder, shiftUp));
48
+ }
49
+ let thisIndex = currentIndex;
50
+ let mergeLevel = currentLevel;
51
+ while (thisIndex >= thisLevelSize && mergeLevel != 0n) {
52
+ mergeLevel -= 1n;
53
+ ({ thisLevelSize, thisIndex, shiftUp } = moveUpMergeLevel(thisLevelSize, thisIndex, shiftUp));
54
+ }
55
+ return [mergeLevel - 1n, thisIndex >> 1n, thisIndex & 1n];
56
+ }
57
+ // Adds a transaction to the proving state, returns it's index
58
+ addNewTx(tx) {
59
+ this.txs.push(tx);
60
+ return this.txs.length - 1;
61
+ }
62
+ // Returns the number of received transactions
63
+ get transactionsReceived() {
64
+ return this.txs.length;
65
+ }
66
+ // Returns the final set of root parity inputs
67
+ get finalRootParityInput() {
68
+ return this.finalRootParityInputs;
69
+ }
70
+ // Sets the final set of root parity inputs
71
+ set finalRootParityInput(input) {
72
+ this.finalRootParityInputs = input;
73
+ }
74
+ // Returns the set of root parity inputs
75
+ get rootParityInput() {
76
+ return this.rootParityInputs;
77
+ }
78
+ // Returns the complete set of transaction proving state objects
79
+ get allTxs() {
80
+ return this.txs;
81
+ }
82
+ /** Returns the block number as an epoch number. Used for prioritizing proof requests. */
83
+ get epochNumber() {
84
+ return this.globalVariables.blockNumber.toNumber();
85
+ }
86
+ /**
87
+ * Stores the inputs to a merge circuit and determines if the circuit is ready to be executed
88
+ * @param mergeInputs - The inputs to store
89
+ * @param indexWithinMerge - The index in the set of inputs to this merge circuit
90
+ * @param indexOfMerge - The global index of this merge circuit
91
+ * @returns True if the merge circuit is ready to be executed, false otherwise
92
+ */
93
+ storeMergeInputs(mergeInputs, indexWithinMerge, indexOfMerge) {
94
+ if (!this.mergeRollupInputs[indexOfMerge]) {
95
+ const mergeInputData = {
96
+ inputs: [undefined, undefined],
97
+ proofs: [undefined, undefined],
98
+ verificationKeys: [undefined, undefined],
99
+ };
100
+ mergeInputData.inputs[indexWithinMerge] = mergeInputs[0];
101
+ mergeInputData.proofs[indexWithinMerge] = mergeInputs[1];
102
+ mergeInputData.verificationKeys[indexWithinMerge] = mergeInputs[2];
103
+ this.mergeRollupInputs[indexOfMerge] = mergeInputData;
104
+ return false;
105
+ }
106
+ const mergeInputData = this.mergeRollupInputs[indexOfMerge];
107
+ mergeInputData.inputs[indexWithinMerge] = mergeInputs[0];
108
+ mergeInputData.proofs[indexWithinMerge] = mergeInputs[1];
109
+ mergeInputData.verificationKeys[indexWithinMerge] = mergeInputs[2];
110
+ return true;
111
+ }
112
+ // Returns a specific transaction proving state
113
+ getTxProvingState(txIndex) {
114
+ return this.txs[txIndex];
115
+ }
116
+ // Returns a set of merge rollup inputs
117
+ getMergeInputs(indexOfMerge) {
118
+ return this.mergeRollupInputs[indexOfMerge];
119
+ }
120
+ // Returns true if we have sufficient inputs to execute the block root rollup
121
+ isReadyForBlockRootRollup() {
122
+ return !(this.block === undefined ||
123
+ this.mergeRollupInputs[0] === undefined ||
124
+ this.finalRootParityInput === undefined ||
125
+ this.mergeRollupInputs[0].inputs.findIndex(p => !p) !== -1);
126
+ }
127
+ // Stores a set of root parity inputs at the given index
128
+ setRootParityInputs(inputs, index) {
129
+ this.rootParityInputs[index] = inputs;
130
+ }
131
+ // Returns true if we have sufficient root parity inputs to execute the root parity circuit
132
+ areRootParityInputsReady() {
133
+ return this.rootParityInputs.findIndex(p => !p) === -1;
134
+ }
135
+ // Returns true if we are still able to accept transactions, false otherwise
136
+ isAcceptingTransactions() {
137
+ return this.totalNumTxs > this.txs.length;
138
+ }
139
+ // Returns whether the proving state is still valid
140
+ verifyState() {
141
+ return this.parentEpoch.verifyState();
142
+ }
143
+ reject(reason) {
144
+ this.parentEpoch.reject(reason);
145
+ }
146
+ }
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBVUwsK0JBQStCLEdBTWhDLE1BQU0sb0JBQW9CLENBQUM7QUFpQjVCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFVNUIsWUFDa0IsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLGVBQWdDLEVBQ2hDLGlCQUF3RSxFQUN4RSxtQkFBMkMsRUFDM0MsMEJBQXNGLEVBQ3RGLGlDQUF5RCxFQUN6RCxtQkFBMkMsRUFDM0MsMEJBQTRELEVBQzVELGlCQUFxQixFQUNwQixXQUE4QjtRQVYvQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBdUQ7UUFDeEUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTREO1FBQ3RGLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBd0I7UUFDekQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWtDO1FBQzVELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBSTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFwQnpDLHNCQUFpQixHQUEyQixFQUFFLENBQUM7UUFDL0MscUJBQWdCLEdBQXNFLEVBQUUsQ0FBQztRQUcxRiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsUUFBRyxHQUFxQixFQUFFLENBQUM7UUFlakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLEdB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
@@ -0,0 +1,63 @@
1
+ import { type MerkleTreeId } from '@aztec/circuit-types';
2
+ import { type ARCHIVE_HEIGHT, type AppendOnlyTreeSnapshot, type BlockRootOrBlockMergePublicInputs, Fr, type GlobalVariables, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_PROOF_LENGTH, type Proof, type RecursiveProof, type RootRollupPublicInputs, type VerificationKeyAsFields } from '@aztec/circuits.js';
3
+ import { type Tuple } from '@aztec/foundation/serialize';
4
+ import { BlockProvingState } from './block-proving-state.js';
5
+ export type TreeSnapshots = Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
6
+ export type BlockMergeRollupInputData = {
7
+ inputs: [BlockRootOrBlockMergePublicInputs | undefined, BlockRootOrBlockMergePublicInputs | undefined];
8
+ proofs: [
9
+ RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH> | undefined,
10
+ RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH> | undefined
11
+ ];
12
+ verificationKeys: [VerificationKeyAsFields | undefined, VerificationKeyAsFields | undefined];
13
+ };
14
+ export type ProvingResult = {
15
+ status: 'success';
16
+ } | {
17
+ status: 'failure';
18
+ reason: string;
19
+ };
20
+ /**
21
+ * The current state of the proving schedule for an epoch.
22
+ * Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
23
+ * Carries an identifier so we can identify if the proving state is discarded and a new one started.
24
+ * Captures resolve and reject callbacks to provide a promise base interface to the consumer of our proving.
25
+ */
26
+ export declare class EpochProvingState {
27
+ readonly epochNumber: number;
28
+ readonly totalNumBlocks: number;
29
+ private completionCallback;
30
+ private rejectionCallback;
31
+ private provingStateLifecycle;
32
+ private mergeRollupInputs;
33
+ rootRollupPublicInputs: RootRollupPublicInputs | undefined;
34
+ finalProof: Proof | undefined;
35
+ blocks: BlockProvingState[];
36
+ constructor(epochNumber: number, totalNumBlocks: number, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
37
+ /** Returns the current block proving state */
38
+ get currentBlock(): BlockProvingState | undefined;
39
+ get numMergeLevels(): bigint;
40
+ findMergeLevel(currentLevel: bigint, currentIndex: bigint): bigint[];
41
+ startNewBlock(numTxs: number, 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): number;
42
+ verifyState(): boolean;
43
+ 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_PROOF_LENGTH>,
54
+ VerificationKeyAsFields
55
+ ], indexWithinMerge: number, indexOfMerge: number): boolean;
56
+ getBlockProvingState(index: number): BlockProvingState;
57
+ getMergeInputs(indexOfMerge: number): BlockMergeRollupInputData;
58
+ isReadyForRootRollup(): boolean;
59
+ cancel(): void;
60
+ reject(reason: string): void;
61
+ resolve(result: ProvingResult): void;
62
+ }
63
+ //# sourceMappingURL=epoch-proving-state.d.ts.map
@@ -0,0 +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,KAAK,iCAAiC,EACtC,EAAE,EACF,KAAK,eAAe,EACpB,KAAK,wCAAwC,EAC7C,KAAK,6BAA6B,EAElC,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,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,6BAA6B,CAAC,GAAG,SAAS;QAChE,cAAc,CAAC,OAAO,6BAA6B,CAAC,GAAG,SAAS;KACjE,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,cAAc,EAAE,MAAM;IACtC,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,iBAAiB;IAX3B,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,iBAAiB,EAAE,CAAM;gBAGtB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EAC9B,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,EACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAGrD,8CAA8C;IAC9C,IAAW,YAAY,IAAI,iBAAiB,GAAG,SAAS,CAEvD;IAGD,IAAW,cAAc,WAGxB;IAKM,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IA2BzD,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,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;IAuBhB,WAAW;IAQX,iBAAiB;IAIxB;;;;;;OAMG;IACI,gBAAgB,CACrB,WAAW,EAAE;QACX,iCAAiC;QACjC,cAAc,CAAC,OAAO,6BAA6B,CAAC;QACpD,uBAAuB;KACxB,EACD,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM;IAsBf,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAKlC,cAAc,CAAC,YAAY,EAAE,MAAM;IAKnC,oBAAoB;IAKpB,MAAM;IAMN,MAAM,CAAC,MAAM,EAAE,MAAM;IAUrB,OAAO,CAAC,MAAM,EAAE,aAAa;CAOrC"}
@@ -0,0 +1,143 @@
1
+ import { Fr, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, } from '@aztec/circuits.js';
2
+ import { padArrayEnd } from '@aztec/foundation/collection';
3
+ import { BlockProvingState } from './block-proving-state.js';
4
+ var PROVING_STATE_LIFECYCLE;
5
+ (function (PROVING_STATE_LIFECYCLE) {
6
+ PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_CREATED"] = 0] = "PROVING_STATE_CREATED";
7
+ PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_FULL"] = 1] = "PROVING_STATE_FULL";
8
+ PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_RESOLVED"] = 2] = "PROVING_STATE_RESOLVED";
9
+ PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_REJECTED"] = 3] = "PROVING_STATE_REJECTED";
10
+ })(PROVING_STATE_LIFECYCLE || (PROVING_STATE_LIFECYCLE = {}));
11
+ /**
12
+ * The current state of the proving schedule for an epoch.
13
+ * Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
14
+ * Carries an identifier so we can identify if the proving state is discarded and a new one started.
15
+ * Captures resolve and reject callbacks to provide a promise base interface to the consumer of our proving.
16
+ */
17
+ export class EpochProvingState {
18
+ constructor(epochNumber, totalNumBlocks, completionCallback, rejectionCallback) {
19
+ this.epochNumber = epochNumber;
20
+ this.totalNumBlocks = totalNumBlocks;
21
+ this.completionCallback = completionCallback;
22
+ this.rejectionCallback = rejectionCallback;
23
+ this.provingStateLifecycle = PROVING_STATE_LIFECYCLE.PROVING_STATE_CREATED;
24
+ this.mergeRollupInputs = [];
25
+ this.blocks = [];
26
+ }
27
+ /** Returns the current block proving state */
28
+ get currentBlock() {
29
+ return this.blocks.at(-1);
30
+ }
31
+ // Returns the number of levels of merge rollups
32
+ get numMergeLevels() {
33
+ const totalLeaves = Math.max(2, this.totalNumBlocks);
34
+ return BigInt(Math.ceil(Math.log2(totalLeaves)) - 1);
35
+ }
36
+ // Calculates the index and level of the parent rollup circuit
37
+ // Based on tree implementation in unbalanced_tree.ts -> batchInsert()
38
+ // REFACTOR: This is repeated from the block orchestrator
39
+ findMergeLevel(currentLevel, currentIndex) {
40
+ const totalLeaves = Math.max(2, this.totalNumBlocks);
41
+ const moveUpMergeLevel = (levelSize, index, nodeToShift) => {
42
+ levelSize /= 2;
43
+ if (levelSize & 1) {
44
+ [levelSize, nodeToShift] = nodeToShift ? [levelSize + 1, false] : [levelSize - 1, true];
45
+ }
46
+ index >>= 1n;
47
+ return { thisLevelSize: levelSize, thisIndex: index, shiftUp: nodeToShift };
48
+ };
49
+ let [thisLevelSize, shiftUp] = totalLeaves & 1 ? [totalLeaves - 1, true] : [totalLeaves, false];
50
+ const maxLevel = this.numMergeLevels + 1n;
51
+ let placeholder = currentIndex;
52
+ for (let i = 0; i < maxLevel - currentLevel; i++) {
53
+ ({ thisLevelSize, thisIndex: placeholder, shiftUp } = moveUpMergeLevel(thisLevelSize, placeholder, shiftUp));
54
+ }
55
+ let thisIndex = currentIndex;
56
+ let mergeLevel = currentLevel;
57
+ while (thisIndex >= thisLevelSize && mergeLevel != 0n) {
58
+ mergeLevel -= 1n;
59
+ ({ thisLevelSize, thisIndex, shiftUp } = moveUpMergeLevel(thisLevelSize, thisIndex, shiftUp));
60
+ }
61
+ return [mergeLevel - 1n, thisIndex >> 1n, thisIndex & 1n];
62
+ }
63
+ // Adds a block to the proving state, returns its index
64
+ // Will update the proving life cycle if this is the last block
65
+ startNewBlock(numTxs, globalVariables, l1ToL2Messages, messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHash) {
66
+ const block = new BlockProvingState(this.blocks.length, numTxs, globalVariables, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP), messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHash, this);
67
+ this.blocks.push(block);
68
+ if (this.blocks.length === this.totalNumBlocks) {
69
+ this.provingStateLifecycle = PROVING_STATE_LIFECYCLE.PROVING_STATE_FULL;
70
+ }
71
+ return this.blocks.length - 1;
72
+ }
73
+ // Returns true if this proving state is still valid, false otherwise
74
+ verifyState() {
75
+ return (this.provingStateLifecycle === PROVING_STATE_LIFECYCLE.PROVING_STATE_CREATED ||
76
+ this.provingStateLifecycle === PROVING_STATE_LIFECYCLE.PROVING_STATE_FULL);
77
+ }
78
+ // Returns true if we are still able to accept blocks, false otherwise
79
+ isAcceptingBlocks() {
80
+ return this.provingStateLifecycle === PROVING_STATE_LIFECYCLE.PROVING_STATE_CREATED;
81
+ }
82
+ /**
83
+ * Stores the inputs to a merge circuit and determines if the circuit is ready to be executed
84
+ * @param mergeInputs - The inputs to store
85
+ * @param indexWithinMerge - The index in the set of inputs to this merge circuit
86
+ * @param indexOfMerge - The global index of this merge circuit
87
+ * @returns True if the merge circuit is ready to be executed, false otherwise
88
+ */
89
+ storeMergeInputs(mergeInputs, indexWithinMerge, indexOfMerge) {
90
+ if (!this.mergeRollupInputs[indexOfMerge]) {
91
+ const mergeInputData = {
92
+ inputs: [undefined, undefined],
93
+ proofs: [undefined, undefined],
94
+ verificationKeys: [undefined, undefined],
95
+ };
96
+ mergeInputData.inputs[indexWithinMerge] = mergeInputs[0];
97
+ mergeInputData.proofs[indexWithinMerge] = mergeInputs[1];
98
+ mergeInputData.verificationKeys[indexWithinMerge] = mergeInputs[2];
99
+ this.mergeRollupInputs[indexOfMerge] = mergeInputData;
100
+ return false;
101
+ }
102
+ const mergeInputData = this.mergeRollupInputs[indexOfMerge];
103
+ mergeInputData.inputs[indexWithinMerge] = mergeInputs[0];
104
+ mergeInputData.proofs[indexWithinMerge] = mergeInputs[1];
105
+ mergeInputData.verificationKeys[indexWithinMerge] = mergeInputs[2];
106
+ return true;
107
+ }
108
+ // Returns a specific transaction proving state
109
+ getBlockProvingState(index) {
110
+ return this.blocks[index];
111
+ }
112
+ // Returns a set of merge rollup inputs
113
+ getMergeInputs(indexOfMerge) {
114
+ return this.mergeRollupInputs[indexOfMerge];
115
+ }
116
+ // Returns true if we have sufficient inputs to execute the block root rollup
117
+ isReadyForRootRollup() {
118
+ return !(this.mergeRollupInputs[0] === undefined || this.mergeRollupInputs[0].inputs.findIndex(p => !p) !== -1);
119
+ }
120
+ // Attempts to reject the proving state promise with a reason of 'cancelled'
121
+ cancel() {
122
+ this.reject('Proving cancelled');
123
+ }
124
+ // Attempts to reject the proving state promise with the given reason
125
+ // Does nothing if not in a valid state
126
+ reject(reason) {
127
+ if (!this.verifyState()) {
128
+ return;
129
+ }
130
+ this.provingStateLifecycle = PROVING_STATE_LIFECYCLE.PROVING_STATE_REJECTED;
131
+ this.rejectionCallback(reason);
132
+ }
133
+ // Attempts to resolve the proving state promise with the given result
134
+ // Does nothing if not in a valid state
135
+ resolve(result) {
136
+ if (!this.verifyState()) {
137
+ return;
138
+ }
139
+ this.provingStateLifecycle = PROVING_STATE_LIFECYCLE.PROVING_STATE_RESOLVED;
140
+ this.completionCallback(result);
141
+ }
142
+ }
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvZXBvY2gtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBSUwsRUFBRSxFQUlGLG1DQUFtQyxHQUtwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUk3RCxJQUFLLHVCQUtKO0FBTEQsV0FBSyx1QkFBdUI7SUFDMUIsdUdBQXFCLENBQUE7SUFDckIsaUdBQWtCLENBQUE7SUFDbEIseUdBQXNCLENBQUE7SUFDdEIseUdBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUxJLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFLM0I7QUFhRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFDa0IsV0FBbUIsRUFDbkIsY0FBc0IsRUFDOUIsa0JBQW1ELEVBQ25ELGlCQUEyQztRQUhuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWlDO1FBQ25ELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFYN0MsMEJBQXFCLEdBQUcsdUJBQXVCLENBQUMscUJBQXFCLENBQUM7UUFFdEUsc0JBQWlCLEdBQWdDLEVBQUUsQ0FBQztRQUdyRCxXQUFNLEdBQXdCLEVBQUUsQ0FBQztJQU9yQyxDQUFDO0lBRUosOENBQThDO0lBQzlDLElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxJQUFXLGNBQWM7UUFDdkIsTUFBTSxXQUFXLEdB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
@@ -1,6 +1,6 @@
1
- import { type ProcessedTx } from '@aztec/circuit-types';
2
- import { type BlockProver, type ProvingBlockResult, type ProvingTicket, type ServerCircuitProver } from '@aztec/circuit-types/interfaces';
3
- import { Fr, type GlobalVariables } from '@aztec/circuits.js';
1
+ import { L2Block, type ProcessedTx, type ServerCircuitProver } from '@aztec/circuit-types';
2
+ import { type EpochProver } from '@aztec/circuit-types/interfaces';
3
+ import { Fr, type GlobalVariables, type Proof } from '@aztec/circuits.js';
4
4
  import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
5
5
  import { type MerkleTreeOperations } from '@aztec/world-state';
6
6
  /**
@@ -16,13 +16,14 @@ import { type MerkleTreeOperations } from '@aztec/world-state';
16
16
  /**
17
17
  * The orchestrator, managing the flow of recursive proving operations required to build the rollup proof tree.
18
18
  */
19
- export declare class ProvingOrchestrator implements BlockProver {
19
+ export declare class ProvingOrchestrator implements EpochProver {
20
20
  private db;
21
21
  private prover;
22
22
  private readonly proverId;
23
23
  private provingState;
24
24
  private pendingProvingJobs;
25
25
  private paddingTx;
26
+ private provingPromise;
26
27
  private metrics;
27
28
  constructor(db: MerkleTreeOperations, prover: ServerCircuitProver, telemetryClient: TelemetryClient, proverId?: Fr);
28
29
  get tracer(): Tracer;
@@ -31,15 +32,16 @@ export declare class ProvingOrchestrator implements BlockProver {
31
32
  * Resets the orchestrator's cached padding tx.
32
33
  */
33
34
  reset(): void;
35
+ startNewEpoch(epochNumber: number, totalNumBlocks: number): void;
34
36
  /**
35
37
  * Starts off a new block
36
- * @param numTxs - The total number of transactions in the block. Must be a power of 2
38
+ * @param numTxs - The total number of transactions in the block.
37
39
  * @param globalVariables - The global variables for the block
38
40
  * @param l1ToL2Messages - The l1 to l2 messages for the block
39
41
  * @param verificationKeys - The private kernel verification keys
40
42
  * @returns A proving ticket, containing a promise notifying of proving completion
41
43
  */
42
- startNewBlock(numTxs: number, globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<ProvingTicket>;
44
+ startNewBlock(numTxs: number, globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void>;
43
45
  /**
44
46
  * The interface to add a simulated transaction to the scheduler
45
47
  * @param tx - The transaction to be proven
@@ -47,8 +49,13 @@ export declare class ProvingOrchestrator implements BlockProver {
47
49
  addNewTx(tx: ProcessedTx): Promise<void>;
48
50
  /**
49
51
  * Marks the block as full and pads it if required, no more transactions will be accepted.
52
+ * Computes the block header and updates the archive tree.
50
53
  */
51
- setBlockCompleted(): Promise<void>;
54
+ setBlockCompleted(): Promise<L2Block>;
55
+ /** Returns the block as built for a given index. */
56
+ getBlock(index: number): L2Block;
57
+ private padEpoch;
58
+ private buildBlock;
52
59
  private enqueuePaddingTxs;
53
60
  /**
54
61
  * Prepares the cached sets of base rollup inputs for padding transactions and proves them
@@ -58,20 +65,21 @@ export declare class ProvingOrchestrator implements BlockProver {
58
65
  */
59
66
  private provePaddingTransactions;
60
67
  /**
61
- * Cancel any further proving of the block
68
+ * Cancel any further proving
62
69
  */
63
- cancelBlock(): void;
70
+ cancel(): void;
64
71
  /**
65
72
  * Extract the block header from public inputs.
66
- * TODO(#7346): Refactor this once new batch rollup circuits are integrated
67
73
  * @returns The header of this proving state's block.
68
74
  */
69
- private extractBlockHeader;
75
+ private extractBlockHeaderFromPublicInputs;
70
76
  /**
71
- * Performs the final tree update for the block and returns the fully proven block.
72
- * @returns The fully proven block and proof.
77
+ * Returns the proof for the current epoch.
73
78
  */
74
- finaliseBlock(): Promise<ProvingBlockResult>;
79
+ finaliseEpoch(): Promise<{
80
+ proof: Proof;
81
+ publicInputs: import("@aztec/circuits.js").RootRollupPublicInputs;
82
+ }>;
75
83
  /**
76
84
  * Starts the proving process for the given transaction and adds it to our state
77
85
  * @param tx - The transaction whose proving we wish to commence
@@ -87,14 +95,16 @@ export declare class ProvingOrchestrator implements BlockProver {
87
95
  */
88
96
  private deferredProving;
89
97
  private prepareBaseRollupInputs;
90
- private storeMergeInputs;
91
98
  private enqueueBaseRollup;
92
99
  private enqueueTube;
93
100
  private enqueueMergeRollup;
94
101
  private enqueueBlockRootRollup;
95
102
  private enqueueBaseParityCircuit;
96
103
  private enqueueRootParityCircuit;
104
+ private enqueueBlockMergeRollup;
105
+ private enqueueRootRollup;
97
106
  private checkAndEnqueueBlockRootRollup;
107
+ private checkAndEnqueueRootRollup;
98
108
  /**
99
109
  * Stores the inputs to a merge/root circuit and enqueues the circuit if ready
100
110
  * @param provingState - The proving state being operated on
@@ -103,6 +113,14 @@ export declare class ProvingOrchestrator implements BlockProver {
103
113
  * @param mergeInputData - The inputs to be stored
104
114
  */
105
115
  private storeAndExecuteNextMergeLevel;
116
+ /**
117
+ * Stores the inputs to a block merge/root circuit and enqueues the circuit if ready
118
+ * @param provingState - The proving state being operated on
119
+ * @param currentLevel - The level of the merge/root circuit
120
+ * @param currentIndex - The index of the merge/root circuit
121
+ * @param mergeInputData - The inputs to be stored
122
+ */
123
+ private storeAndExecuteNextBlockMergeLevel;
106
124
  /**
107
125
  * Executes the VM circuit for a public function, will enqueue the corresponding kernel if the
108
126
  * previous kernel is ready
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EASjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAML,EAAE,EACF,KAAK,eAAe,EAsBrB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAoB/D;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IAQnD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,SAAS,CAA6C;IAE9D,OAAO,CAAC,OAAO,CAA6B;gBAGlC,EAAE,EAAE,oBAAoB,EACxB,MAAM,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EACf,QAAQ,GAAE,EAAY;IAKzC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIxB;;OAEG;IACI,KAAK;IAIZ;;;;;;;OAOG;IAKU,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,GACnB,OAAO,CAAC,aAAa,CAAC;IAiFzB;;;OAGG;IAIU,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrD;;OAEG;IAYU,iBAAiB;IA2C9B,OAAO,CAAC,iBAAiB;IA4CzB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAmBhC;;OAEG;IACI,WAAW;IAQlB;;;;OAIG;YACW,kBAAkB;IAyChC;;;OAGG;IAQU,aAAa;IAkE1B;;;;OAIG;YACW,kBAAkB;IAShC,OAAO,CAAC,kBAAkB;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YA4DT,uBAAuB;IAwCrC,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,iBAAiB;IAgFzB,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,kBAAkB;YAiCZ,sBAAsB;IAgDpC,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,wBAAwB;YAmBlB,8BAA8B;IAQ5C;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA0BrC;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAmDjB,OAAO,CAAC,sCAAsC;IAqB9C,OAAO,CAAC,4BAA4B;IAsCpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;CA+C5B"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,OAAO,EAGP,KAAK,WAAW,EAGhB,KAAK,mBAAmB,EAOzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAQL,EAAE,EACF,KAAK,eAAe,EAQpB,KAAK,KAAK,EAaX,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AA8B/D;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,SAAS,CAA6C;IAE9D,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;gBAGlC,EAAE,EAAE,oBAAoB,EACxB,MAAM,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EACf,QAAQ,GAAE,EAAY;IAKzC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIxB;;OAEG;IACI,KAAK;IAIL,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAWhE;;;;;;;OAOG;IAKU,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE;IAwFjG;;;OAGG;IAIU,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrD;;;OAGG;IAYU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAkDlD,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAiBvC,OAAO,CAAC,QAAQ;YAkDF,UAAU;IAsCxB,OAAO,CAAC,iBAAiB;IA4CzB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAmBhC;;OAEG;IACI,MAAM;IAQb;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IAmB1C;;OAEG;IACU,aAAa;;;;IAwB1B;;;;OAIG;YACW,kBAAkB;IAShC,OAAO,CAAC,kBAAkB;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YA4DT,uBAAuB;IAyCrC,OAAO,CAAC,iBAAiB;IAgFzB,OAAO,CAAC,WAAW;IAoCnB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,sBAAsB;IA4E9B,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,8BAA8B;IAYtC,OAAO,CAAC,yBAAyB;IAQjC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA+BrC;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IAqC1C;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAiDjB,OAAO,CAAC,sCAAsC;IAqB9C,OAAO,CAAC,4BAA4B;IAqCpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;CAsD5B"}