@aztec/stdlib 4.0.0-nightly.20260116 → 4.0.0-nightly.20260117

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 (66) hide show
  1. package/dest/block/l2_block_new.d.ts +3 -2
  2. package/dest/block/l2_block_new.d.ts.map +1 -1
  3. package/dest/block/l2_block_new.js +3 -0
  4. package/dest/block/l2_block_source.d.ts +18 -11
  5. package/dest/block/l2_block_source.d.ts.map +1 -1
  6. package/dest/block/l2_block_source.js +2 -1
  7. package/dest/block/l2_block_stream/interfaces.d.ts +2 -3
  8. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  9. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  10. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  11. package/dest/block/l2_block_stream/l2_block_stream.js +0 -9
  12. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  13. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  14. package/dest/block/test/l2_tips_store_test_suite.js +0 -5
  15. package/dest/checkpoint/checkpoint.d.ts +8 -5
  16. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  17. package/dest/checkpoint/checkpoint.js +3 -0
  18. package/dest/interfaces/archiver.d.ts +1 -1
  19. package/dest/interfaces/archiver.d.ts.map +1 -1
  20. package/dest/interfaces/archiver.js +1 -0
  21. package/dest/interfaces/aztec-node-admin.d.ts +31 -1
  22. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  23. package/dest/interfaces/block-builder.d.ts +2 -1
  24. package/dest/interfaces/block-builder.d.ts.map +1 -1
  25. package/dest/interfaces/proving-job.d.ts +166 -166
  26. package/dest/interfaces/validator.d.ts +68 -4
  27. package/dest/interfaces/validator.d.ts.map +1 -1
  28. package/dest/interfaces/validator.js +2 -1
  29. package/dest/p2p/block_proposal.d.ts +3 -2
  30. package/dest/p2p/block_proposal.d.ts.map +1 -1
  31. package/dest/p2p/block_proposal.js +14 -2
  32. package/dest/p2p/checkpoint_proposal.d.ts +3 -2
  33. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  34. package/dest/p2p/checkpoint_proposal.js +9 -2
  35. package/dest/tests/mocks.d.ts +3 -2
  36. package/dest/tests/mocks.d.ts.map +1 -1
  37. package/dest/tests/mocks.js +4 -4
  38. package/dest/tx/block_header.d.ts +3 -1
  39. package/dest/tx/block_header.d.ts.map +1 -1
  40. package/dest/tx/block_header.js +3 -0
  41. package/dest/tx/private_execution_result.d.ts +3 -3
  42. package/dest/tx/private_execution_result.d.ts.map +1 -1
  43. package/dest/tx/private_execution_result.js +1 -1
  44. package/dest/tx/profiling.d.ts +149 -26
  45. package/dest/tx/profiling.d.ts.map +1 -1
  46. package/dest/tx/profiling.js +44 -7
  47. package/dest/zkpassport/index.d.ts +3 -4
  48. package/dest/zkpassport/index.d.ts.map +1 -1
  49. package/dest/zkpassport/index.js +9 -9
  50. package/package.json +9 -8
  51. package/src/block/l2_block_new.ts +5 -1
  52. package/src/block/l2_block_source.ts +19 -11
  53. package/src/block/l2_block_stream/interfaces.ts +1 -2
  54. package/src/block/l2_block_stream/l2_block_stream.ts +1 -10
  55. package/src/block/test/l2_tips_store_test_suite.ts +0 -5
  56. package/src/checkpoint/checkpoint.ts +9 -3
  57. package/src/interfaces/archiver.ts +1 -0
  58. package/src/interfaces/block-builder.ts +1 -0
  59. package/src/interfaces/validator.ts +7 -3
  60. package/src/p2p/block_proposal.ts +14 -3
  61. package/src/p2p/checkpoint_proposal.ts +10 -4
  62. package/src/tests/mocks.ts +15 -11
  63. package/src/tx/block_header.ts +5 -0
  64. package/src/tx/private_execution_result.ts +1 -1
  65. package/src/tx/profiling.ts +46 -4
  66. package/src/zkpassport/index.ts +11 -12
@@ -3,9 +3,24 @@ import { type ZodFor } from '@aztec/foundation/schemas';
3
3
  import { z } from 'zod';
4
4
  import type { AztecNode } from '../interfaces/aztec-node.js';
5
5
  import { type PrivateExecutionStep } from '../kernel/private_kernel_prover_output.js';
6
- export type NodeStats = Partial<Record<keyof AztecNode, {
7
- times: number[];
8
- }>>;
6
+ export type RoundTripStats = {
7
+ /** Number of round trips (times we blocked waiting for node responses) */
8
+ roundTrips: number;
9
+ /** Total wall-clock time spent waiting on node (excludes parallel overlap) */
10
+ totalBlockingTime: number;
11
+ /** Individual round trip durations */
12
+ roundTripDurations: number[];
13
+ /** Methods called in each round trip (parallel calls grouped together) */
14
+ roundTripMethods: string[][];
15
+ };
16
+ export type NodeStats = {
17
+ /** Per-method call stats */
18
+ perMethod: Partial<Record<keyof AztecNode, {
19
+ times: number[];
20
+ }>>;
21
+ /** Round trip stats tracking actual blocking waits */
22
+ roundTrips: RoundTripStats;
23
+ };
9
24
  type FunctionTiming = {
10
25
  functionName: string;
11
26
  time: number;
@@ -131,13 +146,51 @@ export declare const ProvingStatsSchema: z.ZodObject<{
131
146
  unaccounted: number;
132
147
  total: number;
133
148
  }>;
134
- nodeRPCCalls: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
135
- times: z.ZodArray<z.ZodNumber, "many">;
149
+ nodeRPCCalls: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodObject<{
150
+ perMethod: z.ZodRecord<z.ZodString, z.ZodObject<{
151
+ times: z.ZodArray<z.ZodNumber, "many">;
152
+ }, "strip", z.ZodTypeAny, {
153
+ times: number[];
154
+ }, {
155
+ times: number[];
156
+ }>>;
157
+ roundTrips: z.ZodObject<{
158
+ roundTrips: z.ZodNumber;
159
+ totalBlockingTime: z.ZodNumber;
160
+ roundTripDurations: z.ZodArray<z.ZodNumber, "many">;
161
+ roundTripMethods: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
162
+ }, "strip", z.ZodTypeAny, {
163
+ roundTrips: number;
164
+ totalBlockingTime: number;
165
+ roundTripDurations: number[];
166
+ roundTripMethods: string[][];
167
+ }, {
168
+ roundTrips: number;
169
+ totalBlockingTime: number;
170
+ roundTripDurations: number[];
171
+ roundTripMethods: string[][];
172
+ }>;
136
173
  }, "strip", z.ZodTypeAny, {
137
- times: number[];
174
+ perMethod: Record<string, {
175
+ times: number[];
176
+ }>;
177
+ roundTrips: {
178
+ roundTrips: number;
179
+ totalBlockingTime: number;
180
+ roundTripDurations: number[];
181
+ roundTripMethods: string[][];
182
+ };
138
183
  }, {
139
- times: number[];
140
- }>>>;
184
+ perMethod: Record<string, {
185
+ times: number[];
186
+ }>;
187
+ roundTrips: {
188
+ roundTrips: number;
189
+ totalBlockingTime: number;
190
+ roundTripDurations: number[];
191
+ roundTripMethods: string[][];
192
+ };
193
+ }>>;
141
194
  }, "strip", z.ZodTypeAny, {
142
195
  timings: {
143
196
  sync?: number | undefined;
@@ -152,9 +205,17 @@ export declare const ProvingStatsSchema: z.ZodObject<{
152
205
  unaccounted: number;
153
206
  total: number;
154
207
  };
155
- nodeRPCCalls?: Record<string, {
156
- times: number[];
157
- }> | undefined;
208
+ nodeRPCCalls?: {
209
+ perMethod: Record<string, {
210
+ times: number[];
211
+ }>;
212
+ roundTrips: {
213
+ roundTrips: number;
214
+ totalBlockingTime: number;
215
+ roundTripDurations: number[];
216
+ roundTripMethods: string[][];
217
+ };
218
+ } | undefined;
158
219
  }, {
159
220
  timings: {
160
221
  sync?: number | undefined;
@@ -169,9 +230,17 @@ export declare const ProvingStatsSchema: z.ZodObject<{
169
230
  unaccounted: number;
170
231
  total: number;
171
232
  };
172
- nodeRPCCalls?: Record<string, {
173
- times: number[];
174
- }> | undefined;
233
+ nodeRPCCalls?: {
234
+ perMethod: Record<string, {
235
+ times: number[];
236
+ }>;
237
+ roundTrips: {
238
+ roundTrips: number;
239
+ totalBlockingTime: number;
240
+ roundTripDurations: number[];
241
+ roundTripMethods: string[][];
242
+ };
243
+ } | undefined;
175
244
  }>;
176
245
  export interface SimulationTimings {
177
246
  sync: number;
@@ -298,13 +367,51 @@ export declare const SimulationStatsSchema: z.ZodObject<{
298
367
  unaccounted: number;
299
368
  total: number;
300
369
  }>;
301
- nodeRPCCalls: z.ZodRecord<z.ZodString, z.ZodObject<{
302
- times: z.ZodArray<z.ZodNumber, "many">;
370
+ nodeRPCCalls: z.ZodObject<{
371
+ perMethod: z.ZodRecord<z.ZodString, z.ZodObject<{
372
+ times: z.ZodArray<z.ZodNumber, "many">;
373
+ }, "strip", z.ZodTypeAny, {
374
+ times: number[];
375
+ }, {
376
+ times: number[];
377
+ }>>;
378
+ roundTrips: z.ZodObject<{
379
+ roundTrips: z.ZodNumber;
380
+ totalBlockingTime: z.ZodNumber;
381
+ roundTripDurations: z.ZodArray<z.ZodNumber, "many">;
382
+ roundTripMethods: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
383
+ }, "strip", z.ZodTypeAny, {
384
+ roundTrips: number;
385
+ totalBlockingTime: number;
386
+ roundTripDurations: number[];
387
+ roundTripMethods: string[][];
388
+ }, {
389
+ roundTrips: number;
390
+ totalBlockingTime: number;
391
+ roundTripDurations: number[];
392
+ roundTripMethods: string[][];
393
+ }>;
303
394
  }, "strip", z.ZodTypeAny, {
304
- times: number[];
395
+ perMethod: Record<string, {
396
+ times: number[];
397
+ }>;
398
+ roundTrips: {
399
+ roundTrips: number;
400
+ totalBlockingTime: number;
401
+ roundTripDurations: number[];
402
+ roundTripMethods: string[][];
403
+ };
305
404
  }, {
306
- times: number[];
307
- }>>;
405
+ perMethod: Record<string, {
406
+ times: number[];
407
+ }>;
408
+ roundTrips: {
409
+ roundTrips: number;
410
+ totalBlockingTime: number;
411
+ roundTripDurations: number[];
412
+ roundTripMethods: string[][];
413
+ };
414
+ }>;
308
415
  }, "strip", z.ZodTypeAny, {
309
416
  timings: {
310
417
  sync: number;
@@ -320,9 +427,17 @@ export declare const SimulationStatsSchema: z.ZodObject<{
320
427
  unaccounted: number;
321
428
  total: number;
322
429
  };
323
- nodeRPCCalls: Record<string, {
324
- times: number[];
325
- }>;
430
+ nodeRPCCalls: {
431
+ perMethod: Record<string, {
432
+ times: number[];
433
+ }>;
434
+ roundTrips: {
435
+ roundTrips: number;
436
+ totalBlockingTime: number;
437
+ roundTripDurations: number[];
438
+ roundTripMethods: string[][];
439
+ };
440
+ };
326
441
  }, {
327
442
  timings: {
328
443
  sync: number;
@@ -338,9 +453,17 @@ export declare const SimulationStatsSchema: z.ZodObject<{
338
453
  unaccounted: number;
339
454
  total: number;
340
455
  };
341
- nodeRPCCalls: Record<string, {
342
- times: number[];
343
- }>;
456
+ nodeRPCCalls: {
457
+ perMethod: Record<string, {
458
+ times: number[];
459
+ }>;
460
+ roundTrips: {
461
+ roundTrips: number;
462
+ totalBlockingTime: number;
463
+ roundTripDurations: number[];
464
+ roundTripMethods: string[][];
465
+ };
466
+ };
344
467
  }>;
345
468
  export declare class TxProfileResult {
346
469
  executionSteps: PrivateExecutionStep[];
@@ -357,4 +480,4 @@ export declare class UtilitySimulationResult {
357
480
  static random(): UtilitySimulationResult;
358
481
  }
359
482
  export {};
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvcHJvZmlsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFFM0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxvQkFBb0IsRUFBOEIsTUFBTSwyQ0FBMkMsQ0FBQztBQUVsSCxNQUFNLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxTQUFTLEVBQUU7SUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUE7Q0FBRSxDQUFDLENBQUMsQ0FBQztBQUk5RSxLQUFLLGNBQWMsR0FBRztJQUNwQixZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0NBQy9DLENBQUM7QUFRRixNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQzNCLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNkLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNqQixXQUFXLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDOUIsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixLQUFLLEVBQUUsTUFBTSxDQUFDO0NBQ2YsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFNL0IsQ0FBQztBQUVILE1BQU0sV0FBVyxZQUFZO0lBQzNCLE9BQU8sRUFBRSxjQUFjLENBQUM7SUFDeEIsWUFBWSxDQUFDLEVBQUUsU0FBUyxDQUFDO0NBQzFCO0FBRUQsZUFBTyxNQUFNLGtCQUFrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFHN0IsQ0FBQztBQUVILE1BQU0sV0FBVyxpQkFBaUI7SUFDaEMsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzFCLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNwQixXQUFXLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDOUIsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixLQUFLLEVBQUUsTUFBTSxDQUFDO0NBQ2Y7QUFFRCxlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBT2xDLENBQUM7QUFFSCxNQUFNLFdBQVcsZUFBZTtJQUM5QixPQUFPLEVBQUUsaUJBQWlCLENBQUM7SUFDM0IsWUFBWSxFQUFFLFNBQVMsQ0FBQztDQUN6QjtBQUVELGVBQU8sTUFBTSxxQkFBcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFHaEMsQ0FBQztBQUVILHFCQUFhLGVBQWU7SUFFakIsY0FBYyxFQUFFLG9CQUFvQixFQUFFO0lBQ3RDLEtBQUssRUFBRSxZQUFZO0lBRjVCLFlBQ1MsY0FBYyxFQUFFLG9CQUFvQixFQUFFLEVBQ3RDLEtBQUssRUFBRSxZQUFZLEVBQ3hCO0lBQ0osTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBTzNDO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxlQUFlLENBOEIvQjtDQUNGO0FBRUQscUJBQWEsdUJBQXVCO0lBRXpCLE1BQU0sRUFBRSxFQUFFLEVBQUU7SUFDWixLQUFLLENBQUM7SUFGZixZQUNTLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFDWixLQUFLLENBQUMsNkJBQWlCLEVBQzVCO0lBRUosTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FPbkQ7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLHVCQUF1QixDQWlCdkM7Q0FDRiJ9
483
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvcHJvZmlsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFFM0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxvQkFBb0IsRUFBOEIsTUFBTSwyQ0FBMkMsQ0FBQztBQUVsSCxNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQzNCLDBFQUEwRTtJQUMxRSxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLDhFQUE4RTtJQUM5RSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsc0NBQXNDO0lBQ3RDLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzdCLDBFQUEwRTtJQUMxRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO0NBQzlCLENBQUM7QUFTRixNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLDRCQUE0QjtJQUM1QixTQUFTLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLHNEQUFzRDtJQUN0RCxVQUFVLEVBQUUsY0FBYyxDQUFDO0NBQzVCLENBQUM7QUFPRixLQUFLLGNBQWMsR0FBRztJQUNwQixZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFBO0tBQUUsQ0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"profiling.d.ts","sourceRoot":"","sources":["../../src/tx/profiling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,KAAK,oBAAoB,EAA8B,MAAM,2CAA2C,CAAC;AAElH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAAC,CAAC;AAI9E,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC/C,CAAC;AAQF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/B,CAAC;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,YAAY,EAAE,SAAS,CAAC;CACzB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhC,CAAC;AAEH,qBAAa,eAAe;IAEjB,cAAc,EAAE,oBAAoB,EAAE;IACtC,KAAK,EAAE,YAAY;IAF5B,YACS,cAAc,EAAE,oBAAoB,EAAE,EACtC,KAAK,EAAE,YAAY,EACxB;IACJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,CAO3C;IAED,MAAM,CAAC,MAAM,IAAI,eAAe,CA8B/B;CACF;AAED,qBAAa,uBAAuB;IAEzB,MAAM,EAAE,EAAE,EAAE;IACZ,KAAK,CAAC;IAFf,YACS,MAAM,EAAE,EAAE,EAAE,EACZ,KAAK,CAAC,6BAAiB,EAC5B;IAEJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,uBAAuB,CAAC,CAOnD;IAED,MAAM,CAAC,MAAM,IAAI,uBAAuB,CAiBvC;CACF"}
1
+ {"version":3,"file":"profiling.d.ts","sourceRoot":"","sources":["../../src/tx/profiling.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,18 @@ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { optional, schemas } from '@aztec/foundation/schemas';
3
3
  import { z } from 'zod';
4
4
  import { PrivateExecutionStepSchema } from '../kernel/private_kernel_prover_output.js';
5
- const NodeStatsSchema = z.record(z.string(), z.object({
6
- times: z.array(z.number())
7
- }));
5
+ const RoundTripStatsSchema = z.object({
6
+ roundTrips: z.number(),
7
+ totalBlockingTime: z.number(),
8
+ roundTripDurations: z.array(z.number()),
9
+ roundTripMethods: z.array(z.array(z.string()))
10
+ });
11
+ const NodeStatsSchema = z.object({
12
+ perMethod: z.record(z.string(), z.object({
13
+ times: z.array(z.number())
14
+ })),
15
+ roundTrips: RoundTripStatsSchema
16
+ });
8
17
  const FunctionTimingSchema = z.object({
9
18
  functionName: z.string(),
10
19
  time: z.number(),
@@ -67,9 +76,23 @@ export class TxProfileResult {
67
76
  }
68
77
  ], {
69
78
  nodeRPCCalls: {
70
- getBlockHeader: {
71
- times: [
79
+ perMethod: {
80
+ getBlockHeader: {
81
+ times: [
82
+ 1
83
+ ]
84
+ }
85
+ },
86
+ roundTrips: {
87
+ roundTrips: 1,
88
+ totalBlockingTime: 1,
89
+ roundTripDurations: [
72
90
  1
91
+ ],
92
+ roundTripMethods: [
93
+ [
94
+ 'getBlockHeader'
95
+ ]
73
96
  ]
74
97
  }
75
98
  },
@@ -106,9 +129,23 @@ export class UtilitySimulationResult {
106
129
  Fr.random()
107
130
  ], {
108
131
  nodeRPCCalls: {
109
- getBlockHeader: {
110
- times: [
132
+ perMethod: {
133
+ getBlockHeader: {
134
+ times: [
135
+ 1
136
+ ]
137
+ }
138
+ },
139
+ roundTrips: {
140
+ roundTrips: 1,
141
+ totalBlockingTime: 1,
142
+ roundTripDurations: [
111
143
  1
144
+ ],
145
+ roundTripMethods: [
146
+ [
147
+ 'getBlockHeader'
148
+ ]
112
149
  ]
113
150
  }
114
151
  },
@@ -1,14 +1,13 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  export type ViemZkPassportProofParams = {
4
+ version: `0x${string}`;
4
5
  proofVerificationData: {
5
6
  vkeyHash: `0x${string}`;
6
7
  proof: `0x${string}`;
7
8
  publicInputs: `0x${string}`[];
8
9
  };
9
- commitments: {
10
- committedInputs: `0x${string}`;
11
- };
10
+ committedInputs: `0x${string}`;
12
11
  serviceConfig: {
13
12
  validityPeriodInSeconds: bigint;
14
13
  domain: string;
@@ -32,4 +31,4 @@ export declare class ZkPassportProofParams {
32
31
  static fromViem(params: ViemZkPassportProofParams): ZkPassportProofParams;
33
32
  toViem(): ViemZkPassportProofParams;
34
33
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy96a3Bhc3Nwb3J0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsTUFBTSxNQUFNLHlCQUF5QixHQUFHO0lBQ3RDLHFCQUFxQixFQUFFO1FBQ3JCLFFBQVEsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLEtBQUssRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLFlBQVksRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUFFLENBQUM7S0FDL0IsQ0FBQztJQUNGLFdBQVcsRUFBRTtRQUNYLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO0tBQ2hDLENBQUM7SUFDRixhQUFhLEVBQUU7UUFDYix1QkFBdUIsRUFBRSxNQUFNLENBQUM7UUFDaEMsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUNmLEtBQUssRUFBRSxNQUFNLENBQUM7UUFDZCxPQUFPLEVBQUUsT0FBTyxDQUFDO0tBQ2xCLENBQUM7Q0FDSCxDQUFDO0FBSUYscUJBQWEscUJBQXFCO0lBRXZCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxNQUFNO0lBQ2IsWUFBWSxFQUFFLEVBQUUsRUFBRTtJQUNsQixlQUFlLEVBQUUsTUFBTTtJQUN2Qix1QkFBdUIsRUFBRSxNQUFNO0lBQy9CLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLE1BQU07SUFSdEIsWUFDUyxPQUFPLEVBQUUsT0FBTyxFQUNoQixRQUFRLEVBQUUsUUFBUSxFQUNsQixLQUFLLEVBQUUsTUFBTSxFQUNiLFlBQVksRUFBRSxFQUFFLEVBQUUsRUFDbEIsZUFBZSxFQUFFLE1BQU0sRUFDdkIsdUJBQXVCLEVBQUUsTUFBTSxFQUMvQixNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxNQUFNLEVBQ2xCO0lBRUosUUFBUSw0QkFjUDtJQUVELE1BQU0sQ0FBQyxNQUFNLDBCQWtCWjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0seUJBWS9CO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLHlCQVdoRDtJQUVELE1BQU0sSUFBSSx5QkFBeUIsQ0FpQmxDO0NBQ0YifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy96a3Bhc3Nwb3J0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsTUFBTSxNQUFNLHlCQUF5QixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLHFCQUFxQixFQUFFO1FBQ3JCLFFBQVEsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLEtBQUssRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLFlBQVksRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUFFLENBQUM7S0FDL0IsQ0FBQztJQUNGLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO0lBQy9CLGFBQWEsRUFBRTtRQUNiLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztRQUNoQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUNkLE9BQU8sRUFBRSxPQUFPLENBQUM7S0FDbEIsQ0FBQztDQUNILENBQUM7QUFJRixxQkFBYSxxQkFBcUI7SUFFdkIsT0FBTyxFQUFFLE9BQU87SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLE1BQU07SUFDYixZQUFZLEVBQUUsRUFBRSxFQUFFO0lBQ2xCLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLHVCQUF1QixFQUFFLE1BQU07SUFDL0IsTUFBTSxFQUFFLE1BQU07SUFDZCxLQUFLLEVBQUUsTUFBTTtJQVJ0QixZQUNTLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEVBQ2IsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUNsQixlQUFlLEVBQUUsTUFBTSxFQUN2Qix1QkFBdUIsRUFBRSxNQUFNLEVBQy9CLE1BQU0sRUFBRSxNQUFNLEVBQ2QsS0FBSyxFQUFFLE1BQU0sRUFDbEI7SUFFSixRQUFRLDRCQWNQO0lBRUQsTUFBTSxDQUFDLE1BQU0sMEJBa0JaO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSx5QkFZL0I7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSx5QkFBeUIseUJBV2hEO0lBRUQsTUFBTSxJQUFJLHlCQUF5QixDQWlCbEM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zkpassport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,MAAM,MAAM,yBAAyB,GAAG;IACtC,qBAAqB,EAAE;QACrB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;QACxB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QACrB,YAAY,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KAC/B,CAAC;IACF,WAAW,EAAE;QACX,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;KAChC,CAAC;IACF,aAAa,EAAE;QACb,uBAAuB,EAAE,MAAM,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAIF,qBAAa,qBAAqB;IAEvB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,EAAE,EAAE;IAClB,eAAe,EAAE,MAAM;IACvB,uBAAuB,EAAE,MAAM;IAC/B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IARtB,YACS,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,EAAE,EAAE,EAClB,eAAe,EAAE,MAAM,EACvB,uBAAuB,EAAE,MAAM,EAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAClB;IAEJ,QAAQ,4BAcP;IAED,MAAM,CAAC,MAAM,0BAkBZ;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,yBAY/B;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,yBAWhD;IAED,MAAM,IAAI,yBAAyB,CAiBlC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zkpassport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,qBAAqB,EAAE;QACrB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;QACxB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QACrB,YAAY,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KAC/B,CAAC;IACF,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,aAAa,EAAE;QACb,uBAAuB,EAAE,MAAM,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAIF,qBAAa,qBAAqB;IAEvB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,EAAE,EAAE;IAClB,eAAe,EAAE,MAAM;IACvB,uBAAuB,EAAE,MAAM;IAC/B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IARtB,YACS,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,EAAE,EAAE,EAClB,eAAe,EAAE,MAAM,EACvB,uBAAuB,EAAE,MAAM,EAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAClB;IAEJ,QAAQ,4BAcP;IAED,MAAM,CAAC,MAAM,0BAkBZ;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,yBAY/B;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,yBAWhD;IAED,MAAM,IAAI,yBAAyB,CAiBlC;CACF"}
@@ -59,23 +59,23 @@ export class ZkPassportProofParams {
59
59
  return new ZkPassportProofParams(reader.readBoolean(), reader.readObject(Buffer32), reader.readBuffer(), reader.readVector(Fr), reader.readBuffer(), reader.readUInt256(), reader.readString(), reader.readString());
60
60
  }
61
61
  static fromViem(params) {
62
- return new ZkPassportProofParams(params.serviceConfig.devMode, Buffer32.fromString(params.proofVerificationData.vkeyHash), Buffer.from(withoutHexPrefix(params.proofVerificationData.proof), 'hex'), params.proofVerificationData.publicInputs.map((input)=>Fr.fromString(input)), Buffer.from(withoutHexPrefix(params.commitments.committedInputs), 'hex'), params.serviceConfig.validityPeriodInSeconds, params.serviceConfig.domain, params.serviceConfig.scope);
62
+ return new ZkPassportProofParams(params.serviceConfig.devMode, Buffer32.fromString(params.proofVerificationData.vkeyHash), Buffer.from(withoutHexPrefix(params.proofVerificationData.proof), 'hex'), params.proofVerificationData.publicInputs.map((input)=>Fr.fromString(input)), Buffer.from(withoutHexPrefix(params.committedInputs), 'hex'), params.serviceConfig.validityPeriodInSeconds, params.serviceConfig.domain, params.serviceConfig.scope);
63
63
  }
64
64
  toViem() {
65
+ // Version is set to bytes32(0) as per zkpassport library convention
65
66
  return {
66
- serviceConfig: {
67
- devMode: this.devMode,
68
- validityPeriodInSeconds: this.validityPeriodInSeconds,
69
- domain: this.domain,
70
- scope: this.scope
71
- },
67
+ version: '0x0000000000000000000000000000000000000000000000000000000000000000',
72
68
  proofVerificationData: {
73
69
  vkeyHash: this.vkeyHash.toString(),
74
70
  proof: `0x${this.proof.toString('hex')}`,
75
71
  publicInputs: this.publicInputs.map((input)=>input.toString())
76
72
  },
77
- commitments: {
78
- committedInputs: `0x${this.committedInputs.toString('hex')}`
73
+ committedInputs: `0x${this.committedInputs.toString('hex')}`,
74
+ serviceConfig: {
75
+ devMode: this.devMode,
76
+ validityPeriodInSeconds: this.validityPeriodInSeconds,
77
+ domain: this.domain,
78
+ scope: this.scope
79
79
  }
80
80
  };
81
81
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "4.0.0-nightly.20260116",
3
+ "version": "4.0.0-nightly.20260117",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -78,13 +78,14 @@
78
78
  },
79
79
  "dependencies": {
80
80
  "@aws-sdk/client-s3": "^3.892.0",
81
- "@aztec/bb.js": "4.0.0-nightly.20260116",
82
- "@aztec/blob-lib": "4.0.0-nightly.20260116",
83
- "@aztec/constants": "4.0.0-nightly.20260116",
84
- "@aztec/ethereum": "4.0.0-nightly.20260116",
85
- "@aztec/foundation": "4.0.0-nightly.20260116",
86
- "@aztec/l1-artifacts": "4.0.0-nightly.20260116",
87
- "@aztec/noir-noirc_abi": "4.0.0-nightly.20260116",
81
+ "@aztec/bb.js": "4.0.0-nightly.20260117",
82
+ "@aztec/blob-lib": "4.0.0-nightly.20260117",
83
+ "@aztec/constants": "4.0.0-nightly.20260117",
84
+ "@aztec/ethereum": "4.0.0-nightly.20260117",
85
+ "@aztec/foundation": "4.0.0-nightly.20260117",
86
+ "@aztec/l1-artifacts": "4.0.0-nightly.20260117",
87
+ "@aztec/noir-noirc_abi": "4.0.0-nightly.20260117",
88
+ "@aztec/validator-ha-signer": "4.0.0-nightly.20260117",
88
89
  "@google-cloud/storage": "^7.15.0",
89
90
  "axios": "^1.12.0",
90
91
  "json-stringify-deterministic": "1.0.12",
@@ -1,5 +1,5 @@
1
1
  import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
- import { BlockNumber, CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
2
+ import { BlockNumber, CheckpointNumber, CheckpointNumberSchema, SlotNumber } from '@aztec/foundation/branded-types';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
 
@@ -37,6 +37,10 @@ export class L2BlockNew {
37
37
  return this.header.globalVariables.blockNumber;
38
38
  }
39
39
 
40
+ get slot(): SlotNumber {
41
+ return this.header.globalVariables.slotNumber;
42
+ }
43
+
40
44
  get timestamp(): bigint {
41
45
  return this.header.globalVariables.timestamp;
42
46
  }
@@ -194,6 +194,13 @@ export interface L2BlockSource {
194
194
  */
195
195
  getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2Block[]>;
196
196
 
197
+ /**
198
+ * Returns all blocks for a given slot.
199
+ * @dev Use this method only with recent slots, since it walks the block list backwards.
200
+ * @param slotNumber - The slot number to return blocks for.
201
+ */
202
+ getBlocksForSlot(slotNumber: SlotNumber): Promise<L2BlockNew[]>;
203
+
197
204
  /**
198
205
  * Gets a published block by its block hash.
199
206
  * @param blockHash - The block hash to retrieve.
@@ -238,7 +245,8 @@ export interface L2BlockSink {
238
245
  * see L2BlockSourceEvents for the events emitted.
239
246
  */
240
247
  export type ArchiverEmitter = TypedEventEmitter<{
241
- [L2BlockSourceEvents.L2PruneDetected]: (args: L2BlockPruneEvent) => void;
248
+ [L2BlockSourceEvents.L2PruneUnproven]: (args: L2PruneUnprovenEvent) => void;
249
+ [L2BlockSourceEvents.L2PruneUncheckpointed]: (args: L2PruneUncheckpointedEvent) => void;
242
250
  [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockProvenEvent) => void;
243
251
  [L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
244
252
  [L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
@@ -256,13 +264,6 @@ export interface L2BlockSourceEventEmitter extends L2BlockSource {
256
264
  */
257
265
  export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
258
266
 
259
- /**
260
- * Reason for L2 block prune.
261
- * - uncheckpointed: L2 blocks were pruned due to a failure to checkpoint.
262
- * - unproven: L2 blocks were pruned due to a failure to prove.
263
- */
264
- export type L2BlockPruneReason = 'uncheckpointed' | 'unproven';
265
-
266
267
  /** Tips of the L2 chain. */
267
268
  export type L2Tips = {
268
269
  proposed: L2BlockId;
@@ -316,7 +317,8 @@ export const L2TipsSchema = z.object({
316
317
  });
317
318
 
318
319
  export enum L2BlockSourceEvents {
319
- L2PruneDetected = 'l2PruneDetected',
320
+ L2PruneUnproven = 'l2PruneUnproven',
321
+ L2PruneUncheckpointed = 'l2PruneUncheckpointed',
320
322
  L2BlockProven = 'l2BlockProven',
321
323
  L2BlocksCheckpointed = 'l2BlocksCheckpointed',
322
324
  InvalidAttestationsCheckpointDetected = 'invalidCheckpointDetected',
@@ -329,12 +331,18 @@ export type L2BlockProvenEvent = {
329
331
  epochNumber: EpochNumber;
330
332
  };
331
333
 
332
- export type L2BlockPruneEvent = {
333
- type: 'l2PruneDetected';
334
+ export type L2PruneUnprovenEvent = {
335
+ type: 'l2PruneUnproven';
334
336
  epochNumber: EpochNumber;
335
337
  blocks: L2BlockNew[];
336
338
  };
337
339
 
340
+ export type L2PruneUncheckpointedEvent = {
341
+ type: 'l2PruneUncheckpointed';
342
+ slotNumber: SlotNumber;
343
+ blocks: L2BlockNew[];
344
+ };
345
+
338
346
  export type L2CheckpointEvent = {
339
347
  type: 'l2BlocksCheckpointed';
340
348
  checkpoint: PublishedCheckpoint;
@@ -1,6 +1,6 @@
1
1
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
2
2
  import type { L2BlockNew } from '../l2_block_new.js';
3
- import type { CheckpointId, L2BlockId, L2BlockPruneReason, L2Tips } from '../l2_block_source.js';
3
+ import type { CheckpointId, L2BlockId, L2Tips } from '../l2_block_source.js';
4
4
 
5
5
  /** Interface to the local view of the chain. Implemented by world-state and l2-tips-store. */
6
6
  export interface L2BlockStreamLocalDataProvider {
@@ -29,7 +29,6 @@ export type L2BlockStreamEvent =
29
29
  * events that will push the anchor block forward.
30
30
  */ {
31
31
  type: 'chain-pruned';
32
- reason: L2BlockPruneReason;
33
32
  block: L2BlockId;
34
33
  checkpoint: CheckpointId;
35
34
  }
@@ -4,7 +4,7 @@ import { createLogger } from '@aztec/foundation/log';
4
4
  import { RunningPromise } from '@aztec/foundation/running-promise';
5
5
 
6
6
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
7
- import { type L2BlockId, type L2BlockPruneReason, type L2BlockSource, makeL2BlockId } from '../l2_block_source.js';
7
+ import { type L2BlockId, type L2BlockSource, makeL2BlockId } from '../l2_block_source.js';
8
8
  import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider } from './interfaces.js';
9
9
 
10
10
  /** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */
@@ -85,18 +85,9 @@ export class L2BlockStream {
85
85
  this.log.verbose(
86
86
  `Reorg detected. Pruning blocks from ${latestBlockNumber + 1} to ${localTips.proposed.number}.`,
87
87
  );
88
- // This check is not 100% accurate
89
- // If the local tips are sufficiently behind the source tips, such that we are missing at least one checkpoint
90
- // that has now been re-orged due to a proof failure then this will indicate a failure to checkpoint rather than a failure to prove
91
- // TODO: (mbps/PhilWindle): Improve re-org detection accuracy when we come to do re-orgs
92
- let reason: L2BlockPruneReason = 'unproven';
93
- if (latestBlockNumber === localTips.checkpointed.block.number && !this.opts.ignoreCheckpoints) {
94
- reason = 'uncheckpointed';
95
- }
96
88
  await this.emitEvent({
97
89
  type: 'chain-pruned',
98
90
  block: makeL2BlockId(latestBlockNumber, hash),
99
- reason,
100
91
  checkpoint: sourceTips.checkpointed.checkpoint,
101
92
  });
102
93
  }
@@ -243,7 +243,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
243
243
  await tipsStore.handleBlockStreamEvent({
244
244
  type: 'chain-pruned',
245
245
  block: makeBlockId(5),
246
- reason: 'unproven',
247
246
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
248
247
  });
249
248
 
@@ -268,7 +267,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
268
267
  await tipsStore.handleBlockStreamEvent({
269
268
  type: 'chain-pruned',
270
269
  block: makeTip(0),
271
- reason: 'unproven',
272
270
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
273
271
  });
274
272
 
@@ -334,7 +332,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
334
332
  await tipsStore.handleBlockStreamEvent({
335
333
  type: 'chain-pruned',
336
334
  block: makeBlockId(5),
337
- reason: 'unproven',
338
335
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
339
336
  });
340
337
 
@@ -399,7 +396,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
399
396
  await tipsStore.handleBlockStreamEvent({
400
397
  type: 'chain-pruned',
401
398
  block: makeBlockId(3),
402
- reason: 'unproven',
403
399
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
404
400
  });
405
401
 
@@ -478,7 +474,6 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
478
474
  await tipsStore.handleBlockStreamEvent({
479
475
  type: 'chain-pruned',
480
476
  block: makeBlockId(3),
481
- reason: 'unproven',
482
477
  checkpoint: { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() },
483
478
  });
484
479
 
@@ -1,5 +1,5 @@
1
1
  import { encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
2
- import { BlockNumber, CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
2
+ import { BlockNumber, CheckpointNumber, CheckpointNumberSchema, SlotNumber } from '@aztec/foundation/branded-types';
3
3
  import { sum } from '@aztec/foundation/collection';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -14,6 +14,8 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
14
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
15
  import type { CheckpointInfo } from './checkpoint_info.js';
16
16
 
17
+ type FieldsOfCheckpoint = Omit<FieldsOf<Checkpoint>, 'slot'>;
18
+
17
19
  export class Checkpoint {
18
20
  constructor(
19
21
  /** Snapshot of archive tree after the checkpoint is added. */
@@ -26,6 +28,10 @@ export class Checkpoint {
26
28
  public number: CheckpointNumber,
27
29
  ) {}
28
30
 
31
+ get slot(): SlotNumber {
32
+ return this.header.slotNumber;
33
+ }
34
+
29
35
  static get schema() {
30
36
  return z
31
37
  .object({
@@ -37,11 +43,11 @@ export class Checkpoint {
37
43
  .transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
38
44
  }
39
45
 
40
- static from(fields: FieldsOf<Checkpoint>) {
46
+ static from(fields: FieldsOfCheckpoint) {
41
47
  return new Checkpoint(...Checkpoint.getFields(fields));
42
48
  }
43
49
 
44
- static getFields(fields: FieldsOf<Checkpoint>) {
50
+ static getFields(fields: FieldsOfCheckpoint) {
45
51
  return [fields.archive, fields.header, fields.blocks, fields.number] as const;
46
52
  }
47
53
 
@@ -120,6 +120,7 @@ export const ArchiverApiSchema: ApiSchemaFor<ArchiverApi> = {
120
120
  getL2EpochNumber: z.function().args().returns(EpochNumberSchema.optional()),
121
121
  getCheckpointsForEpoch: z.function().args(EpochNumberSchema).returns(z.array(Checkpoint.schema)),
122
122
  getBlocksForEpoch: z.function().args(EpochNumberSchema).returns(z.array(L2Block.schema)),
123
+ getBlocksForSlot: z.function().args(schemas.SlotNumber).returns(z.array(L2BlockNew.schema)),
123
124
  getBlockHeadersForEpoch: z.function().args(EpochNumberSchema).returns(z.array(BlockHeader.schema)),
124
125
  isEpochComplete: z.function().args(EpochNumberSchema).returns(z.boolean()),
125
126
  getL2Tips: z.function().args().returns(L2TipsSchema),
@@ -56,6 +56,7 @@ export interface BuildBlockResult {
56
56
  failedTxs: FailedTx[];
57
57
  blockBuildingTimer: Timer;
58
58
  usedTxs: Tx[];
59
+ usedTxBlobFields: number;
59
60
  }
60
61
 
61
62
  export type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> &