@aztec/prover-client 0.76.4-devnet-test-rc3 → 0.77.0-testnet-ignition.17
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/bin/get-proof-inputs.js +20 -17
- package/dest/block_builder/index.d.ts +1 -1
- package/dest/block_builder/index.d.ts.map +1 -1
- package/dest/block_builder/index.js +0 -1
- package/dest/block_builder/light.d.ts +4 -2
- package/dest/block_builder/light.d.ts.map +1 -1
- package/dest/block_builder/light.js +28 -15
- package/dest/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +10 -12
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +0 -1
- package/dest/mocks/fixtures.d.ts +4 -3
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +37 -30
- package/dest/mocks/test_context.d.ts +16 -12
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +85 -62
- package/dest/orchestrator/block-building-helpers.d.ts +12 -7
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +98 -87
- package/dest/orchestrator/block-proving-state.d.ts +13 -8
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +101 -73
- package/dest/orchestrator/epoch-proving-state.d.ts +10 -6
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +57 -41
- package/dest/orchestrator/index.js +0 -1
- package/dest/orchestrator/orchestrator.d.ts +7 -5
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +656 -654
- package/dest/orchestrator/orchestrator_metrics.js +4 -3
- package/dest/orchestrator/tx-proving-state.d.ts +7 -4
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +54 -52
- package/dest/prover-client/factory.d.ts +2 -2
- package/dest/prover-client/factory.d.ts.map +1 -1
- package/dest/prover-client/factory.js +0 -1
- package/dest/prover-client/index.js +0 -1
- package/dest/prover-client/prover-client.d.ts +3 -3
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +31 -26
- package/dest/prover-client/server-epoch-prover.d.ts +8 -5
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +4 -4
- package/dest/proving_broker/broker_prover_facade.d.ts +5 -3
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +80 -67
- package/dest/proving_broker/config.d.ts +15 -2
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +49 -44
- package/dest/proving_broker/factory.d.ts +2 -2
- package/dest/proving_broker/factory.d.ts.map +1 -1
- package/dest/proving_broker/factory.js +1 -6
- package/dest/proving_broker/fixtures.d.ts +1 -1
- package/dest/proving_broker/fixtures.d.ts.map +1 -1
- package/dest/proving_broker/fixtures.js +2 -2
- package/dest/proving_broker/index.js +0 -1
- package/dest/proving_broker/proof_store/factory.d.ts +1 -1
- package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/factory.js +9 -12
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +3 -2
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.js +12 -7
- package/dest/proving_broker/proof_store/index.js +0 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts +3 -2
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.js +11 -7
- package/dest/proving_broker/proof_store/proof_store.d.ts +2 -1
- package/dest/proving_broker/proof_store/proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/proof_store.js +3 -2
- package/dest/proving_broker/proving_agent.d.ts +3 -2
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +121 -124
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent_instrumentation.js +6 -6
- package/dest/proving_broker/proving_broker.d.ts +4 -11
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +490 -446
- package/dest/proving_broker/proving_broker_database/memory.d.ts +2 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/memory.js +19 -13
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -3
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +62 -29
- package/dest/proving_broker/proving_broker_database.d.ts +1 -1
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database.js +3 -2
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +6 -2
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.js +47 -22
- package/dest/proving_broker/proving_job_controller.d.ts +2 -1
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +81 -62
- package/dest/proving_broker/rpc.d.ts +4 -3
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +29 -25
- package/dest/test/mock_prover.d.ts +7 -5
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +13 -9
- package/package.json +16 -15
- package/src/bin/get-proof-inputs.ts +2 -1
- package/src/block_builder/index.ts +1 -1
- package/src/block_builder/light.ts +7 -10
- package/src/config.ts +2 -2
- package/src/index.ts +1 -1
- package/src/mocks/fixtures.ts +13 -15
- package/src/mocks/test_context.ts +60 -102
- package/src/orchestrator/block-building-helpers.ts +50 -45
- package/src/orchestrator/block-proving-state.ts +18 -22
- package/src/orchestrator/epoch-proving-state.ts +11 -16
- package/src/orchestrator/orchestrator.ts +26 -33
- package/src/orchestrator/tx-proving-state.ts +10 -13
- package/src/prover-client/factory.ts +2 -2
- package/src/prover-client/prover-client.ts +12 -12
- package/src/prover-client/server-epoch-prover.ts +8 -5
- package/src/proving_broker/broker_prover_facade.ts +29 -31
- package/src/proving_broker/config.ts +31 -3
- package/src/proving_broker/factory.ts +3 -11
- package/src/proving_broker/fixtures.ts +2 -1
- package/src/proving_broker/proof_store/factory.ts +1 -1
- package/src/proving_broker/proof_store/gcs_proof_store.ts +3 -3
- package/src/proving_broker/proof_store/inline_proof_store.ts +5 -5
- package/src/proving_broker/proof_store/proof_store.ts +9 -9
- package/src/proving_broker/proving_agent.ts +11 -11
- package/src/proving_broker/proving_agent_instrumentation.ts +5 -5
- package/src/proving_broker/proving_broker.ts +35 -32
- package/src/proving_broker/proving_broker_database/memory.ts +2 -2
- package/src/proving_broker/proving_broker_database/persisted.ts +8 -8
- package/src/proving_broker/proving_broker_database.ts +1 -1
- package/src/proving_broker/proving_broker_instrumentation.ts +24 -2
- package/src/proving_broker/proving_job_controller.ts +7 -7
- package/src/proving_broker/rpc.ts +6 -7
- package/src/test/mock_prover.ts +28 -30
|
@@ -1,20 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
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';
|
|
4
|
-
import { SpongeBlob } from '@aztec/circuits.js/blobs';
|
|
5
|
-
import { BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, ConstantRollupData, EmptyBlockRootRollupInputs, MergeRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs, } from '@aztec/circuits.js/rollup';
|
|
1
|
+
import { SpongeBlob } from '@aztec/blob-lib';
|
|
2
|
+
import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, NUM_BASE_PARITY_PER_ROOT_PARITY, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
6
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { MembershipWitness, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
6
|
+
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
9
7
|
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
8
|
+
import { RootParityInput, RootParityInputs } from '@aztec/stdlib/parity';
|
|
9
|
+
import { BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, ConstantRollupData, EmptyBlockRootRollupInputs, MergeRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
10
|
+
import { StateReference } from '@aztec/stdlib/tx';
|
|
10
11
|
import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
|
|
11
12
|
/**
|
|
12
13
|
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
13
14
|
* Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
*/ export class BlockProvingState {
|
|
16
|
+
index;
|
|
17
|
+
globalVariables;
|
|
18
|
+
newL1ToL2Messages;
|
|
19
|
+
l1ToL2MessageSubtreeSiblingPath;
|
|
20
|
+
l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
21
|
+
lastArchiveSnapshot;
|
|
22
|
+
newArchiveSiblingPath;
|
|
23
|
+
previousBlockHeader;
|
|
24
|
+
parentEpoch;
|
|
25
|
+
baseOrMergeProvingOutputs;
|
|
26
|
+
baseParityProvingOutputs;
|
|
27
|
+
rootParityProvingOutput;
|
|
28
|
+
blockRootProvingOutput;
|
|
29
|
+
blockRootRollupStarted;
|
|
30
|
+
block;
|
|
31
|
+
spongeBlobState;
|
|
32
|
+
totalNumTxs;
|
|
33
|
+
txs;
|
|
34
|
+
error;
|
|
35
|
+
constructor(index, globalVariables, newL1ToL2Messages, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, newArchiveSiblingPath, previousBlockHeader, parentEpoch){
|
|
18
36
|
this.index = index;
|
|
19
37
|
this.globalVariables = globalVariables;
|
|
20
38
|
this.newL1ToL2Messages = newL1ToL2Messages;
|
|
@@ -27,7 +45,9 @@ export class BlockProvingState {
|
|
|
27
45
|
this.baseOrMergeProvingOutputs = new UnbalancedTreeStore(0);
|
|
28
46
|
this.blockRootRollupStarted = false;
|
|
29
47
|
this.txs = [];
|
|
30
|
-
this.baseParityProvingOutputs = Array.from({
|
|
48
|
+
this.baseParityProvingOutputs = Array.from({
|
|
49
|
+
length: NUM_BASE_PARITY_PER_ROOT_PARITY
|
|
50
|
+
}).map((_)=>undefined);
|
|
31
51
|
this.totalNumTxs = 0;
|
|
32
52
|
}
|
|
33
53
|
get blockNumber() {
|
|
@@ -75,8 +95,7 @@ export class BlockProvingState {
|
|
|
75
95
|
get allTxs() {
|
|
76
96
|
return this.txs;
|
|
77
97
|
}
|
|
78
|
-
/** Returns the block number as an epoch number. Used for prioritizing proof requests. */
|
|
79
|
-
get epochNumber() {
|
|
98
|
+
/** Returns the block number as an epoch number. Used for prioritizing proof requests. */ get epochNumber() {
|
|
80
99
|
return this.parentEpoch.epochNumber;
|
|
81
100
|
}
|
|
82
101
|
getParentLocation(location) {
|
|
@@ -87,46 +106,48 @@ export class BlockProvingState {
|
|
|
87
106
|
if (!left || !right) {
|
|
88
107
|
throw new Error('At lease one child is not ready.');
|
|
89
108
|
}
|
|
90
|
-
return new MergeRollupInputs([
|
|
109
|
+
return new MergeRollupInputs([
|
|
110
|
+
this.#getPreviousRollupData(left),
|
|
111
|
+
this.#getPreviousRollupData(right)
|
|
112
|
+
]);
|
|
91
113
|
}
|
|
92
114
|
async getBlockRootRollupTypeAndInputs(proverId) {
|
|
93
115
|
if (!this.rootParityProvingOutput) {
|
|
94
116
|
throw new Error('Root parity is not ready.');
|
|
95
117
|
}
|
|
96
|
-
const proofs =
|
|
97
|
-
const nonEmptyProofs = proofs.filter(p
|
|
118
|
+
const proofs = this.#getChildProofsForBlockRoot();
|
|
119
|
+
const nonEmptyProofs = proofs.filter((p)=>!!p);
|
|
98
120
|
if (proofs.length !== nonEmptyProofs.length) {
|
|
99
121
|
throw new Error('At lease one child is not ready for the block root.');
|
|
100
122
|
}
|
|
101
|
-
const data =
|
|
123
|
+
const data = this.#getBlockRootRollupData(proverId);
|
|
102
124
|
if (this.totalNumTxs === 0) {
|
|
103
125
|
const constants = ConstantRollupData.from({
|
|
104
126
|
lastArchive: this.lastArchiveSnapshot,
|
|
105
127
|
globalVariables: this.globalVariables,
|
|
106
128
|
vkTreeRoot: getVKTreeRoot(),
|
|
107
|
-
protocolContractTreeRoot
|
|
129
|
+
protocolContractTreeRoot
|
|
108
130
|
});
|
|
109
131
|
return {
|
|
110
132
|
rollupType: 'empty-block-root-rollup',
|
|
111
133
|
inputs: EmptyBlockRootRollupInputs.from({
|
|
112
134
|
data,
|
|
113
135
|
constants,
|
|
114
|
-
isPadding: false
|
|
115
|
-
})
|
|
136
|
+
isPadding: false
|
|
137
|
+
})
|
|
116
138
|
};
|
|
117
139
|
}
|
|
118
|
-
const previousRollupData = await Promise.all(nonEmptyProofs.map(p
|
|
119
|
-
const blobData = await
|
|
140
|
+
const previousRollupData = await Promise.all(nonEmptyProofs.map((p)=>this.#getPreviousRollupData(p)));
|
|
141
|
+
const blobData = await this.#getBlockRootRollupBlobData();
|
|
120
142
|
if (previousRollupData.length === 1) {
|
|
121
143
|
return {
|
|
122
144
|
rollupType: 'single-tx-block-root-rollup',
|
|
123
|
-
inputs: new SingleTxBlockRootRollupInputs(previousRollupData, data, blobData)
|
|
145
|
+
inputs: new SingleTxBlockRootRollupInputs(previousRollupData, data, blobData)
|
|
124
146
|
};
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
147
|
+
} else {
|
|
127
148
|
return {
|
|
128
149
|
rollupType: 'block-root-rollup',
|
|
129
|
-
inputs: new BlockRootRollupInputs(previousRollupData, data, blobData)
|
|
150
|
+
inputs: new BlockRootRollupInputs(previousRollupData, data, blobData)
|
|
130
151
|
};
|
|
131
152
|
}
|
|
132
153
|
}
|
|
@@ -138,29 +159,29 @@ export class BlockProvingState {
|
|
|
138
159
|
const newBlockHeader = await this.buildHeaderFromProvingOutputs();
|
|
139
160
|
const newArchive = this.blockRootProvingOutput.inputs.newArchive;
|
|
140
161
|
const data = BlockRootRollupData.from({
|
|
141
|
-
l1ToL2Roots:
|
|
162
|
+
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput),
|
|
142
163
|
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
143
164
|
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
144
165
|
previousBlockHeader: newBlockHeader,
|
|
145
|
-
proverId
|
|
166
|
+
proverId
|
|
146
167
|
});
|
|
147
168
|
const constants = ConstantRollupData.from({
|
|
148
169
|
lastArchive: newArchive,
|
|
149
170
|
globalVariables: this.globalVariables,
|
|
150
171
|
vkTreeRoot: getVKTreeRoot(),
|
|
151
|
-
protocolContractTreeRoot
|
|
172
|
+
protocolContractTreeRoot
|
|
152
173
|
});
|
|
153
174
|
return EmptyBlockRootRollupInputs.from({
|
|
154
175
|
data,
|
|
155
176
|
constants,
|
|
156
|
-
isPadding: true
|
|
177
|
+
isPadding: true
|
|
157
178
|
});
|
|
158
179
|
}
|
|
159
180
|
getRootParityInputs() {
|
|
160
|
-
if (!this.baseParityProvingOutputs.every(p
|
|
181
|
+
if (!this.baseParityProvingOutputs.every((p)=>!!p)) {
|
|
161
182
|
throw new Error('At lease one base parity is not ready.');
|
|
162
183
|
}
|
|
163
|
-
const children = this.baseParityProvingOutputs.map(p
|
|
184
|
+
const children = this.baseParityProvingOutputs.map((p)=>this.#getRootParityData(p));
|
|
164
185
|
return new RootParityInputs(children);
|
|
165
186
|
}
|
|
166
187
|
// Returns a specific transaction proving state
|
|
@@ -168,12 +189,10 @@ export class BlockProvingState {
|
|
|
168
189
|
return this.txs[txIndex];
|
|
169
190
|
}
|
|
170
191
|
async buildHeaderFromProvingOutputs(logger) {
|
|
171
|
-
const previousRollupData = this.totalNumTxs === 0
|
|
172
|
-
? []
|
|
173
|
-
: await Promise.all(__classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getChildProofsForBlockRoot).call(this).map(p => __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getPreviousRollupData).call(this, p)));
|
|
192
|
+
const previousRollupData = this.totalNumTxs === 0 ? [] : await Promise.all(this.#getChildProofsForBlockRoot().map((p)=>this.#getPreviousRollupData(p)));
|
|
174
193
|
let endPartialState = this.previousBlockHeader.state.partial;
|
|
175
194
|
if (this.totalNumTxs !== 0) {
|
|
176
|
-
const previousRollupData =
|
|
195
|
+
const previousRollupData = this.#getChildProofsForBlockRoot();
|
|
177
196
|
const lastRollup = previousRollupData[previousRollupData.length - 1];
|
|
178
197
|
if (!lastRollup) {
|
|
179
198
|
throw new Error('End state of the block is not available. Last rollup is not ready yet.');
|
|
@@ -181,19 +200,19 @@ export class BlockProvingState {
|
|
|
181
200
|
endPartialState = lastRollup.inputs.end;
|
|
182
201
|
}
|
|
183
202
|
const endState = new StateReference(this.l1ToL2MessageTreeSnapshotAfterInsertion, endPartialState);
|
|
184
|
-
return buildHeaderFromCircuitOutputs(previousRollupData.map(d
|
|
203
|
+
return buildHeaderFromCircuitOutputs(previousRollupData.map((d)=>d.baseOrMergeRollupPublicInputs), this.rootParityProvingOutput.inputs, this.blockRootProvingOutput.inputs, endState, logger);
|
|
185
204
|
}
|
|
186
205
|
isReadyForMergeRollup(location) {
|
|
187
206
|
return this.baseOrMergeProvingOutputs.getSibling(location) !== undefined;
|
|
188
207
|
}
|
|
189
208
|
// Returns true if we have sufficient inputs to execute the block root rollup
|
|
190
209
|
isReadyForBlockRootRollup() {
|
|
191
|
-
const childProofs =
|
|
192
|
-
return this.block !== undefined && this.rootParityProvingOutput !== undefined && childProofs.every(p
|
|
210
|
+
const childProofs = this.#getChildProofsForBlockRoot();
|
|
211
|
+
return this.block !== undefined && this.rootParityProvingOutput !== undefined && childProofs.every((p)=>!!p);
|
|
193
212
|
}
|
|
194
213
|
// Returns true if we have sufficient root parity inputs to execute the root parity circuit
|
|
195
214
|
isReadyForRootParity() {
|
|
196
|
-
return this.baseParityProvingOutputs.every(p
|
|
215
|
+
return this.baseParityProvingOutputs.every((p)=>!!p);
|
|
197
216
|
}
|
|
198
217
|
isComplete() {
|
|
199
218
|
return !!this.blockRootProvingOutput;
|
|
@@ -206,36 +225,45 @@ export class BlockProvingState {
|
|
|
206
225
|
this.error = reason;
|
|
207
226
|
this.parentEpoch.reject(reason);
|
|
208
227
|
}
|
|
228
|
+
#getBlockRootRollupData(proverId) {
|
|
229
|
+
return BlockRootRollupData.from({
|
|
230
|
+
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput),
|
|
231
|
+
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
232
|
+
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
233
|
+
previousBlockHeader: this.previousBlockHeader,
|
|
234
|
+
proverId
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
async #getBlockRootRollupBlobData() {
|
|
238
|
+
const txEffects = this.txs.map((txProvingState)=>txProvingState.processedTx.txEffect);
|
|
239
|
+
const { blobFields, blobCommitments, blobsHash } = await buildBlobHints(txEffects);
|
|
240
|
+
return BlockRootRollupBlobData.from({
|
|
241
|
+
blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_BLOCK),
|
|
242
|
+
blobCommitments: padArrayEnd(blobCommitments, [
|
|
243
|
+
Fr.ZERO,
|
|
244
|
+
Fr.ZERO
|
|
245
|
+
], BLOBS_PER_BLOCK),
|
|
246
|
+
blobsHash
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
#getChildProofsForBlockRoot() {
|
|
250
|
+
if (this.totalNumTxs === 0) {
|
|
251
|
+
return [];
|
|
252
|
+
}
|
|
253
|
+
const rootLocation = {
|
|
254
|
+
level: 0,
|
|
255
|
+
index: 0
|
|
256
|
+
};
|
|
257
|
+
// If there's only 1 tx, its base rollup proof will be stored at the root.
|
|
258
|
+
return this.totalNumTxs === 1 ? [
|
|
259
|
+
this.baseOrMergeProvingOutputs.getNode(rootLocation)
|
|
260
|
+
] : this.baseOrMergeProvingOutputs.getChildren(rootLocation);
|
|
261
|
+
}
|
|
262
|
+
#getPreviousRollupData({ inputs, proof, verificationKey }) {
|
|
263
|
+
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
264
|
+
return new PreviousRollupData(inputs, proof, verificationKey.keyAsFields, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
265
|
+
}
|
|
266
|
+
#getRootParityData({ inputs, proof, verificationKey }) {
|
|
267
|
+
return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(getVKIndex(verificationKey)), inputs);
|
|
268
|
+
}
|
|
209
269
|
}
|
|
210
|
-
_BlockProvingState_instances = new WeakSet(), _BlockProvingState_getBlockRootRollupData = function _BlockProvingState_getBlockRootRollupData(proverId) {
|
|
211
|
-
return BlockRootRollupData.from({
|
|
212
|
-
l1ToL2Roots: __classPrivateFieldGet(this, _BlockProvingState_instances, "m", _BlockProvingState_getRootParityData).call(this, this.rootParityProvingOutput),
|
|
213
|
-
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
214
|
-
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
215
|
-
previousBlockHeader: this.previousBlockHeader,
|
|
216
|
-
proverId,
|
|
217
|
-
});
|
|
218
|
-
}, _BlockProvingState_getBlockRootRollupBlobData = async function _BlockProvingState_getBlockRootRollupBlobData() {
|
|
219
|
-
const txEffects = this.txs.map(txProvingState => txProvingState.processedTx.txEffect);
|
|
220
|
-
const { blobFields, blobCommitments, blobsHash } = await buildBlobHints(txEffects);
|
|
221
|
-
return BlockRootRollupBlobData.from({
|
|
222
|
-
blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_BLOCK),
|
|
223
|
-
blobCommitments: padArrayEnd(blobCommitments, [Fr.ZERO, Fr.ZERO], BLOBS_PER_BLOCK),
|
|
224
|
-
blobsHash,
|
|
225
|
-
});
|
|
226
|
-
}, _BlockProvingState_getChildProofsForBlockRoot = function _BlockProvingState_getChildProofsForBlockRoot() {
|
|
227
|
-
if (this.totalNumTxs === 0) {
|
|
228
|
-
return [];
|
|
229
|
-
}
|
|
230
|
-
const rootLocation = { level: 0, index: 0 };
|
|
231
|
-
// If there's only 1 tx, its base rollup proof will be stored at the root.
|
|
232
|
-
return this.totalNumTxs === 1
|
|
233
|
-
? [this.baseOrMergeProvingOutputs.getNode(rootLocation)]
|
|
234
|
-
: this.baseOrMergeProvingOutputs.getChildren(rootLocation);
|
|
235
|
-
}, _BlockProvingState_getPreviousRollupData = function _BlockProvingState_getPreviousRollupData({ inputs, proof, verificationKey, }) {
|
|
236
|
-
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
237
|
-
return new PreviousRollupData(inputs, proof, verificationKey.keyAsFields, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
238
|
-
}, _BlockProvingState_getRootParityData = function _BlockProvingState_getRootParityData({ inputs, proof, verificationKey }) {
|
|
239
|
-
return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(getVKIndex(verificationKey)), inputs);
|
|
240
|
-
};
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFHTCxlQUFlLEVBRWYsZUFBZSxFQUNmLEVBQUUsRUFHRixpQkFBaUIsRUFFakIsK0JBQStCLEVBRy9CLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGNBQWMsR0FDZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLDZCQUE2QixHQUM5QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQXlCLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFNNUY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQWdCNUIsWUFDa0IsS0FBYSxFQUNiLGVBQWdDLEVBQ2hDLGlCQUF1QixFQUN0QiwrQkFBMkYsRUFDM0YsdUNBQStELEVBQy9ELG1CQUEyQyxFQUMzQyxxQkFBdUQsRUFDdkQsbUJBQWdDLEVBQ2hDLFdBQThCOztRQVIvQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2Isb0JB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
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { type Tuple } from '@aztec/foundation/serialize';
|
|
1
|
+
import { type ARCHIVE_HEIGHT, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import type { Tuple } from '@aztec/foundation/serialize';
|
|
5
4
|
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
5
|
+
import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
6
|
+
import type { Proof } from '@aztec/stdlib/proofs';
|
|
7
|
+
import { BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, RootRollupInputs, type RootRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
8
|
+
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
9
|
+
import type { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
|
|
6
10
|
import { BlockProvingState } from './block-proving-state.js';
|
|
7
11
|
export type TreeSnapshots = Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
|
|
8
12
|
export type ProvingResult = {
|
|
@@ -41,10 +45,10 @@ export declare class EpochProvingState {
|
|
|
41
45
|
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
42
46
|
getBlockMergeRollupInputs(mergeLocation: TreeNodeLocation): BlockMergeRollupInputs;
|
|
43
47
|
getRootRollupInputs(proverId: Fr): RootRollupInputs;
|
|
44
|
-
getPaddingBlockRootInputs(proverId: Fr): Promise<import("@aztec/
|
|
48
|
+
getPaddingBlockRootInputs(proverId: Fr): Promise<import("@aztec/stdlib/rollup").EmptyBlockRootRollupInputs>;
|
|
45
49
|
getBlockProvingStateByBlockNumber(blockNumber: number): BlockProvingState | undefined;
|
|
46
50
|
getEpochProofResult(): {
|
|
47
|
-
proof:
|
|
51
|
+
proof: Proof;
|
|
48
52
|
publicInputs: RootRollupPublicInputs;
|
|
49
53
|
};
|
|
50
54
|
isReadyForBlockMerge(location: TreeNodeLocation): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { BlockMergeRollupInputs, PreviousRollupBlockData, RootRollupInputs
|
|
5
|
-
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
6
|
-
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vks';
|
|
1
|
+
import { VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
+
import { MembershipWitness, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
3
|
+
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
4
|
+
import { BlockMergeRollupInputs, PreviousRollupBlockData, RootRollupInputs } from '@aztec/stdlib/rollup';
|
|
7
5
|
import { BlockProvingState } from './block-proving-state.js';
|
|
8
|
-
var PROVING_STATE_LIFECYCLE
|
|
9
|
-
(function (PROVING_STATE_LIFECYCLE) {
|
|
6
|
+
var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
10
7
|
PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_CREATED"] = 0] = "PROVING_STATE_CREATED";
|
|
11
8
|
PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_FULL"] = 1] = "PROVING_STATE_FULL";
|
|
12
9
|
PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_RESOLVED"] = 2] = "PROVING_STATE_RESOLVED";
|
|
13
10
|
PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_REJECTED"] = 3] = "PROVING_STATE_REJECTED";
|
|
14
|
-
|
|
11
|
+
return PROVING_STATE_LIFECYCLE;
|
|
12
|
+
}(PROVING_STATE_LIFECYCLE || {});
|
|
15
13
|
/**
|
|
16
14
|
* The current state of the proving schedule for an epoch.
|
|
17
15
|
* Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
|
|
18
16
|
* Carries an identifier so we can identify if the proving state is discarded and a new one started.
|
|
19
17
|
* Captures resolve and reject callbacks to provide a promise base interface to the consumer of our proving.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
*/ export class EpochProvingState {
|
|
19
|
+
epochNumber;
|
|
20
|
+
firstBlockNumber;
|
|
21
|
+
totalNumBlocks;
|
|
22
|
+
completionCallback;
|
|
23
|
+
rejectionCallback;
|
|
24
|
+
blockRootOrMergeProvingOutputs;
|
|
25
|
+
paddingBlockRootProvingOutput;
|
|
26
|
+
rootRollupProvingOutput;
|
|
27
|
+
provingStateLifecycle;
|
|
28
|
+
// Map from tx hash to tube proof promise. Used when kickstarting tube proofs before tx processing.
|
|
29
|
+
cachedTubeProofs;
|
|
30
|
+
blocks;
|
|
31
|
+
constructor(epochNumber, firstBlockNumber, totalNumBlocks, completionCallback, rejectionCallback){
|
|
24
32
|
this.epochNumber = epochNumber;
|
|
25
33
|
this.firstBlockNumber = firstBlockNumber;
|
|
26
34
|
this.totalNumBlocks = totalNumBlocks;
|
|
27
35
|
this.completionCallback = completionCallback;
|
|
28
36
|
this.rejectionCallback = rejectionCallback;
|
|
29
|
-
this.provingStateLifecycle =
|
|
30
|
-
// Map from tx hash to tube proof promise. Used when kickstarting tube proofs before tx processing.
|
|
37
|
+
this.provingStateLifecycle = 0;
|
|
31
38
|
this.cachedTubeProofs = new Map();
|
|
32
39
|
this.blocks = [];
|
|
33
40
|
this.blockRootOrMergeProvingOutputs = new UnbalancedTreeStore(totalNumBlocks);
|
|
@@ -38,19 +45,18 @@ export class EpochProvingState {
|
|
|
38
45
|
const index = globalVariables.blockNumber.toNumber() - this.firstBlockNumber;
|
|
39
46
|
const block = new BlockProvingState(index, globalVariables, l1ToL2Messages, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, newArchiveSiblingPath, previousBlockHeader, this);
|
|
40
47
|
this.blocks[index] = block;
|
|
41
|
-
if (this.blocks.filter(b
|
|
42
|
-
this.provingStateLifecycle =
|
|
48
|
+
if (this.blocks.filter((b)=>!!b).length === this.totalNumBlocks) {
|
|
49
|
+
this.provingStateLifecycle = 1;
|
|
43
50
|
}
|
|
44
51
|
return block;
|
|
45
52
|
}
|
|
46
53
|
// Returns true if this proving state is still valid, false otherwise
|
|
47
54
|
verifyState() {
|
|
48
|
-
return
|
|
49
|
-
this.provingStateLifecycle === PROVING_STATE_LIFECYCLE.PROVING_STATE_FULL);
|
|
55
|
+
return this.provingStateLifecycle === 0 || this.provingStateLifecycle === 1;
|
|
50
56
|
}
|
|
51
57
|
// Returns true if we are still able to accept blocks, false otherwise
|
|
52
58
|
isAcceptingBlocks() {
|
|
53
|
-
return this.provingStateLifecycle ===
|
|
59
|
+
return this.provingStateLifecycle === 0;
|
|
54
60
|
}
|
|
55
61
|
setBlockRootRollupProof(blockIndex, proof) {
|
|
56
62
|
return this.blockRootOrMergeProvingOutputs.setLeaf(blockIndex, proof);
|
|
@@ -72,16 +78,22 @@ export class EpochProvingState {
|
|
|
72
78
|
if (!left || !right) {
|
|
73
79
|
throw new Error('At lease one child is not ready.');
|
|
74
80
|
}
|
|
75
|
-
return new BlockMergeRollupInputs([
|
|
81
|
+
return new BlockMergeRollupInputs([
|
|
82
|
+
this.#getPreviousRollupData(left),
|
|
83
|
+
this.#getPreviousRollupData(right)
|
|
84
|
+
]);
|
|
76
85
|
}
|
|
77
86
|
getRootRollupInputs(proverId) {
|
|
78
|
-
const [left, right] =
|
|
87
|
+
const [left, right] = this.#getChildProofsForRoot();
|
|
79
88
|
if (!left || !right) {
|
|
80
89
|
throw new Error('At lease one child is not ready.');
|
|
81
90
|
}
|
|
82
91
|
return RootRollupInputs.from({
|
|
83
|
-
previousRollupData: [
|
|
84
|
-
|
|
92
|
+
previousRollupData: [
|
|
93
|
+
this.#getPreviousRollupData(left),
|
|
94
|
+
this.#getPreviousRollupData(right)
|
|
95
|
+
],
|
|
96
|
+
proverId
|
|
85
97
|
});
|
|
86
98
|
}
|
|
87
99
|
getPaddingBlockRootInputs(proverId) {
|
|
@@ -92,7 +104,7 @@ export class EpochProvingState {
|
|
|
92
104
|
}
|
|
93
105
|
// Returns a specific transaction proving state
|
|
94
106
|
getBlockProvingStateByBlockNumber(blockNumber) {
|
|
95
|
-
return this.blocks.find(block
|
|
107
|
+
return this.blocks.find((block)=>block?.blockNumber === blockNumber);
|
|
96
108
|
}
|
|
97
109
|
getEpochProofResult() {
|
|
98
110
|
if (!this.rootRollupProvingOutput) {
|
|
@@ -100,7 +112,7 @@ export class EpochProvingState {
|
|
|
100
112
|
}
|
|
101
113
|
return {
|
|
102
114
|
proof: this.rootRollupProvingOutput.proof.binaryProof,
|
|
103
|
-
publicInputs: this.rootRollupProvingOutput.inputs
|
|
115
|
+
publicInputs: this.rootRollupProvingOutput.inputs
|
|
104
116
|
};
|
|
105
117
|
}
|
|
106
118
|
isReadyForBlockMerge(location) {
|
|
@@ -108,8 +120,8 @@ export class EpochProvingState {
|
|
|
108
120
|
}
|
|
109
121
|
// Returns true if we have sufficient inputs to execute the block root rollup
|
|
110
122
|
isReadyForRootRollup() {
|
|
111
|
-
const childProofs =
|
|
112
|
-
return childProofs.every(p
|
|
123
|
+
const childProofs = this.#getChildProofsForRoot();
|
|
124
|
+
return childProofs.every((p)=>!!p);
|
|
113
125
|
}
|
|
114
126
|
// Attempts to reject the proving state promise with a reason of 'cancelled'
|
|
115
127
|
cancel() {
|
|
@@ -121,7 +133,7 @@ export class EpochProvingState {
|
|
|
121
133
|
if (!this.verifyState()) {
|
|
122
134
|
return;
|
|
123
135
|
}
|
|
124
|
-
this.provingStateLifecycle =
|
|
136
|
+
this.provingStateLifecycle = 3;
|
|
125
137
|
this.rejectionCallback(reason);
|
|
126
138
|
}
|
|
127
139
|
// Attempts to resolve the proving state promise with the given result
|
|
@@ -130,18 +142,22 @@ export class EpochProvingState {
|
|
|
130
142
|
if (!this.verifyState()) {
|
|
131
143
|
return;
|
|
132
144
|
}
|
|
133
|
-
this.provingStateLifecycle =
|
|
145
|
+
this.provingStateLifecycle = 2;
|
|
134
146
|
this.completionCallback(result);
|
|
135
147
|
}
|
|
148
|
+
#getChildProofsForRoot() {
|
|
149
|
+
const rootLocation = {
|
|
150
|
+
level: 0,
|
|
151
|
+
index: 0
|
|
152
|
+
};
|
|
153
|
+
// If there's only 1 block, its block root proof will be stored at the root.
|
|
154
|
+
return this.totalNumBlocks === 1 ? [
|
|
155
|
+
this.blockRootOrMergeProvingOutputs.getNode(rootLocation),
|
|
156
|
+
this.paddingBlockRootProvingOutput
|
|
157
|
+
] : this.blockRootOrMergeProvingOutputs.getChildren(rootLocation);
|
|
158
|
+
}
|
|
159
|
+
#getPreviousRollupData({ inputs, proof, verificationKey }) {
|
|
160
|
+
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
161
|
+
return new PreviousRollupBlockData(inputs, proof, verificationKey.keyAsFields, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
162
|
+
}
|
|
136
163
|
}
|
|
137
|
-
_EpochProvingState_instances = new WeakSet(), _EpochProvingState_getChildProofsForRoot = function _EpochProvingState_getChildProofsForRoot() {
|
|
138
|
-
const rootLocation = { level: 0, index: 0 };
|
|
139
|
-
// If there's only 1 block, its block root proof will be stored at the root.
|
|
140
|
-
return this.totalNumBlocks === 1
|
|
141
|
-
? [this.blockRootOrMergeProvingOutputs.getNode(rootLocation), this.paddingBlockRootProvingOutput]
|
|
142
|
-
: this.blockRootOrMergeProvingOutputs.getChildren(rootLocation);
|
|
143
|
-
}, _EpochProvingState_getPreviousRollupData = function _EpochProvingState_getPreviousRollupData({ inputs, proof, verificationKey, }) {
|
|
144
|
-
const leafIndex = getVKIndex(verificationKey.keyAsFields);
|
|
145
|
-
return new PreviousRollupBlockData(inputs, proof, verificationKey.keyAsFields, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
146
|
-
};
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvZXBvY2gtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLE9BQU8sRUFPTCxpQkFBaUIsRUFHakIsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLHNCQUFzQixFQUV0Qix1QkFBdUIsRUFDdkIsZ0JBQWdCLEdBRWpCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUF5QixtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUk3RCxJQUFLLHVCQUtKO0FBTEQsV0FBSyx1QkFBdUI7SUFDMUIsdUdBQXFCLENBQUE7SUFDckIsaUdBQWtCLENBQUE7SUFDbEIseUdBQXNCLENBQUE7SUFDdEIseUdBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUxJLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFLM0I7QUFJRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFlNUIsWUFDa0IsV0FBbUIsRUFDbkIsZ0JBQXdCLEVBQ3hCLGNBQXNCLEVBQzlCLGtCQUFtRCxFQUNuRCxpQkFBMkM7O1FBSm5DLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWlDO1FBQ25ELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFaN0MsMEJBQXFCLEdBQUcsdUJBQXVCLENBQUMscUJBQXFCLENBQUM7UUFFOUUsbUdBQW1HO1FBQ25GLHFCQUFnQixHQUFHLElBQUks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
|
|
@@ -1,2 +1 @@
|
|
|
1
1
|
export { ProvingOrchestrator } from './orchestrator.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDIn0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { L2Block } from '@aztec/stdlib/block';
|
|
3
|
+
import type { EpochProver, ForkMerkleTreeOperations, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
4
|
+
import { type AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
5
|
+
import { type BlockHeader, type GlobalVariables, type ProcessedTx, type Tx } from '@aztec/stdlib/tx';
|
|
4
6
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
5
7
|
/**
|
|
6
8
|
* Implements an event driven proving scheduler to build the recursive proof tree. The idea being:
|
|
@@ -63,8 +65,8 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
63
65
|
* Returns the proof for the current epoch.
|
|
64
66
|
*/
|
|
65
67
|
finaliseEpoch(): Promise<{
|
|
66
|
-
proof: import("@aztec/
|
|
67
|
-
publicInputs: import("@aztec/
|
|
68
|
+
proof: import("@aztec/stdlib/proofs").Proof;
|
|
69
|
+
publicInputs: import("@aztec/stdlib/rollup").RootRollupPublicInputs;
|
|
68
70
|
}>;
|
|
69
71
|
/**
|
|
70
72
|
* Starts the proving process for the given transaction and adds it to our state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAQ9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAWzC,OAAO,EAAE,KAAK,sBAAsB,EAAgB,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAmB,MAAM,kBAAkB,CAAC;AAEtH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,yBAAyB,CAAC;AAoBjC;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EAClB,QAAQ,GAAE,EAAY,EACvC,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAW1F;;;;;OAKG;IAIU,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,WAAW;IAyCnH;;;OAGG;IAIU,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDtD;;;OAGG;IAEU,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE;IAcxC;;;OAGG;IAIU,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBnG,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;YAQzB,UAAU;cAqCR,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB;IAWvG;;OAEG;IACI,MAAM;IAQb;;OAEG;IACU,aAAa;;;;IAoB1B;;;;OAIG;YACW,kBAAkB;IAShC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YAwDT,uBAAuB;YA+BvB,uBAAuB;IAmCrC,OAAO,CAAC,iBAAiB;IA+CzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,kBAAkB;YA2BZ,sBAAsB;IA2DpC,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,uBAAuB;YA0BjB,mBAAmB;IA8BjC,OAAO,CAAC,iBAAiB;YA6BX,8BAA8B;YAa9B,8BAA8B;IAyB5C,OAAO,CAAC,mCAAmC;IAa3C,OAAO,CAAC,yBAAyB;IASjC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA8CjB,OAAO,CAAC,4BAA4B;CAWrC"}
|