@aztec/stdlib 3.0.0-nightly.20250918 → 3.0.0-nightly.20250920
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/avm/avm.d.ts +8 -16
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.d.ts +9 -21
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +15 -22
- package/dest/avm/avm_circuit_public_inputs.d.ts +6 -12
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_proving_request.d.ts +9 -18
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/interfaces/block-builder.d.ts +1 -0
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/epoch-prover.d.ts +4 -4
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +78 -88
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +40 -84
- package/dest/interfaces/pxe.d.ts +193 -118
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +6 -37
- package/dest/interfaces/server_circuit_prover.d.ts +18 -17
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.d.ts +9 -12
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +18 -23
- package/dest/logs/public_log.d.ts +23 -10
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +117 -42
- package/dest/parity/index.d.ts +2 -3
- package/dest/parity/index.d.ts.map +1 -1
- package/dest/parity/index.js +2 -3
- package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +6 -6
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
- package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +5 -5
- package/dest/parity/parity_root_private_inputs.d.ts +39 -0
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
- package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
- package/dest/proofs/proof_data.d.ts +3 -2
- package/dest/proofs/proof_data.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.d.ts +5 -5
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +5 -5
- package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +10 -4
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +1 -1
- package/dest/rollup/{block_root_rollup.d.ts → block_root_rollup_private_inputs.d.ts} +23 -34
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{block_root_rollup.js → block_root_rollup_private_inputs.js} +7 -7
- package/dest/rollup/{checkpoint_merge_rollup.d.ts → checkpoint_merge_rollup_private_inputs.d.ts} +6 -6
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{checkpoint_root_rollup.d.ts → checkpoint_root_rollup_private_inputs.d.ts} +14 -8
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/index.d.ts +10 -11
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +10 -11
- package/dest/rollup/{private_base_rollup_inputs.d.ts → private_tx_base_rollup_private_inputs.d.ts} +7 -7
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{private_base_rollup_inputs.js → private_tx_base_rollup_private_inputs.js} +6 -6
- package/dest/rollup/{public_base_rollup_inputs.d.ts → public_tx_base_rollup_private_inputs.d.ts} +7 -7
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{public_base_rollup_inputs.js → public_tx_base_rollup_private_inputs.js} +6 -6
- package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/root_rollup_private_inputs.js +69 -0
- package/dest/rollup/{root_rollup.d.ts → root_rollup_public_inputs.d.ts} +2 -65
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/{root_rollup.js → root_rollup_public_inputs.js} +1 -66
- package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
- package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +11 -11
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +13 -13
- package/dest/stats/stats.d.ts +1 -1
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +16 -31
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +32 -49
- package/dest/tx/processed_tx.js +1 -1
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +9 -10
- package/package.json +8 -8
- package/src/avm/avm_accumulated_data.ts +15 -29
- package/src/interfaces/block-builder.ts +1 -0
- package/src/interfaces/epoch-prover.ts +3 -3
- package/src/interfaces/proving-job.ts +54 -93
- package/src/interfaces/pxe.ts +4 -184
- package/src/interfaces/server_circuit_prover.ts +24 -29
- package/src/logs/log_with_tx_data.ts +14 -24
- package/src/logs/public_log.ts +120 -58
- package/src/parity/index.ts +2 -3
- package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +6 -6
- package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
- package/src/proofs/proof_data.ts +4 -2
- package/src/proofs/proving_request_type.ts +6 -5
- package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +5 -3
- package/src/rollup/{block_root_rollup.ts → block_root_rollup_private_inputs.ts} +13 -26
- package/src/rollup/{checkpoint_merge_rollup.ts → checkpoint_merge_rollup_private_inputs.ts} +3 -4
- package/src/rollup/{checkpoint_root_rollup.ts → checkpoint_root_rollup_private_inputs.ts} +6 -4
- package/src/rollup/index.ts +10 -11
- package/src/rollup/{private_base_rollup_inputs.ts → private_tx_base_rollup_private_inputs.ts} +9 -9
- package/src/rollup/{public_base_rollup_inputs.ts → public_tx_base_rollup_private_inputs.ts} +9 -9
- package/src/rollup/root_rollup_private_inputs.ts +90 -0
- package/src/rollup/{root_rollup.ts → root_rollup_public_inputs.ts} +1 -86
- package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
- package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +11 -11
- package/src/stats/stats.ts +18 -17
- package/src/tests/factories.ts +33 -80
- package/src/tx/processed_tx.ts +1 -1
- package/src/tx/tx_effect.ts +9 -8
- package/dest/parity/base_parity_inputs.d.ts.map +0 -1
- package/dest/parity/root_parity_input.d.ts +0 -52
- package/dest/parity/root_parity_input.d.ts.map +0 -1
- package/dest/parity/root_parity_input.js +0 -50
- package/dest/parity/root_parity_inputs.d.ts +0 -37
- package/dest/parity/root_parity_inputs.d.ts.map +0 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
- package/dest/rollup/block_root_rollup.d.ts.map +0 -1
- package/dest/rollup/checkpoint_merge_rollup.d.ts.map +0 -1
- package/dest/rollup/checkpoint_root_rollup.d.ts.map +0 -1
- package/dest/rollup/merge_rollup.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_data.js +0 -37
- package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/rollup_proof_data.d.ts +0 -10
- package/dest/rollup/rollup_proof_data.d.ts.map +0 -1
- package/dest/rollup/rollup_proof_data.js +0 -1
- package/dest/rollup/root_rollup.d.ts.map +0 -1
- package/src/parity/root_parity_input.ts +0 -71
- package/src/rollup/previous_rollup_data.ts +0 -48
- package/src/rollup/rollup_proof_data.ts +0 -12
- /package/dest/rollup/{checkpoint_merge_rollup.js → checkpoint_merge_rollup_private_inputs.js} +0 -0
- /package/dest/rollup/{checkpoint_root_rollup.js → checkpoint_root_rollup_private_inputs.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20250920",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -69,13 +69,13 @@
|
|
|
69
69
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@aztec/bb.js": "3.0.0-nightly.
|
|
73
|
-
"@aztec/blob-lib": "3.0.0-nightly.
|
|
74
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
75
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
76
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
77
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
78
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
72
|
+
"@aztec/bb.js": "3.0.0-nightly.20250920",
|
|
73
|
+
"@aztec/blob-lib": "3.0.0-nightly.20250920",
|
|
74
|
+
"@aztec/constants": "3.0.0-nightly.20250920",
|
|
75
|
+
"@aztec/ethereum": "3.0.0-nightly.20250920",
|
|
76
|
+
"@aztec/foundation": "3.0.0-nightly.20250920",
|
|
77
|
+
"@aztec/l1-artifacts": "3.0.0-nightly.20250920",
|
|
78
|
+
"@aztec/noir-noirc_abi": "3.0.0-nightly.20250920",
|
|
79
79
|
"@google-cloud/storage": "^7.15.0",
|
|
80
80
|
"axios": "^1.9.0",
|
|
81
81
|
"json-stringify-deterministic": "1.0.12",
|
|
@@ -3,7 +3,6 @@ import {
|
|
|
3
3
|
MAX_L2_TO_L1_MSGS_PER_TX,
|
|
4
4
|
MAX_NOTE_HASHES_PER_TX,
|
|
5
5
|
MAX_NULLIFIERS_PER_TX,
|
|
6
|
-
MAX_PUBLIC_LOGS_PER_TX,
|
|
7
6
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
8
7
|
} from '@aztec/constants';
|
|
9
8
|
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
@@ -23,7 +22,7 @@ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
|
23
22
|
import { inspect } from 'util';
|
|
24
23
|
import { z } from 'zod';
|
|
25
24
|
|
|
26
|
-
import {
|
|
25
|
+
import { FlatPublicLogs } from '../logs/public_log.js';
|
|
27
26
|
import { ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
|
|
28
27
|
import { PublicDataWrite } from './public_data_write.js';
|
|
29
28
|
|
|
@@ -44,7 +43,7 @@ export class AvmAccumulatedData {
|
|
|
44
43
|
/**
|
|
45
44
|
* The public logs emitted from the AVM execution.
|
|
46
45
|
*/
|
|
47
|
-
public publicLogs:
|
|
46
|
+
public publicLogs: FlatPublicLogs,
|
|
48
47
|
/**
|
|
49
48
|
* The public data writes made in the AVM execution.
|
|
50
49
|
*/
|
|
@@ -57,7 +56,7 @@ export class AvmAccumulatedData {
|
|
|
57
56
|
noteHashes: schemas.Fr.array().min(MAX_NOTE_HASHES_PER_TX).max(MAX_NOTE_HASHES_PER_TX),
|
|
58
57
|
nullifiers: schemas.Fr.array().min(MAX_NULLIFIERS_PER_TX).max(MAX_NULLIFIERS_PER_TX),
|
|
59
58
|
l2ToL1Msgs: ScopedL2ToL1Message.schema.array().min(MAX_L2_TO_L1_MSGS_PER_TX).max(MAX_L2_TO_L1_MSGS_PER_TX),
|
|
60
|
-
publicLogs:
|
|
59
|
+
publicLogs: FlatPublicLogs.schema,
|
|
61
60
|
publicDataWrites: PublicDataWrite.schema
|
|
62
61
|
.array()
|
|
63
62
|
.min(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX)
|
|
@@ -69,7 +68,7 @@ export class AvmAccumulatedData {
|
|
|
69
68
|
assertLength(noteHashes, MAX_NOTE_HASHES_PER_TX),
|
|
70
69
|
assertLength(nullifiers, MAX_NULLIFIERS_PER_TX),
|
|
71
70
|
assertLength(l2ToL1Msgs, MAX_L2_TO_L1_MSGS_PER_TX),
|
|
72
|
-
|
|
71
|
+
publicLogs,
|
|
73
72
|
assertLength(publicDataWrites, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX),
|
|
74
73
|
),
|
|
75
74
|
);
|
|
@@ -80,7 +79,7 @@ export class AvmAccumulatedData {
|
|
|
80
79
|
arraySerializedSizeOfNonEmpty(this.noteHashes) +
|
|
81
80
|
arraySerializedSizeOfNonEmpty(this.nullifiers) +
|
|
82
81
|
arraySerializedSizeOfNonEmpty(this.l2ToL1Msgs) +
|
|
83
|
-
|
|
82
|
+
this.publicLogs.toBuffer().length +
|
|
84
83
|
arraySerializedSizeOfNonEmpty(this.publicDataWrites)
|
|
85
84
|
);
|
|
86
85
|
}
|
|
@@ -91,7 +90,7 @@ export class AvmAccumulatedData {
|
|
|
91
90
|
reader.readArray(MAX_NOTE_HASHES_PER_TX, Fr),
|
|
92
91
|
reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
|
|
93
92
|
reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message),
|
|
94
|
-
reader.
|
|
93
|
+
reader.readObject(FlatPublicLogs),
|
|
95
94
|
reader.readArray(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite),
|
|
96
95
|
);
|
|
97
96
|
}
|
|
@@ -116,7 +115,7 @@ export class AvmAccumulatedData {
|
|
|
116
115
|
reader.readFieldArray(MAX_NOTE_HASHES_PER_TX),
|
|
117
116
|
reader.readFieldArray(MAX_NULLIFIERS_PER_TX),
|
|
118
117
|
reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message),
|
|
119
|
-
reader.
|
|
118
|
+
reader.readObject(FlatPublicLogs),
|
|
120
119
|
reader.readArray(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite),
|
|
121
120
|
);
|
|
122
121
|
}
|
|
@@ -144,7 +143,7 @@ export class AvmAccumulatedData {
|
|
|
144
143
|
makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.zero),
|
|
145
144
|
makeTuple(MAX_NULLIFIERS_PER_TX, Fr.zero),
|
|
146
145
|
makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message.empty),
|
|
147
|
-
|
|
146
|
+
FlatPublicLogs.empty(),
|
|
148
147
|
makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite.empty),
|
|
149
148
|
);
|
|
150
149
|
}
|
|
@@ -154,7 +153,7 @@ export class AvmAccumulatedData {
|
|
|
154
153
|
this.noteHashes.every(x => x.isZero()) &&
|
|
155
154
|
this.nullifiers.every(x => x.isZero()) &&
|
|
156
155
|
this.l2ToL1Msgs.every(x => x.isEmpty()) &&
|
|
157
|
-
this.publicLogs.
|
|
156
|
+
this.publicLogs.isEmpty() &&
|
|
158
157
|
this.publicDataWrites.every(x => x.isEmpty())
|
|
159
158
|
);
|
|
160
159
|
}
|
|
@@ -175,6 +174,7 @@ export class AvmAccumulatedData {
|
|
|
175
174
|
.map(h => inspect(h))
|
|
176
175
|
.join(', ')}],
|
|
177
176
|
publicLogs: [${this.publicLogs
|
|
177
|
+
.toLogs()
|
|
178
178
|
.filter(x => !x.isEmpty())
|
|
179
179
|
.map(h => inspect(h))
|
|
180
180
|
.join(', ')}],
|
|
@@ -203,10 +203,6 @@ export class AvmAccumulatedDataArrayLengths {
|
|
|
203
203
|
* Number of L2 to L1 messages
|
|
204
204
|
*/
|
|
205
205
|
public l2ToL1Msgs: number,
|
|
206
|
-
/**
|
|
207
|
-
* Number of public logs
|
|
208
|
-
*/
|
|
209
|
-
public publicLogs: number,
|
|
210
206
|
/**
|
|
211
207
|
* Number of public data writes
|
|
212
208
|
*/
|
|
@@ -219,12 +215,11 @@ export class AvmAccumulatedDataArrayLengths {
|
|
|
219
215
|
noteHashes: z.number(),
|
|
220
216
|
nullifiers: z.number(),
|
|
221
217
|
l2ToL1Msgs: z.number(),
|
|
222
|
-
publicLogs: z.number(),
|
|
223
218
|
publicDataWrites: z.number(),
|
|
224
219
|
})
|
|
225
220
|
.transform(
|
|
226
|
-
({ noteHashes, nullifiers, l2ToL1Msgs,
|
|
227
|
-
new AvmAccumulatedDataArrayLengths(noteHashes, nullifiers, l2ToL1Msgs,
|
|
221
|
+
({ noteHashes, nullifiers, l2ToL1Msgs, publicDataWrites }) =>
|
|
222
|
+
new AvmAccumulatedDataArrayLengths(noteHashes, nullifiers, l2ToL1Msgs, publicDataWrites),
|
|
228
223
|
);
|
|
229
224
|
}
|
|
230
225
|
|
|
@@ -235,12 +230,11 @@ export class AvmAccumulatedDataArrayLengths {
|
|
|
235
230
|
reader.readNumber(),
|
|
236
231
|
reader.readNumber(),
|
|
237
232
|
reader.readNumber(),
|
|
238
|
-
reader.readNumber(),
|
|
239
233
|
);
|
|
240
234
|
}
|
|
241
235
|
|
|
242
236
|
toBuffer() {
|
|
243
|
-
return serializeToBuffer(this.noteHashes, this.nullifiers, this.l2ToL1Msgs, this.
|
|
237
|
+
return serializeToBuffer(this.noteHashes, this.nullifiers, this.l2ToL1Msgs, this.publicDataWrites);
|
|
244
238
|
}
|
|
245
239
|
|
|
246
240
|
static fromFields(fields: Fr[] | FieldReader) {
|
|
@@ -250,22 +244,15 @@ export class AvmAccumulatedDataArrayLengths {
|
|
|
250
244
|
Number(reader.readField()),
|
|
251
245
|
Number(reader.readField()),
|
|
252
246
|
Number(reader.readField()),
|
|
253
|
-
Number(reader.readField()),
|
|
254
247
|
);
|
|
255
248
|
}
|
|
256
249
|
|
|
257
250
|
toFields(): Fr[] {
|
|
258
|
-
return [
|
|
259
|
-
new Fr(this.noteHashes),
|
|
260
|
-
new Fr(this.nullifiers),
|
|
261
|
-
new Fr(this.l2ToL1Msgs),
|
|
262
|
-
new Fr(this.publicLogs),
|
|
263
|
-
new Fr(this.publicDataWrites),
|
|
264
|
-
];
|
|
251
|
+
return [new Fr(this.noteHashes), new Fr(this.nullifiers), new Fr(this.l2ToL1Msgs), new Fr(this.publicDataWrites)];
|
|
265
252
|
}
|
|
266
253
|
|
|
267
254
|
static empty() {
|
|
268
|
-
return new AvmAccumulatedDataArrayLengths(0, 0, 0, 0
|
|
255
|
+
return new AvmAccumulatedDataArrayLengths(0, 0, 0, 0);
|
|
269
256
|
}
|
|
270
257
|
|
|
271
258
|
[inspect.custom]() {
|
|
@@ -273,7 +260,6 @@ export class AvmAccumulatedDataArrayLengths {
|
|
|
273
260
|
noteHashes: ${this.noteHashes},
|
|
274
261
|
nullifiers: ${this.nullifiers},
|
|
275
262
|
l2ToL1Msgs: ${this.l2ToL1Msgs},
|
|
276
|
-
publicLogs: ${this.publicLogs},
|
|
277
263
|
publicDataWrites: ${this.publicDataWrites},
|
|
278
264
|
}`;
|
|
279
265
|
}
|
|
@@ -4,7 +4,7 @@ import type { Fr } from '@aztec/foundation/fields';
|
|
|
4
4
|
|
|
5
5
|
import type { Proof } from '../proofs/proof.js';
|
|
6
6
|
import type { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
|
|
7
|
-
import type { RootRollupPublicInputs } from '../rollup/
|
|
7
|
+
import type { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
|
|
8
8
|
import type { BlockHeader } from '../tx/block_header.js';
|
|
9
9
|
import type { Tx } from '../tx/tx.js';
|
|
10
10
|
import type { UInt64 } from '../types/index.js';
|
|
@@ -15,19 +15,18 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | '
|
|
|
15
15
|
/**
|
|
16
16
|
* Starts a new epoch. Must be the first method to be called.
|
|
17
17
|
* @param epochNumber - The epoch number.
|
|
18
|
-
* @param firstCheckpointNumber - The number of the first checkpoint in the epoch. Used to determine the correct order when checkpoints are added.
|
|
19
18
|
* @param totalNumCheckpoints - The total number of checkpoints expected in the epoch (must be at least one).
|
|
20
19
|
* @param finalBlobBatchingChallenges - The final blob batching challenges for the epoch.
|
|
21
20
|
**/
|
|
22
21
|
startNewEpoch(
|
|
23
22
|
epochNumber: number,
|
|
24
|
-
firstCheckpointNumber: Fr,
|
|
25
23
|
totalNumCheckpoints: number,
|
|
26
24
|
finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
|
|
27
25
|
): void;
|
|
28
26
|
|
|
29
27
|
/**
|
|
30
28
|
* Starts a new checkpoint.
|
|
29
|
+
* @param checkpointIndex - The index of the checkpoint in the epoch.
|
|
31
30
|
* @param constants - The constants for this checkpoint.
|
|
32
31
|
* @param l1ToL2Messages - The set of L1 to L2 messages to be included in this checkpoint.
|
|
33
32
|
* @param totalNumBlocks - The total number of blocks expected in the checkpoint (must be at least one).
|
|
@@ -35,6 +34,7 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | '
|
|
|
35
34
|
* @param headerOfLastBlockInPreviousCheckpoint - The header of the last block in the previous checkpoint.
|
|
36
35
|
*/
|
|
37
36
|
startNewCheckpoint(
|
|
37
|
+
checkpointIndex: number,
|
|
38
38
|
constants: CheckpointConstantData,
|
|
39
39
|
l1ToL2Messages: Fr[],
|
|
40
40
|
totalNumBlocks: number,
|
|
@@ -11,13 +11,12 @@ import { z } from 'zod';
|
|
|
11
11
|
import { AvmCircuitInputs } from '../avm/avm.js';
|
|
12
12
|
import { AvmProvingRequestSchema } from '../avm/avm_proving_request.js';
|
|
13
13
|
import { PrivateToPublicKernelCircuitPublicInputs } from '../kernel/private_to_public_kernel_circuit_public_inputs.js';
|
|
14
|
-
import {
|
|
14
|
+
import { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js';
|
|
15
15
|
import { ParityPublicInputs } from '../parity/parity_public_inputs.js';
|
|
16
|
-
import {
|
|
16
|
+
import { ParityRootPrivateInputs } from '../parity/parity_root_private_inputs.js';
|
|
17
17
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
18
18
|
import { RecursiveProof } from '../proofs/recursive_proof.js';
|
|
19
|
-
import {
|
|
20
|
-
import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup.js';
|
|
19
|
+
import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
|
|
21
20
|
import { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
|
|
22
21
|
import {
|
|
23
22
|
BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
@@ -25,20 +24,21 @@ import {
|
|
|
25
24
|
BlockRootRollupPrivateInputs,
|
|
26
25
|
BlockRootSingleTxFirstRollupPrivateInputs,
|
|
27
26
|
BlockRootSingleTxRollupPrivateInputs,
|
|
28
|
-
} from '../rollup/
|
|
29
|
-
import { CheckpointMergeRollupPrivateInputs } from '../rollup/
|
|
27
|
+
} from '../rollup/block_root_rollup_private_inputs.js';
|
|
28
|
+
import { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup_private_inputs.js';
|
|
30
29
|
import { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js';
|
|
31
30
|
import {
|
|
32
31
|
CheckpointPaddingRollupPrivateInputs,
|
|
33
32
|
CheckpointRootRollupPrivateInputs,
|
|
34
33
|
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
35
|
-
} from '../rollup/
|
|
34
|
+
} from '../rollup/checkpoint_root_rollup_private_inputs.js';
|
|
36
35
|
import { PublicTubePrivateInputs } from '../rollup/index.js';
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import
|
|
36
|
+
import { PrivateTxBaseRollupPrivateInputs } from '../rollup/private_tx_base_rollup_private_inputs.js';
|
|
37
|
+
import { PublicTxBaseRollupPrivateInputs } from '../rollup/public_tx_base_rollup_private_inputs.js';
|
|
38
|
+
import { RootRollupPrivateInputs } from '../rollup/root_rollup_private_inputs.js';
|
|
39
|
+
import { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
|
|
40
|
+
import { TxMergeRollupPrivateInputs } from '../rollup/tx_merge_rollup_private_inputs.js';
|
|
41
|
+
import { TxRollupPublicInputs } from '../rollup/tx_rollup_public_inputs.js';
|
|
42
42
|
import { VerificationKeyData } from '../vks/verification_key.js';
|
|
43
43
|
|
|
44
44
|
export type ProofAndVerificationKey<N extends number> = {
|
|
@@ -87,59 +87,20 @@ export function makePublicInputsAndRecursiveProof<T, N extends number = typeof N
|
|
|
87
87
|
return { inputs, proof, verificationKey };
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
export function mapProvingRequestTypeToCircuitName(type: ProvingRequestType): ServerCircuitName {
|
|
91
|
-
switch (type) {
|
|
92
|
-
case ProvingRequestType.PUBLIC_VM:
|
|
93
|
-
return 'avm-circuit';
|
|
94
|
-
case ProvingRequestType.PUBLIC_TUBE:
|
|
95
|
-
return 'public-tube';
|
|
96
|
-
case ProvingRequestType.PRIVATE_BASE_ROLLUP:
|
|
97
|
-
return 'private-base-rollup';
|
|
98
|
-
case ProvingRequestType.PUBLIC_BASE_ROLLUP:
|
|
99
|
-
return 'public-base-rollup';
|
|
100
|
-
case ProvingRequestType.MERGE_ROLLUP:
|
|
101
|
-
return 'merge-rollup';
|
|
102
|
-
case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
|
|
103
|
-
return 'block-root-first-rollup';
|
|
104
|
-
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
|
|
105
|
-
return 'block-root-single-tx-first-rollup';
|
|
106
|
-
case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP:
|
|
107
|
-
return 'block-root-empty-tx-first-rollup';
|
|
108
|
-
case ProvingRequestType.BLOCK_ROOT_ROLLUP:
|
|
109
|
-
return 'block-root-rollup';
|
|
110
|
-
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP:
|
|
111
|
-
return 'block-root-single-tx-rollup';
|
|
112
|
-
case ProvingRequestType.BLOCK_MERGE_ROLLUP:
|
|
113
|
-
return 'block-merge-rollup';
|
|
114
|
-
case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP:
|
|
115
|
-
return 'checkpoint-root-rollup';
|
|
116
|
-
case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP:
|
|
117
|
-
return 'checkpoint-root-single-block-rollup';
|
|
118
|
-
case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP:
|
|
119
|
-
return 'checkpoint-padding-rollup';
|
|
120
|
-
case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP:
|
|
121
|
-
return 'checkpoint-merge-rollup';
|
|
122
|
-
case ProvingRequestType.ROOT_ROLLUP:
|
|
123
|
-
return 'root-rollup';
|
|
124
|
-
case ProvingRequestType.BASE_PARITY:
|
|
125
|
-
return 'base-parity';
|
|
126
|
-
case ProvingRequestType.ROOT_PARITY:
|
|
127
|
-
return 'root-parity';
|
|
128
|
-
default: {
|
|
129
|
-
const _exhaustive: never = type;
|
|
130
|
-
throw new Error(`Cannot find circuit name for proving request type: ${type}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
90
|
export const ProvingJobInputs = z.discriminatedUnion('type', [
|
|
136
91
|
AvmProvingRequestSchema,
|
|
137
|
-
z.object({ type: z.literal(ProvingRequestType.
|
|
138
|
-
z.object({ type: z.literal(ProvingRequestType.
|
|
92
|
+
z.object({ type: z.literal(ProvingRequestType.PARITY_BASE), inputs: ParityBasePrivateInputs.schema }),
|
|
93
|
+
z.object({ type: z.literal(ProvingRequestType.PARITY_ROOT), inputs: ParityRootPrivateInputs.schema }),
|
|
139
94
|
z.object({ type: z.literal(ProvingRequestType.PUBLIC_TUBE), inputs: PublicTubePrivateInputs.schema }),
|
|
140
|
-
z.object({
|
|
141
|
-
|
|
142
|
-
|
|
95
|
+
z.object({
|
|
96
|
+
type: z.literal(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP),
|
|
97
|
+
inputs: PrivateTxBaseRollupPrivateInputs.schema,
|
|
98
|
+
}),
|
|
99
|
+
z.object({
|
|
100
|
+
type: z.literal(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP),
|
|
101
|
+
inputs: PublicTxBaseRollupPrivateInputs.schema,
|
|
102
|
+
}),
|
|
103
|
+
z.object({ type: z.literal(ProvingRequestType.TX_MERGE_ROLLUP), inputs: TxMergeRollupPrivateInputs.schema }),
|
|
143
104
|
z.object({
|
|
144
105
|
type: z.literal(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP),
|
|
145
106
|
inputs: BlockRootFirstRollupPrivateInputs.schema,
|
|
@@ -183,12 +144,12 @@ export function getProvingJobInputClassFor(type: ProvingRequestType) {
|
|
|
183
144
|
return AvmCircuitInputs;
|
|
184
145
|
case ProvingRequestType.PUBLIC_TUBE:
|
|
185
146
|
return PublicTubePrivateInputs;
|
|
186
|
-
case ProvingRequestType.
|
|
187
|
-
return
|
|
188
|
-
case ProvingRequestType.
|
|
189
|
-
return
|
|
190
|
-
case ProvingRequestType.
|
|
191
|
-
return
|
|
147
|
+
case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP:
|
|
148
|
+
return PrivateTxBaseRollupPrivateInputs;
|
|
149
|
+
case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP:
|
|
150
|
+
return PublicTxBaseRollupPrivateInputs;
|
|
151
|
+
case ProvingRequestType.TX_MERGE_ROLLUP:
|
|
152
|
+
return TxMergeRollupPrivateInputs;
|
|
192
153
|
case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
|
|
193
154
|
return BlockRootFirstRollupPrivateInputs;
|
|
194
155
|
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
|
|
@@ -211,10 +172,10 @@ export function getProvingJobInputClassFor(type: ProvingRequestType) {
|
|
|
211
172
|
return CheckpointMergeRollupPrivateInputs;
|
|
212
173
|
case ProvingRequestType.ROOT_ROLLUP:
|
|
213
174
|
return RootRollupPrivateInputs;
|
|
214
|
-
case ProvingRequestType.
|
|
215
|
-
return
|
|
216
|
-
case ProvingRequestType.
|
|
217
|
-
return
|
|
175
|
+
case ProvingRequestType.PARITY_BASE:
|
|
176
|
+
return ParityBasePrivateInputs;
|
|
177
|
+
case ProvingRequestType.PARITY_ROOT:
|
|
178
|
+
return ParityRootPrivateInputs;
|
|
218
179
|
default: {
|
|
219
180
|
const _exhaustive: never = type;
|
|
220
181
|
throw new Error(`Cannot find circuit inputs class for proving type ${type}`);
|
|
@@ -227,9 +188,9 @@ export type ProvingJobInputs = z.infer<typeof ProvingJobInputs>;
|
|
|
227
188
|
export type ProvingJobInputsMap = {
|
|
228
189
|
[ProvingRequestType.PUBLIC_VM]: AvmCircuitInputs;
|
|
229
190
|
[ProvingRequestType.PUBLIC_TUBE]: PublicTubePrivateInputs;
|
|
230
|
-
[ProvingRequestType.
|
|
231
|
-
[ProvingRequestType.
|
|
232
|
-
[ProvingRequestType.
|
|
191
|
+
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: PrivateTxBaseRollupPrivateInputs;
|
|
192
|
+
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: PublicTxBaseRollupPrivateInputs;
|
|
193
|
+
[ProvingRequestType.TX_MERGE_ROLLUP]: TxMergeRollupPrivateInputs;
|
|
233
194
|
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: BlockRootFirstRollupPrivateInputs;
|
|
234
195
|
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: BlockRootSingleTxFirstRollupPrivateInputs;
|
|
235
196
|
[ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: BlockRootEmptyTxFirstRollupPrivateInputs;
|
|
@@ -241,8 +202,8 @@ export type ProvingJobInputsMap = {
|
|
|
241
202
|
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: CheckpointPaddingRollupPrivateInputs;
|
|
242
203
|
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: CheckpointMergeRollupPrivateInputs;
|
|
243
204
|
[ProvingRequestType.ROOT_ROLLUP]: RootRollupPrivateInputs;
|
|
244
|
-
[ProvingRequestType.
|
|
245
|
-
[ProvingRequestType.
|
|
205
|
+
[ProvingRequestType.PARITY_BASE]: ParityBasePrivateInputs;
|
|
206
|
+
[ProvingRequestType.PARITY_ROOT]: ParityRootPrivateInputs;
|
|
246
207
|
};
|
|
247
208
|
|
|
248
209
|
export const ProvingJobResult = z.discriminatedUnion('type', [
|
|
@@ -258,23 +219,23 @@ export const ProvingJobResult = z.discriminatedUnion('type', [
|
|
|
258
219
|
),
|
|
259
220
|
}),
|
|
260
221
|
z.object({
|
|
261
|
-
type: z.literal(ProvingRequestType.
|
|
222
|
+
type: z.literal(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP),
|
|
262
223
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
263
|
-
|
|
224
|
+
TxRollupPublicInputs.schema,
|
|
264
225
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
265
226
|
),
|
|
266
227
|
}),
|
|
267
228
|
z.object({
|
|
268
|
-
type: z.literal(ProvingRequestType.
|
|
229
|
+
type: z.literal(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP),
|
|
269
230
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
270
|
-
|
|
231
|
+
TxRollupPublicInputs.schema,
|
|
271
232
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
272
233
|
),
|
|
273
234
|
}),
|
|
274
235
|
z.object({
|
|
275
|
-
type: z.literal(ProvingRequestType.
|
|
236
|
+
type: z.literal(ProvingRequestType.TX_MERGE_ROLLUP),
|
|
276
237
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
277
|
-
|
|
238
|
+
TxRollupPublicInputs.schema,
|
|
278
239
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
279
240
|
),
|
|
280
241
|
}),
|
|
@@ -353,11 +314,11 @@ export const ProvingJobResult = z.discriminatedUnion('type', [
|
|
|
353
314
|
result: schemaForPublicInputsAndRecursiveProof(RootRollupPublicInputs.schema, NESTED_RECURSIVE_PROOF_LENGTH),
|
|
354
315
|
}),
|
|
355
316
|
z.object({
|
|
356
|
-
type: z.literal(ProvingRequestType.
|
|
317
|
+
type: z.literal(ProvingRequestType.PARITY_BASE),
|
|
357
318
|
result: schemaForPublicInputsAndRecursiveProof(ParityPublicInputs.schema, RECURSIVE_PROOF_LENGTH),
|
|
358
319
|
}),
|
|
359
320
|
z.object({
|
|
360
|
-
type: z.literal(ProvingRequestType.
|
|
321
|
+
type: z.literal(ProvingRequestType.PARITY_ROOT),
|
|
361
322
|
result: schemaForPublicInputsAndRecursiveProof(ParityPublicInputs.schema, NESTED_RECURSIVE_PROOF_LENGTH),
|
|
362
323
|
}),
|
|
363
324
|
]);
|
|
@@ -368,16 +329,16 @@ export type ProvingJobResultsMap = {
|
|
|
368
329
|
PrivateToPublicKernelCircuitPublicInputs,
|
|
369
330
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
370
331
|
>;
|
|
371
|
-
[ProvingRequestType.
|
|
372
|
-
|
|
332
|
+
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
333
|
+
TxRollupPublicInputs,
|
|
373
334
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
374
335
|
>;
|
|
375
|
-
[ProvingRequestType.
|
|
376
|
-
|
|
336
|
+
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
337
|
+
TxRollupPublicInputs,
|
|
377
338
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
378
339
|
>;
|
|
379
|
-
[ProvingRequestType.
|
|
380
|
-
|
|
340
|
+
[ProvingRequestType.TX_MERGE_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
341
|
+
TxRollupPublicInputs,
|
|
381
342
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
382
343
|
>;
|
|
383
344
|
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
@@ -421,8 +382,8 @@ export type ProvingJobResultsMap = {
|
|
|
421
382
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
422
383
|
>;
|
|
423
384
|
[ProvingRequestType.ROOT_ROLLUP]: PublicInputsAndRecursiveProof<RootRollupPublicInputs>;
|
|
424
|
-
[ProvingRequestType.
|
|
425
|
-
[ProvingRequestType.
|
|
385
|
+
[ProvingRequestType.PARITY_BASE]: PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>;
|
|
386
|
+
[ProvingRequestType.PARITY_ROOT]: PublicInputsAndRecursiveProof<
|
|
426
387
|
ParityPublicInputs,
|
|
427
388
|
typeof NESTED_RECURSIVE_PROOF_LENGTH
|
|
428
389
|
>;
|