@aztec/prover-client 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/block-factory/index.d.ts +1 -1
- package/dest/block-factory/light.d.ts +5 -3
- package/dest/block-factory/light.d.ts.map +1 -1
- package/dest/block-factory/light.js +32 -11
- package/dest/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +2 -2
- package/dest/index.d.ts +1 -1
- package/dest/light/index.d.ts +2 -0
- package/dest/light/index.d.ts.map +1 -0
- package/dest/light/index.js +1 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts +36 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
- package/dest/light/lightweight_checkpoint_builder.js +147 -0
- package/dest/mocks/fixtures.d.ts +5 -5
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +33 -15
- package/dest/mocks/test_context.d.ts +38 -33
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +133 -82
- package/dest/orchestrator/block-building-helpers.d.ts +35 -35
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +151 -187
- package/dest/orchestrator/block-proving-state.d.ts +68 -55
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +273 -185
- package/dest/orchestrator/checkpoint-proving-state.d.ts +63 -0
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/checkpoint-proving-state.js +210 -0
- package/dest/orchestrator/epoch-proving-state.d.ts +38 -31
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +128 -84
- package/dest/orchestrator/index.d.ts +1 -1
- package/dest/orchestrator/orchestrator.d.ts +35 -34
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +777 -292
- package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator_metrics.js +0 -9
- package/dest/orchestrator/tx-proving-state.d.ts +12 -10
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +23 -29
- package/dest/prover-client/factory.d.ts +3 -3
- package/dest/prover-client/factory.d.ts.map +1 -1
- package/dest/prover-client/index.d.ts +1 -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/server-epoch-prover.d.ts +13 -11
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +9 -9
- package/dest/proving_broker/broker_prover_facade.d.ts +23 -18
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +42 -33
- package/dest/proving_broker/config.d.ts +18 -14
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +12 -6
- package/dest/proving_broker/factory.d.ts +1 -1
- package/dest/proving_broker/factory.js +1 -1
- package/dest/proving_broker/fixtures.d.ts +3 -2
- package/dest/proving_broker/fixtures.d.ts.map +1 -1
- package/dest/proving_broker/fixtures.js +3 -2
- package/dest/proving_broker/index.d.ts +1 -1
- package/dest/proving_broker/proof_store/factory.d.ts +2 -2
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.d.ts +2 -1
- package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.js +1 -0
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +383 -8
- 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_broker.d.ts +2 -2
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +418 -29
- package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +8 -7
- package/dest/proving_broker/proving_broker_database.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.d.ts +3 -2
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +40 -21
- package/dest/proving_broker/rpc.d.ts +4 -4
- package/dest/test/mock_proof_store.d.ts +3 -3
- package/dest/test/mock_proof_store.d.ts.map +1 -1
- package/dest/test/mock_prover.d.ts +23 -19
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +36 -21
- package/package.json +21 -19
- package/src/block-factory/light.ts +40 -17
- package/src/config.ts +2 -2
- package/src/light/index.ts +1 -0
- package/src/light/lightweight_checkpoint_builder.ts +198 -0
- package/src/mocks/fixtures.ts +41 -36
- package/src/mocks/test_context.ts +196 -114
- package/src/orchestrator/block-building-helpers.ts +233 -313
- package/src/orchestrator/block-proving-state.ts +315 -247
- package/src/orchestrator/checkpoint-proving-state.ts +303 -0
- package/src/orchestrator/epoch-proving-state.ts +176 -129
- package/src/orchestrator/orchestrator.ts +558 -348
- package/src/orchestrator/orchestrator_metrics.ts +1 -20
- package/src/orchestrator/tx-proving-state.ts +47 -55
- package/src/prover-client/factory.ts +6 -2
- package/src/prover-client/prover-client.ts +3 -2
- package/src/prover-client/server-epoch-prover.ts +30 -21
- package/src/proving_broker/broker_prover_facade.ts +175 -112
- package/src/proving_broker/config.ts +14 -7
- package/src/proving_broker/factory.ts +1 -1
- package/src/proving_broker/fixtures.ts +8 -3
- package/src/proving_broker/proof_store/index.ts +1 -0
- package/src/proving_broker/proving_broker.ts +41 -19
- package/src/proving_broker/proving_broker_database/memory.ts +2 -1
- package/src/proving_broker/proving_broker_database/persisted.ts +10 -9
- package/src/proving_broker/proving_broker_database.ts +2 -1
- package/src/proving_broker/proving_job_controller.ts +42 -22
- package/src/test/mock_prover.ts +143 -66
- package/dest/bin/get-proof-inputs.d.ts +0 -2
- package/dest/bin/get-proof-inputs.d.ts.map +0 -1
- package/dest/bin/get-proof-inputs.js +0 -51
- package/src/bin/get-proof-inputs.ts +0 -59
|
@@ -1,268 +1,342 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { encodeBlockEndBlobData } from '@aztec/blob-lib';
|
|
2
|
+
import { NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import { assertLength } from '@aztec/foundation/serialize';
|
|
5
5
|
import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { StateReference } from '@aztec/stdlib/tx';
|
|
11
|
-
import { VkData } from '@aztec/stdlib/vks';
|
|
12
|
-
import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmptyBlockBlobsHash } from './block-building-helpers.js';
|
|
6
|
+
import { ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
7
|
+
import { BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, TxMergeRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
8
|
+
import { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
|
|
9
|
+
import { buildHeaderFromCircuitOutputs, toProofData } from './block-building-helpers.js';
|
|
13
10
|
/**
|
|
14
11
|
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
15
12
|
* Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
|
|
16
13
|
*/ export class BlockProvingState {
|
|
17
14
|
index;
|
|
18
|
-
|
|
19
|
-
newL1ToL2Messages;
|
|
20
|
-
l1ToL2MessageTreeSnapshot;
|
|
21
|
-
l1ToL2MessageSubtreeSiblingPath;
|
|
22
|
-
l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
23
|
-
lastArchiveSnapshot;
|
|
24
|
-
lastArchiveSiblingPath;
|
|
25
|
-
newArchiveSiblingPath;
|
|
26
|
-
previousBlockHeader;
|
|
27
|
-
proverId;
|
|
28
|
-
parentEpoch;
|
|
29
|
-
baseOrMergeProvingOutputs;
|
|
30
|
-
baseParityProvingOutputs;
|
|
31
|
-
rootParityProvingOutput;
|
|
32
|
-
blockRootProvingOutput;
|
|
33
|
-
blockRootRollupStarted;
|
|
34
|
-
block;
|
|
35
|
-
spongeBlobState;
|
|
36
|
-
startBlobAccumulator;
|
|
37
|
-
endBlobAccumulator;
|
|
38
|
-
blobsHash;
|
|
15
|
+
blockNumber;
|
|
39
16
|
totalNumTxs;
|
|
17
|
+
constants;
|
|
18
|
+
timestamp;
|
|
19
|
+
lastArchiveTreeSnapshot;
|
|
20
|
+
lastArchiveSiblingPath;
|
|
21
|
+
lastL1ToL2MessageTreeSnapshot;
|
|
22
|
+
lastL1ToL2MessageSubtreeRootSiblingPath;
|
|
23
|
+
newL1ToL2MessageTreeSnapshot;
|
|
24
|
+
headerOfLastBlockInPreviousCheckpoint;
|
|
25
|
+
startSpongeBlob;
|
|
26
|
+
parentCheckpoint;
|
|
27
|
+
baseOrMergeProofs;
|
|
28
|
+
baseParityProofs;
|
|
29
|
+
rootParityProof;
|
|
30
|
+
blockRootProof;
|
|
31
|
+
builtBlockHeader;
|
|
32
|
+
endState;
|
|
33
|
+
endSpongeBlob;
|
|
40
34
|
txs;
|
|
35
|
+
isFirstBlock;
|
|
41
36
|
error;
|
|
42
|
-
constructor(index,
|
|
37
|
+
constructor(index, blockNumber, totalNumTxs, constants, timestamp, lastArchiveTreeSnapshot, lastArchiveSiblingPath, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath, newL1ToL2MessageTreeSnapshot, headerOfLastBlockInPreviousCheckpoint, startSpongeBlob, parentCheckpoint){
|
|
43
38
|
this.index = index;
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
49
|
-
this.lastArchiveSnapshot = lastArchiveSnapshot;
|
|
39
|
+
this.blockNumber = blockNumber;
|
|
40
|
+
this.totalNumTxs = totalNumTxs;
|
|
41
|
+
this.constants = constants;
|
|
42
|
+
this.timestamp = timestamp;
|
|
43
|
+
this.lastArchiveTreeSnapshot = lastArchiveTreeSnapshot;
|
|
50
44
|
this.lastArchiveSiblingPath = lastArchiveSiblingPath;
|
|
51
|
-
this.
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
58
|
-
this.
|
|
45
|
+
this.lastL1ToL2MessageTreeSnapshot = lastL1ToL2MessageTreeSnapshot;
|
|
46
|
+
this.lastL1ToL2MessageSubtreeRootSiblingPath = lastL1ToL2MessageSubtreeRootSiblingPath;
|
|
47
|
+
this.newL1ToL2MessageTreeSnapshot = newL1ToL2MessageTreeSnapshot;
|
|
48
|
+
this.headerOfLastBlockInPreviousCheckpoint = headerOfLastBlockInPreviousCheckpoint;
|
|
49
|
+
this.startSpongeBlob = startSpongeBlob;
|
|
50
|
+
this.parentCheckpoint = parentCheckpoint;
|
|
51
|
+
this.baseOrMergeProofs = new UnbalancedTreeStore(0);
|
|
52
|
+
this.baseParityProofs = Array.from({
|
|
59
53
|
length: NUM_BASE_PARITY_PER_ROOT_PARITY
|
|
60
54
|
}).map((_)=>undefined);
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
this.txs = [];
|
|
56
|
+
this.isFirstBlock = index === 0;
|
|
57
|
+
if (!totalNumTxs && !this.isFirstBlock) {
|
|
58
|
+
throw new Error(`Cannot create a block with 0 txs, unless it's the first block.`);
|
|
64
59
|
}
|
|
60
|
+
this.baseOrMergeProofs = new UnbalancedTreeStore(totalNumTxs);
|
|
65
61
|
}
|
|
66
|
-
get
|
|
67
|
-
return this.
|
|
68
|
-
}
|
|
69
|
-
startNewBlock(numTxs, numBlobFields) {
|
|
70
|
-
if (this.spongeBlobState) {
|
|
71
|
-
throw new Error(`Block ${this.blockNumber} already initalised.`);
|
|
72
|
-
}
|
|
73
|
-
this.baseOrMergeProvingOutputs = new UnbalancedTreeStore(numTxs);
|
|
74
|
-
// Initialize the sponge which will eventually absorb all tx effects to be added to the blob.
|
|
75
|
-
// Like l1 to l2 messages, we need to know beforehand how many effects will be absorbed.
|
|
76
|
-
this.spongeBlobState = SpongeBlob.init(numBlobFields);
|
|
77
|
-
this.totalNumTxs = numTxs;
|
|
62
|
+
get epochNumber() {
|
|
63
|
+
return this.parentCheckpoint.epochNumber;
|
|
78
64
|
}
|
|
79
65
|
// Adds a transaction to the proving state, returns it's index
|
|
80
66
|
addNewTx(tx) {
|
|
81
|
-
if (!this.
|
|
82
|
-
throw new Error(`
|
|
67
|
+
if (!this.isAcceptingTxs()) {
|
|
68
|
+
throw new Error(`Cannot add more txs to block ${this.blockNumber}.`);
|
|
83
69
|
}
|
|
84
70
|
const txIndex = this.txs.length;
|
|
85
71
|
this.txs[txIndex] = tx;
|
|
86
72
|
return txIndex;
|
|
87
73
|
}
|
|
74
|
+
isAcceptingTxs() {
|
|
75
|
+
return this.txs.length < this.totalNumTxs;
|
|
76
|
+
}
|
|
77
|
+
getProcessedTxs() {
|
|
78
|
+
return this.txs.map((t)=>t.processedTx);
|
|
79
|
+
}
|
|
80
|
+
tryStartProvingBase(txIndex) {
|
|
81
|
+
if (this.baseOrMergeProofs.getLeaf(txIndex)?.isProving) {
|
|
82
|
+
return false;
|
|
83
|
+
} else {
|
|
84
|
+
this.baseOrMergeProofs.setLeaf(txIndex, {
|
|
85
|
+
isProving: true
|
|
86
|
+
});
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
88
90
|
setBaseRollupProof(txIndex, provingOutput) {
|
|
89
|
-
return this.
|
|
91
|
+
return this.baseOrMergeProofs.setLeaf(txIndex, {
|
|
92
|
+
provingOutput
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
tryStartProvingMerge(location) {
|
|
96
|
+
if (this.baseOrMergeProofs.getNode(location)?.isProving) {
|
|
97
|
+
return false;
|
|
98
|
+
} else {
|
|
99
|
+
this.baseOrMergeProofs.setNode(location, {
|
|
100
|
+
isProving: true
|
|
101
|
+
});
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
90
104
|
}
|
|
91
105
|
setMergeRollupProof(location, provingOutput) {
|
|
92
|
-
this.
|
|
106
|
+
this.baseOrMergeProofs.setNode(location, {
|
|
107
|
+
provingOutput
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
tryStartProvingBaseParity(index) {
|
|
111
|
+
if (this.baseParityProofs[index]?.isProving) {
|
|
112
|
+
return false;
|
|
113
|
+
} else {
|
|
114
|
+
this.baseParityProofs[index] = {
|
|
115
|
+
isProving: true
|
|
116
|
+
};
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
93
119
|
}
|
|
94
120
|
// Stores a set of root parity inputs at the given index
|
|
95
121
|
setBaseParityProof(index, provingOutput) {
|
|
96
122
|
if (index >= NUM_BASE_PARITY_PER_ROOT_PARITY) {
|
|
97
123
|
throw new Error(`Unable to set a base parity proofs at index ${index}. Expected at most ${NUM_BASE_PARITY_PER_ROOT_PARITY} proofs.`);
|
|
98
124
|
}
|
|
99
|
-
this.
|
|
125
|
+
this.baseParityProofs[index] = {
|
|
126
|
+
provingOutput
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
tryStartProvingRootParity() {
|
|
130
|
+
if (this.rootParityProof?.isProving) {
|
|
131
|
+
return false;
|
|
132
|
+
} else {
|
|
133
|
+
this.rootParityProof = {
|
|
134
|
+
isProving: true
|
|
135
|
+
};
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
100
138
|
}
|
|
101
139
|
setRootParityProof(provingOutput) {
|
|
102
|
-
this.
|
|
140
|
+
this.rootParityProof = {
|
|
141
|
+
provingOutput
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
tryStartProvingBlockRoot() {
|
|
145
|
+
if (this.blockRootProof?.isProving) {
|
|
146
|
+
return false;
|
|
147
|
+
} else {
|
|
148
|
+
this.blockRootProof = {
|
|
149
|
+
isProving: true
|
|
150
|
+
};
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
103
153
|
}
|
|
104
154
|
setBlockRootRollupProof(provingOutput) {
|
|
105
|
-
this.
|
|
155
|
+
this.blockRootProof = {
|
|
156
|
+
provingOutput
|
|
157
|
+
};
|
|
158
|
+
return this.parentCheckpoint.setBlockRootRollupProof(this.index, provingOutput);
|
|
106
159
|
}
|
|
107
|
-
|
|
108
|
-
this.
|
|
160
|
+
getBlockRootRollupOutput() {
|
|
161
|
+
return this.blockRootProof?.provingOutput?.inputs;
|
|
109
162
|
}
|
|
110
|
-
|
|
111
|
-
this.
|
|
163
|
+
async buildBlockHeader() {
|
|
164
|
+
if (this.isAcceptingTxs()) {
|
|
165
|
+
throw new Error('All txs must be added to the block before building the header.');
|
|
166
|
+
}
|
|
167
|
+
if (!this.endState) {
|
|
168
|
+
throw new Error('Call `setEndState` first.');
|
|
169
|
+
}
|
|
170
|
+
if (!this.endSpongeBlob) {
|
|
171
|
+
throw new Error('Call `setEndSpongeBlob` first.');
|
|
172
|
+
}
|
|
173
|
+
const endSpongeBlob = this.endSpongeBlob.clone();
|
|
174
|
+
const endSpongeBlobHash = await endSpongeBlob.squeeze();
|
|
175
|
+
this.builtBlockHeader = new BlockHeader(this.lastArchiveTreeSnapshot, this.endState, endSpongeBlobHash, this.#getGlobalVariables(), this.#getTotalFees(), new Fr(this.#getTotalManaUsed()));
|
|
176
|
+
return this.builtBlockHeader;
|
|
177
|
+
}
|
|
178
|
+
getBuiltBlockHeader() {
|
|
179
|
+
return this.builtBlockHeader;
|
|
180
|
+
}
|
|
181
|
+
getStartSpongeBlob() {
|
|
182
|
+
return this.startSpongeBlob;
|
|
183
|
+
}
|
|
184
|
+
setEndSpongeBlob(endSpongeBlob) {
|
|
185
|
+
this.endSpongeBlob = endSpongeBlob;
|
|
186
|
+
}
|
|
187
|
+
getEndSpongeBlob() {
|
|
188
|
+
return this.endSpongeBlob;
|
|
189
|
+
}
|
|
190
|
+
setEndState(endState) {
|
|
191
|
+
this.endState = endState;
|
|
112
192
|
}
|
|
113
|
-
|
|
114
|
-
this.
|
|
193
|
+
hasEndState() {
|
|
194
|
+
return !!this.endState;
|
|
115
195
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
196
|
+
getBlockEndBlobFields() {
|
|
197
|
+
return encodeBlockEndBlobData(this.getBlockEndBlobData());
|
|
198
|
+
}
|
|
199
|
+
getBlockEndBlobData() {
|
|
200
|
+
if (!this.endState) {
|
|
201
|
+
throw new Error('Call `setEndState` first.');
|
|
120
202
|
}
|
|
121
|
-
const
|
|
122
|
-
|
|
203
|
+
const partial = this.endState.partial;
|
|
204
|
+
return {
|
|
205
|
+
blockEndMarker: {
|
|
206
|
+
numTxs: this.totalNumTxs,
|
|
207
|
+
timestamp: this.timestamp,
|
|
208
|
+
blockNumber: this.blockNumber
|
|
209
|
+
},
|
|
210
|
+
blockEndStateField: {
|
|
211
|
+
l1ToL2MessageNextAvailableLeafIndex: this.newL1ToL2MessageTreeSnapshot.nextAvailableLeafIndex,
|
|
212
|
+
noteHashNextAvailableLeafIndex: partial.noteHashTree.nextAvailableLeafIndex,
|
|
213
|
+
nullifierNextAvailableLeafIndex: partial.nullifierTree.nextAvailableLeafIndex,
|
|
214
|
+
publicDataNextAvailableLeafIndex: partial.publicDataTree.nextAvailableLeafIndex,
|
|
215
|
+
totalManaUsed: this.#getTotalManaUsed()
|
|
216
|
+
},
|
|
217
|
+
lastArchiveRoot: this.lastArchiveTreeSnapshot.root,
|
|
218
|
+
noteHashRoot: partial.noteHashTree.root,
|
|
219
|
+
nullifierRoot: partial.nullifierTree.root,
|
|
220
|
+
publicDataRoot: partial.publicDataTree.root,
|
|
221
|
+
l1ToL2MessageRoot: this.isFirstBlock ? this.newL1ToL2MessageTreeSnapshot.root : undefined
|
|
222
|
+
};
|
|
123
223
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
224
|
+
getBlockBlobData() {
|
|
225
|
+
return {
|
|
226
|
+
...this.getBlockEndBlobData(),
|
|
227
|
+
txs: this.getTxEffects().map((t)=>t.toTxBlobData())
|
|
228
|
+
};
|
|
127
229
|
}
|
|
128
|
-
|
|
129
|
-
return this.
|
|
230
|
+
getTxEffects() {
|
|
231
|
+
return this.txs.map((t)=>t.processedTx.txEffect);
|
|
130
232
|
}
|
|
131
233
|
getParentLocation(location) {
|
|
132
|
-
return this.
|
|
234
|
+
return this.baseOrMergeProofs.getParentLocation(location);
|
|
133
235
|
}
|
|
134
236
|
getMergeRollupInputs(mergeLocation) {
|
|
135
|
-
const [left, right] = this.
|
|
237
|
+
const [left, right] = this.baseOrMergeProofs.getChildren(mergeLocation).map((c)=>c?.provingOutput);
|
|
136
238
|
if (!left || !right) {
|
|
137
|
-
throw new Error('At
|
|
239
|
+
throw new Error('At least one child is not ready for the merge rollup.');
|
|
138
240
|
}
|
|
139
|
-
return new
|
|
140
|
-
|
|
141
|
-
|
|
241
|
+
return new TxMergeRollupPrivateInputs([
|
|
242
|
+
toProofData(left),
|
|
243
|
+
toProofData(right)
|
|
142
244
|
]);
|
|
143
245
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
246
|
+
getBlockRootRollupTypeAndInputs() {
|
|
247
|
+
const provingOutputs = this.#getChildProvingOutputsForBlockRoot();
|
|
248
|
+
if (!provingOutputs.every((p)=>!!p)) {
|
|
249
|
+
throw new Error('At least one child is not ready for the block root rollup.');
|
|
147
250
|
}
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
throw new Error('At lease one child is not ready for the block root.');
|
|
251
|
+
const previousRollups = provingOutputs.map((p)=>toProofData(p));
|
|
252
|
+
if (this.isFirstBlock) {
|
|
253
|
+
return this.#getFirstBlockRootRollupTypeAndInputs(previousRollups);
|
|
152
254
|
}
|
|
153
|
-
const
|
|
154
|
-
if (
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
protocolContractTreeRoot
|
|
161
|
-
});
|
|
162
|
-
this.blobsHash = await getEmptyBlockBlobsHash();
|
|
255
|
+
const [leftRollup, rightRollup] = previousRollups;
|
|
256
|
+
if (!rightRollup) {
|
|
257
|
+
return {
|
|
258
|
+
rollupType: 'rollup-block-root-single-tx',
|
|
259
|
+
inputs: new BlockRootSingleTxRollupPrivateInputs(leftRollup, this.lastArchiveSiblingPath)
|
|
260
|
+
};
|
|
261
|
+
} else {
|
|
163
262
|
return {
|
|
164
|
-
rollupType: '
|
|
165
|
-
inputs:
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
263
|
+
rollupType: 'rollup-block-root',
|
|
264
|
+
inputs: new BlockRootRollupPrivateInputs([
|
|
265
|
+
leftRollup,
|
|
266
|
+
rightRollup
|
|
267
|
+
], this.lastArchiveSiblingPath)
|
|
169
268
|
};
|
|
170
269
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
this.
|
|
174
|
-
|
|
270
|
+
}
|
|
271
|
+
#getFirstBlockRootRollupTypeAndInputs([leftRollup, rightRollup]) {
|
|
272
|
+
if (!this.rootParityProof?.provingOutput) {
|
|
273
|
+
throw new Error('Root parity is not ready.');
|
|
274
|
+
}
|
|
275
|
+
const l1ToL2Roots = toProofData(this.rootParityProof.provingOutput);
|
|
276
|
+
if (!leftRollup) {
|
|
175
277
|
return {
|
|
176
|
-
rollupType: '
|
|
177
|
-
inputs: new
|
|
278
|
+
rollupType: 'rollup-block-root-first-empty-tx',
|
|
279
|
+
inputs: new BlockRootEmptyTxFirstRollupPrivateInputs(l1ToL2Roots, this.lastArchiveTreeSnapshot, this.headerOfLastBlockInPreviousCheckpoint.state, this.constants, this.timestamp, this.lastL1ToL2MessageSubtreeRootSiblingPath, this.lastArchiveSiblingPath)
|
|
280
|
+
};
|
|
281
|
+
} else if (!rightRollup) {
|
|
282
|
+
return {
|
|
283
|
+
rollupType: 'rollup-block-root-first-single-tx',
|
|
284
|
+
inputs: new BlockRootSingleTxFirstRollupPrivateInputs(l1ToL2Roots, leftRollup, this.lastL1ToL2MessageTreeSnapshot, this.lastL1ToL2MessageSubtreeRootSiblingPath, this.lastArchiveSiblingPath)
|
|
178
285
|
};
|
|
179
286
|
} else {
|
|
180
287
|
return {
|
|
181
|
-
rollupType: 'block-root-
|
|
182
|
-
inputs: new
|
|
288
|
+
rollupType: 'rollup-block-root-first',
|
|
289
|
+
inputs: new BlockRootFirstRollupPrivateInputs(l1ToL2Roots, [
|
|
290
|
+
leftRollup,
|
|
291
|
+
rightRollup
|
|
292
|
+
], this.lastL1ToL2MessageTreeSnapshot, this.lastL1ToL2MessageSubtreeRootSiblingPath, this.lastArchiveSiblingPath)
|
|
183
293
|
};
|
|
184
294
|
}
|
|
185
295
|
}
|
|
186
|
-
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
protocolContractTreeRoot,
|
|
190
|
-
proverId: this.proverId.toField()
|
|
191
|
-
});
|
|
192
|
-
return PaddingBlockRootRollupInputs.from({
|
|
193
|
-
constants
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
getRootParityInputs() {
|
|
197
|
-
if (!this.baseParityProvingOutputs.every((p)=>!!p)) {
|
|
296
|
+
getParityRootInputs() {
|
|
297
|
+
const baseParityProvingOutputs = this.baseParityProofs.filter((p)=>!!p?.provingOutput).map((p)=>p.provingOutput);
|
|
298
|
+
if (baseParityProvingOutputs.length !== this.baseParityProofs.length) {
|
|
198
299
|
throw new Error('At lease one base parity is not ready.');
|
|
199
300
|
}
|
|
200
|
-
const children =
|
|
201
|
-
return new
|
|
301
|
+
const children = baseParityProvingOutputs.map((p)=>toProofData(p));
|
|
302
|
+
return new ParityRootPrivateInputs(assertLength(children, NUM_BASE_PARITY_PER_ROOT_PARITY));
|
|
202
303
|
}
|
|
203
304
|
// Returns a specific transaction proving state
|
|
204
305
|
getTxProvingState(txIndex) {
|
|
205
306
|
return this.txs[txIndex];
|
|
206
307
|
}
|
|
207
308
|
async buildHeaderFromProvingOutputs() {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
if (this.totalNumTxs !== 0) {
|
|
211
|
-
const previousRollupData = this.#getChildProofsForBlockRoot();
|
|
212
|
-
const lastRollup = previousRollupData[previousRollupData.length - 1];
|
|
213
|
-
if (!lastRollup) {
|
|
214
|
-
throw new Error('End state of the block is not available. Last rollup is not ready yet.');
|
|
215
|
-
}
|
|
216
|
-
endPartialState = lastRollup.inputs.end;
|
|
309
|
+
if (!this.blockRootProof?.provingOutput) {
|
|
310
|
+
throw new Error('Block root rollup is not ready.');
|
|
217
311
|
}
|
|
218
|
-
|
|
219
|
-
return buildHeaderFromCircuitOutputs(previousRollupData.map((d)=>d.baseOrMergeRollupPublicInputs), this.rootParityProvingOutput.inputs, this.blockRootProvingOutput.inputs, this.blobsHash, endState);
|
|
312
|
+
return await buildHeaderFromCircuitOutputs(this.blockRootProof.provingOutput.inputs);
|
|
220
313
|
}
|
|
221
314
|
isReadyForMergeRollup(location) {
|
|
222
|
-
return this.
|
|
315
|
+
return !!this.baseOrMergeProofs.getSibling(location)?.provingOutput;
|
|
223
316
|
}
|
|
224
317
|
// Returns true if we have sufficient inputs to execute the block root rollup
|
|
225
318
|
isReadyForBlockRootRollup() {
|
|
226
|
-
const childProofs = this.#
|
|
227
|
-
return this.
|
|
319
|
+
const childProofs = this.#getChildProvingOutputsForBlockRoot();
|
|
320
|
+
return (!this.isFirstBlock || !!this.rootParityProof?.provingOutput) && childProofs.every((p)=>!!p);
|
|
228
321
|
}
|
|
229
322
|
// Returns true if we have sufficient root parity inputs to execute the root parity circuit
|
|
230
323
|
isReadyForRootParity() {
|
|
231
|
-
return this.
|
|
324
|
+
return this.baseParityProofs.every((p)=>!!p?.provingOutput);
|
|
232
325
|
}
|
|
233
326
|
isComplete() {
|
|
234
|
-
return !!this.
|
|
327
|
+
return !!this.blockRootProof;
|
|
235
328
|
}
|
|
236
|
-
// Returns whether the proving state is still valid
|
|
237
329
|
verifyState() {
|
|
238
|
-
return this.
|
|
330
|
+
return this.parentCheckpoint.verifyState();
|
|
331
|
+
}
|
|
332
|
+
getError() {
|
|
333
|
+
return this.error;
|
|
239
334
|
}
|
|
240
335
|
reject(reason) {
|
|
241
336
|
this.error = reason;
|
|
242
|
-
this.
|
|
243
|
-
}
|
|
244
|
-
#getBlockRootRollupData() {
|
|
245
|
-
return BlockRootRollupData.from({
|
|
246
|
-
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput),
|
|
247
|
-
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
248
|
-
previousArchiveSiblingPath: this.lastArchiveSiblingPath,
|
|
249
|
-
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
250
|
-
previousBlockHeader: this.previousBlockHeader,
|
|
251
|
-
startBlobAccumulator: BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(this.startBlobAccumulator),
|
|
252
|
-
finalBlobChallenges: this.startBlobAccumulator.finalBlobChallenges,
|
|
253
|
-
proverId: this.proverId.toField()
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
async #getBlockRootRollupBlobData() {
|
|
257
|
-
const txEffects = this.txs.map((txProvingState)=>txProvingState.processedTx.txEffect);
|
|
258
|
-
const { blobFields, blobCommitments, blobsHash } = await buildBlobHints(txEffects);
|
|
259
|
-
return BlockRootRollupBlobData.from({
|
|
260
|
-
blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_BLOCK),
|
|
261
|
-
blobCommitments: padArrayEnd(blobCommitments, BLS12Point.ZERO, BLOBS_PER_BLOCK),
|
|
262
|
-
blobsHash
|
|
263
|
-
});
|
|
337
|
+
this.parentCheckpoint.reject(reason);
|
|
264
338
|
}
|
|
265
|
-
#
|
|
339
|
+
#getChildProvingOutputsForBlockRoot() {
|
|
266
340
|
if (this.totalNumTxs === 0) {
|
|
267
341
|
return [];
|
|
268
342
|
}
|
|
@@ -272,15 +346,29 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
272
346
|
};
|
|
273
347
|
// If there's only 1 tx, its base rollup proof will be stored at the root.
|
|
274
348
|
return this.totalNumTxs === 1 ? [
|
|
275
|
-
this.
|
|
276
|
-
] : this.
|
|
349
|
+
this.baseOrMergeProofs.getNode(rootLocation)?.provingOutput
|
|
350
|
+
] : this.baseOrMergeProofs.getChildren(rootLocation).map((c)=>c?.provingOutput);
|
|
351
|
+
}
|
|
352
|
+
#getGlobalVariables() {
|
|
353
|
+
if (this.txs.length) {
|
|
354
|
+
return this.txs[0].processedTx.globalVariables;
|
|
355
|
+
}
|
|
356
|
+
const constants = this.constants;
|
|
357
|
+
return GlobalVariables.from({
|
|
358
|
+
chainId: constants.chainId,
|
|
359
|
+
version: constants.version,
|
|
360
|
+
blockNumber: this.blockNumber,
|
|
361
|
+
slotNumber: constants.slotNumber,
|
|
362
|
+
timestamp: this.timestamp,
|
|
363
|
+
coinbase: constants.coinbase,
|
|
364
|
+
feeRecipient: constants.feeRecipient,
|
|
365
|
+
gasFees: constants.gasFees
|
|
366
|
+
});
|
|
277
367
|
}
|
|
278
|
-
#
|
|
279
|
-
|
|
280
|
-
const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
|
|
281
|
-
return new PreviousRollupData(inputs, proof, vkData);
|
|
368
|
+
#getTotalFees() {
|
|
369
|
+
return this.txs.reduce((acc, tx)=>acc.add(tx.processedTx.txEffect.transactionFee), Fr.ZERO);
|
|
282
370
|
}
|
|
283
|
-
#
|
|
284
|
-
return
|
|
371
|
+
#getTotalManaUsed() {
|
|
372
|
+
return this.txs.reduce((acc, tx)=>acc + BigInt(tx.processedTx.gasUsed.billedGas.l2Gas), 0n);
|
|
285
373
|
}
|
|
286
374
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { BatchedBlobAccumulator, type FinalBlobBatchingChallenges } from '@aztec/blob-lib';
|
|
2
|
+
import { type ARCHIVE_HEIGHT, type L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
3
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
|
+
import type { Tuple } from '@aztec/foundation/serialize';
|
|
6
|
+
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
7
|
+
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
8
|
+
import { ParityBasePrivateInputs } from '@aztec/stdlib/parity';
|
|
9
|
+
import { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, CheckpointConstantData, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs } from '@aztec/stdlib/rollup';
|
|
10
|
+
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
11
|
+
import type { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
12
|
+
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
13
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
14
|
+
import { BlockProvingState } from './block-proving-state.js';
|
|
15
|
+
import type { EpochProvingState } from './epoch-proving-state.js';
|
|
16
|
+
export declare class CheckpointProvingState {
|
|
17
|
+
#private;
|
|
18
|
+
readonly index: number;
|
|
19
|
+
readonly constants: CheckpointConstantData;
|
|
20
|
+
readonly totalNumBlocks: number;
|
|
21
|
+
private readonly finalBlobBatchingChallenges;
|
|
22
|
+
private readonly headerOfLastBlockInPreviousCheckpoint;
|
|
23
|
+
private readonly lastArchiveSiblingPath;
|
|
24
|
+
private readonly l1ToL2Messages;
|
|
25
|
+
private readonly lastL1ToL2MessageTreeSnapshot;
|
|
26
|
+
private readonly lastL1ToL2MessageSubtreeRootSiblingPath;
|
|
27
|
+
private readonly newL1ToL2MessageTreeSnapshot;
|
|
28
|
+
private readonly newL1ToL2MessageSubtreeRootSiblingPath;
|
|
29
|
+
parentEpoch: EpochProvingState;
|
|
30
|
+
private onBlobAccumulatorSet;
|
|
31
|
+
private blockProofs;
|
|
32
|
+
private checkpointRootProof;
|
|
33
|
+
private blocks;
|
|
34
|
+
private startBlobAccumulator;
|
|
35
|
+
private endBlobAccumulator;
|
|
36
|
+
private blobFields;
|
|
37
|
+
private error;
|
|
38
|
+
readonly firstBlockNumber: BlockNumber;
|
|
39
|
+
constructor(index: number, constants: CheckpointConstantData, totalNumBlocks: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, headerOfLastBlockInPreviousCheckpoint: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, parentEpoch: EpochProvingState, onBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => void);
|
|
40
|
+
get epochNumber(): number;
|
|
41
|
+
startNewBlock(blockNumber: BlockNumber, timestamp: UInt64, totalNumTxs: number, lastArchiveTreeSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>): BlockProvingState;
|
|
42
|
+
isAcceptingBlocks(): boolean;
|
|
43
|
+
setBlockRootRollupProof(blockIndex: number, provingOutput: PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
44
|
+
tryStartProvingBlockMerge(location: TreeNodeLocation): boolean;
|
|
45
|
+
setBlockMergeRollupProof(location: TreeNodeLocation, provingOutput: PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
46
|
+
tryStartProvingCheckpointRoot(): boolean;
|
|
47
|
+
setCheckpointRootRollupProof(provingOutput: PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
48
|
+
getBaseParityInputs(baseParityIndex: number): ParityBasePrivateInputs;
|
|
49
|
+
accumulateBlobs(startBlobAccumulator: BatchedBlobAccumulator): Promise<BatchedBlobAccumulator | undefined>;
|
|
50
|
+
getEndBlobAccumulator(): BatchedBlobAccumulator | undefined;
|
|
51
|
+
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
52
|
+
getBlockMergeRollupInputs(mergeLocation: TreeNodeLocation): BlockMergeRollupPrivateInputs;
|
|
53
|
+
getCheckpointRootRollupType(): CircuitName;
|
|
54
|
+
getCheckpointRootRollupInputs(): CheckpointRootRollupPrivateInputs | CheckpointRootSingleBlockRollupPrivateInputs;
|
|
55
|
+
getBlockProvingStateByBlockNumber(blockNumber: BlockNumber): BlockProvingState | undefined;
|
|
56
|
+
isReadyForBlockMerge(location: TreeNodeLocation): boolean;
|
|
57
|
+
isReadyForCheckpointRoot(): boolean;
|
|
58
|
+
verifyState(): boolean;
|
|
59
|
+
getError(): string | undefined;
|
|
60
|
+
cancel(): void;
|
|
61
|
+
reject(reason: string): void;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC1wcm92aW5nLXN0YXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL2NoZWNrcG9pbnQtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLEtBQUssMkJBQTJCLEVBR2pDLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUduQixLQUFLLDZDQUE2QyxFQUNsRCxLQUFLLHlDQUF5QyxFQUUvQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUc5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXVCLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBRTVCLGlDQUFpQyxFQUNqQyw0Q0FBNEMsRUFDN0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2xELE9BQU8s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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-proving-state.ts"],"names":[],"mappings":"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"}
|