@aztec/stdlib 4.0.0-nightly.20260115 → 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.
- package/dest/block/l2_block_new.d.ts +3 -2
- package/dest/block/l2_block_new.d.ts.map +1 -1
- package/dest/block/l2_block_new.js +3 -0
- package/dest/block/l2_block_source.d.ts +18 -11
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +2 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +2 -3
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +0 -9
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +0 -5
- package/dest/checkpoint/checkpoint.d.ts +8 -5
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +3 -0
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +1 -0
- package/dest/interfaces/aztec-node-admin.d.ts +31 -1
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/block-builder.d.ts +2 -1
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +166 -166
- package/dest/interfaces/validator.d.ts +68 -4
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +2 -1
- package/dest/p2p/block_proposal.d.ts +3 -2
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +14 -2
- package/dest/p2p/checkpoint_proposal.d.ts +3 -2
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +9 -2
- package/dest/tests/mocks.d.ts +3 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +4 -4
- package/dest/tx/block_header.d.ts +3 -1
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +3 -0
- package/dest/tx/private_execution_result.d.ts +3 -3
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +1 -1
- package/dest/tx/profiling.d.ts +149 -26
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +44 -7
- package/dest/zkpassport/index.d.ts +3 -4
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +9 -9
- package/package.json +9 -8
- package/src/block/l2_block_new.ts +5 -1
- package/src/block/l2_block_source.ts +19 -11
- package/src/block/l2_block_stream/interfaces.ts +1 -2
- package/src/block/l2_block_stream/l2_block_stream.ts +1 -10
- package/src/block/test/l2_tips_store_test_suite.ts +0 -5
- package/src/checkpoint/checkpoint.ts +9 -3
- package/src/interfaces/archiver.ts +1 -0
- package/src/interfaces/block-builder.ts +1 -0
- package/src/interfaces/validator.ts +7 -3
- package/src/p2p/block_proposal.ts +14 -3
- package/src/p2p/checkpoint_proposal.ts +10 -4
- package/src/tests/mocks.ts +15 -11
- package/src/tx/block_header.ts +5 -0
- package/src/tx/private_execution_result.ts +1 -1
- package/src/tx/profiling.ts +46 -4
- package/src/zkpassport/index.ts +11 -12
package/dest/tx/profiling.d.ts
CHANGED
|
@@ -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
|
|
7
|
-
times
|
|
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.
|
|
135
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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?:
|
|
156
|
-
|
|
157
|
-
|
|
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?:
|
|
173
|
-
|
|
174
|
-
|
|
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.
|
|
302
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
324
|
-
|
|
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:
|
|
342
|
-
|
|
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,
|
|
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;
|
|
1
|
+
{"version":3,"file":"profiling.d.ts","sourceRoot":"","sources":["../../src/tx/profiling.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/profiling.js
CHANGED
|
@@ -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
|
|
6
|
-
|
|
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
|
-
|
|
71
|
-
|
|
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
|
-
|
|
110
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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"}
|
package/dest/zkpassport/index.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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
|
-
|
|
78
|
-
|
|
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.
|
|
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.
|
|
82
|
-
"@aztec/blob-lib": "4.0.0-nightly.
|
|
83
|
-
"@aztec/constants": "4.0.0-nightly.
|
|
84
|
-
"@aztec/ethereum": "4.0.0-nightly.
|
|
85
|
-
"@aztec/foundation": "4.0.0-nightly.
|
|
86
|
-
"@aztec/l1-artifacts": "4.0.0-nightly.
|
|
87
|
-
"@aztec/noir-noirc_abi": "4.0.0-nightly.
|
|
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.
|
|
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
|
-
|
|
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
|
|
333
|
-
type: '
|
|
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,
|
|
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
|
|
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:
|
|
46
|
+
static from(fields: FieldsOfCheckpoint) {
|
|
41
47
|
return new Checkpoint(...Checkpoint.getFields(fields));
|
|
42
48
|
}
|
|
43
49
|
|
|
44
|
-
static getFields(fields:
|
|
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),
|