@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.
Files changed (135) hide show
  1. package/dest/avm/avm.d.ts +8 -16
  2. package/dest/avm/avm.d.ts.map +1 -1
  3. package/dest/avm/avm_accumulated_data.d.ts +9 -21
  4. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  5. package/dest/avm/avm_accumulated_data.js +15 -22
  6. package/dest/avm/avm_circuit_public_inputs.d.ts +6 -12
  7. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  8. package/dest/avm/avm_proving_request.d.ts +9 -18
  9. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  10. package/dest/interfaces/block-builder.d.ts +1 -0
  11. package/dest/interfaces/block-builder.d.ts.map +1 -1
  12. package/dest/interfaces/epoch-prover.d.ts +4 -4
  13. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  14. package/dest/interfaces/proving-job.d.ts +78 -88
  15. package/dest/interfaces/proving-job.d.ts.map +1 -1
  16. package/dest/interfaces/proving-job.js +40 -84
  17. package/dest/interfaces/pxe.d.ts +193 -118
  18. package/dest/interfaces/pxe.d.ts.map +1 -1
  19. package/dest/interfaces/pxe.js +6 -37
  20. package/dest/interfaces/server_circuit_prover.d.ts +18 -17
  21. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  22. package/dest/logs/log_with_tx_data.d.ts +9 -12
  23. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  24. package/dest/logs/log_with_tx_data.js +18 -23
  25. package/dest/logs/public_log.d.ts +23 -10
  26. package/dest/logs/public_log.d.ts.map +1 -1
  27. package/dest/logs/public_log.js +117 -42
  28. package/dest/parity/index.d.ts +2 -3
  29. package/dest/parity/index.d.ts.map +1 -1
  30. package/dest/parity/index.js +2 -3
  31. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +6 -6
  32. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  33. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +5 -5
  34. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  35. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  36. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  37. package/dest/proofs/proof_data.d.ts +3 -2
  38. package/dest/proofs/proof_data.d.ts.map +1 -1
  39. package/dest/proofs/proving_request_type.d.ts +5 -5
  40. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  41. package/dest/proofs/proving_request_type.js +5 -5
  42. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +10 -4
  43. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  44. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +1 -1
  45. package/dest/rollup/{block_root_rollup.d.ts → block_root_rollup_private_inputs.d.ts} +23 -34
  46. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  47. package/dest/rollup/{block_root_rollup.js → block_root_rollup_private_inputs.js} +7 -7
  48. package/dest/rollup/{checkpoint_merge_rollup.d.ts → checkpoint_merge_rollup_private_inputs.d.ts} +6 -6
  49. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  50. package/dest/rollup/{checkpoint_root_rollup.d.ts → checkpoint_root_rollup_private_inputs.d.ts} +14 -8
  51. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  52. package/dest/rollup/index.d.ts +10 -11
  53. package/dest/rollup/index.d.ts.map +1 -1
  54. package/dest/rollup/index.js +10 -11
  55. package/dest/rollup/{private_base_rollup_inputs.d.ts → private_tx_base_rollup_private_inputs.d.ts} +7 -7
  56. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  57. package/dest/rollup/{private_base_rollup_inputs.js → private_tx_base_rollup_private_inputs.js} +6 -6
  58. package/dest/rollup/{public_base_rollup_inputs.d.ts → public_tx_base_rollup_private_inputs.d.ts} +7 -7
  59. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  60. package/dest/rollup/{public_base_rollup_inputs.js → public_tx_base_rollup_private_inputs.js} +6 -6
  61. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  62. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  63. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  64. package/dest/rollup/{root_rollup.d.ts → root_rollup_public_inputs.d.ts} +2 -65
  65. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  66. package/dest/rollup/{root_rollup.js → root_rollup_public_inputs.js} +1 -66
  67. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  68. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  69. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  70. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +11 -11
  71. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  72. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +13 -13
  73. package/dest/stats/stats.d.ts +1 -1
  74. package/dest/stats/stats.d.ts.map +1 -1
  75. package/dest/tests/factories.d.ts +16 -31
  76. package/dest/tests/factories.d.ts.map +1 -1
  77. package/dest/tests/factories.js +32 -49
  78. package/dest/tx/processed_tx.js +1 -1
  79. package/dest/tx/tx_effect.d.ts.map +1 -1
  80. package/dest/tx/tx_effect.js +9 -10
  81. package/package.json +8 -8
  82. package/src/avm/avm_accumulated_data.ts +15 -29
  83. package/src/interfaces/block-builder.ts +1 -0
  84. package/src/interfaces/epoch-prover.ts +3 -3
  85. package/src/interfaces/proving-job.ts +54 -93
  86. package/src/interfaces/pxe.ts +4 -184
  87. package/src/interfaces/server_circuit_prover.ts +24 -29
  88. package/src/logs/log_with_tx_data.ts +14 -24
  89. package/src/logs/public_log.ts +120 -58
  90. package/src/parity/index.ts +2 -3
  91. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +6 -6
  92. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  93. package/src/proofs/proof_data.ts +4 -2
  94. package/src/proofs/proving_request_type.ts +6 -5
  95. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +5 -3
  96. package/src/rollup/{block_root_rollup.ts → block_root_rollup_private_inputs.ts} +13 -26
  97. package/src/rollup/{checkpoint_merge_rollup.ts → checkpoint_merge_rollup_private_inputs.ts} +3 -4
  98. package/src/rollup/{checkpoint_root_rollup.ts → checkpoint_root_rollup_private_inputs.ts} +6 -4
  99. package/src/rollup/index.ts +10 -11
  100. package/src/rollup/{private_base_rollup_inputs.ts → private_tx_base_rollup_private_inputs.ts} +9 -9
  101. package/src/rollup/{public_base_rollup_inputs.ts → public_tx_base_rollup_private_inputs.ts} +9 -9
  102. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  103. package/src/rollup/{root_rollup.ts → root_rollup_public_inputs.ts} +1 -86
  104. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  105. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +11 -11
  106. package/src/stats/stats.ts +18 -17
  107. package/src/tests/factories.ts +33 -80
  108. package/src/tx/processed_tx.ts +1 -1
  109. package/src/tx/tx_effect.ts +9 -8
  110. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  111. package/dest/parity/root_parity_input.d.ts +0 -52
  112. package/dest/parity/root_parity_input.d.ts.map +0 -1
  113. package/dest/parity/root_parity_input.js +0 -50
  114. package/dest/parity/root_parity_inputs.d.ts +0 -37
  115. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  116. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  117. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  118. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  119. package/dest/rollup/checkpoint_merge_rollup.d.ts.map +0 -1
  120. package/dest/rollup/checkpoint_root_rollup.d.ts.map +0 -1
  121. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  122. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  123. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  124. package/dest/rollup/previous_rollup_data.js +0 -37
  125. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  126. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  127. package/dest/rollup/rollup_proof_data.d.ts +0 -10
  128. package/dest/rollup/rollup_proof_data.d.ts.map +0 -1
  129. package/dest/rollup/rollup_proof_data.js +0 -1
  130. package/dest/rollup/root_rollup.d.ts.map +0 -1
  131. package/src/parity/root_parity_input.ts +0 -71
  132. package/src/rollup/previous_rollup_data.ts +0 -48
  133. package/src/rollup/rollup_proof_data.ts +0 -12
  134. /package/dest/rollup/{checkpoint_merge_rollup.js → checkpoint_merge_rollup_private_inputs.js} +0 -0
  135. /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.20250918",
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.20250918",
73
- "@aztec/blob-lib": "3.0.0-nightly.20250918",
74
- "@aztec/constants": "3.0.0-nightly.20250918",
75
- "@aztec/ethereum": "3.0.0-nightly.20250918",
76
- "@aztec/foundation": "3.0.0-nightly.20250918",
77
- "@aztec/l1-artifacts": "3.0.0-nightly.20250918",
78
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20250918",
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 { PublicLog } from '../logs/public_log.js';
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: Tuple<PublicLog, typeof MAX_PUBLIC_LOGS_PER_TX>,
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: PublicLog.schema.array().min(MAX_PUBLIC_LOGS_PER_TX).max(MAX_PUBLIC_LOGS_PER_TX),
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
- assertLength(publicLogs, MAX_PUBLIC_LOGS_PER_TX),
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
- arraySerializedSizeOfNonEmpty(this.publicLogs) +
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.readArray(MAX_PUBLIC_LOGS_PER_TX, PublicLog),
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.readArray(MAX_PUBLIC_LOGS_PER_TX, PublicLog),
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
- makeTuple(MAX_PUBLIC_LOGS_PER_TX, PublicLog.empty),
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.every(x => x.isEmpty()) &&
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, publicLogs, publicDataWrites }) =>
227
- new AvmAccumulatedDataArrayLengths(noteHashes, nullifiers, l2ToL1Msgs, publicLogs, publicDataWrites),
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.publicLogs, this.publicDataWrites);
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, 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
  }
@@ -38,6 +38,7 @@ export interface PublicProcessorLimits {
38
38
  maxTransactions?: number;
39
39
  maxBlockSize?: number;
40
40
  maxBlockGas?: Gas;
41
+ maxBlobFields?: number;
41
42
  deadline?: Date;
42
43
  }
43
44
 
@@ -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/root_rollup.js';
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 { BaseParityInputs } from '../parity/base_parity_inputs.js';
14
+ import { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js';
15
15
  import { ParityPublicInputs } from '../parity/parity_public_inputs.js';
16
- import { RootParityInputs } from '../parity/root_parity_inputs.js';
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 { BaseOrMergeRollupPublicInputs } from '../rollup/base_or_merge_rollup_public_inputs.js';
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/block_root_rollup.js';
29
- import { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup.js';
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/checkpoint_root_rollup.js';
34
+ } from '../rollup/checkpoint_root_rollup_private_inputs.js';
36
35
  import { PublicTubePrivateInputs } from '../rollup/index.js';
37
- import { MergeRollupInputs } from '../rollup/merge_rollup.js';
38
- import { PrivateBaseRollupInputs } from '../rollup/private_base_rollup_inputs.js';
39
- import { PublicBaseRollupInputs } from '../rollup/public_base_rollup_inputs.js';
40
- import { RootRollupPrivateInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
41
- import type { ServerCircuitName } from '../stats/index.js';
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.BASE_PARITY), inputs: BaseParityInputs.schema }),
138
- z.object({ type: z.literal(ProvingRequestType.ROOT_PARITY), inputs: RootParityInputs.schema }),
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({ type: z.literal(ProvingRequestType.PRIVATE_BASE_ROLLUP), inputs: PrivateBaseRollupInputs.schema }),
141
- z.object({ type: z.literal(ProvingRequestType.PUBLIC_BASE_ROLLUP), inputs: PublicBaseRollupInputs.schema }),
142
- z.object({ type: z.literal(ProvingRequestType.MERGE_ROLLUP), inputs: MergeRollupInputs.schema }),
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.PRIVATE_BASE_ROLLUP:
187
- return PrivateBaseRollupInputs;
188
- case ProvingRequestType.PUBLIC_BASE_ROLLUP:
189
- return PublicBaseRollupInputs;
190
- case ProvingRequestType.MERGE_ROLLUP:
191
- return MergeRollupInputs;
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.BASE_PARITY:
215
- return BaseParityInputs;
216
- case ProvingRequestType.ROOT_PARITY:
217
- return RootParityInputs;
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.PRIVATE_BASE_ROLLUP]: PrivateBaseRollupInputs;
231
- [ProvingRequestType.PUBLIC_BASE_ROLLUP]: PublicBaseRollupInputs;
232
- [ProvingRequestType.MERGE_ROLLUP]: MergeRollupInputs;
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.BASE_PARITY]: BaseParityInputs;
245
- [ProvingRequestType.ROOT_PARITY]: RootParityInputs;
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.PRIVATE_BASE_ROLLUP),
222
+ type: z.literal(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP),
262
223
  result: schemaForPublicInputsAndRecursiveProof(
263
- BaseOrMergeRollupPublicInputs.schema,
224
+ TxRollupPublicInputs.schema,
264
225
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
265
226
  ),
266
227
  }),
267
228
  z.object({
268
- type: z.literal(ProvingRequestType.PUBLIC_BASE_ROLLUP),
229
+ type: z.literal(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP),
269
230
  result: schemaForPublicInputsAndRecursiveProof(
270
- BaseOrMergeRollupPublicInputs.schema,
231
+ TxRollupPublicInputs.schema,
271
232
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
272
233
  ),
273
234
  }),
274
235
  z.object({
275
- type: z.literal(ProvingRequestType.MERGE_ROLLUP),
236
+ type: z.literal(ProvingRequestType.TX_MERGE_ROLLUP),
276
237
  result: schemaForPublicInputsAndRecursiveProof(
277
- BaseOrMergeRollupPublicInputs.schema,
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.BASE_PARITY),
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.ROOT_PARITY),
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.PRIVATE_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
372
- BaseOrMergeRollupPublicInputs,
332
+ [ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
333
+ TxRollupPublicInputs,
373
334
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
374
335
  >;
375
- [ProvingRequestType.PUBLIC_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
376
- BaseOrMergeRollupPublicInputs,
336
+ [ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
337
+ TxRollupPublicInputs,
377
338
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
378
339
  >;
379
- [ProvingRequestType.MERGE_ROLLUP]: PublicInputsAndRecursiveProof<
380
- BaseOrMergeRollupPublicInputs,
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.BASE_PARITY]: PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>;
425
- [ProvingRequestType.ROOT_PARITY]: PublicInputsAndRecursiveProof<
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
  >;