@aztec/stdlib 5.0.0-nightly.20260701 → 5.0.0-nightly.20260703

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 (51) hide show
  1. package/dest/block/l2_block_source.d.ts +22 -2
  2. package/dest/block/l2_block_source.d.ts.map +1 -1
  3. package/dest/block/l2_block_source.js +10 -0
  4. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
  5. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
  6. package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
  7. package/dest/block/l2_block_stream/index.d.ts +2 -1
  8. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  9. package/dest/block/l2_block_stream/index.js +1 -0
  10. package/dest/block/l2_block_stream/interfaces.d.ts +16 -2
  11. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  12. package/dest/block/l2_block_stream/interfaces.js +25 -1
  13. package/dest/block/l2_block_stream/l2_block_stream.d.ts +21 -35
  14. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  15. package/dest/block/l2_block_stream/l2_block_stream.js +5 -30
  16. package/dest/contract/contract_address.d.ts +5 -4
  17. package/dest/contract/contract_address.d.ts.map +1 -1
  18. package/dest/contract/contract_instance.d.ts +16 -2
  19. package/dest/contract/contract_instance.d.ts.map +1 -1
  20. package/dest/contract/contract_instance.js +45 -0
  21. package/dest/contract/interfaces/contract_instance.d.ts +71 -10
  22. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  23. package/dest/contract/interfaces/contract_instance.js +7 -2
  24. package/dest/contract/partial_address.d.ts +9 -3
  25. package/dest/contract/partial_address.d.ts.map +1 -1
  26. package/dest/contract/partial_address.js +8 -2
  27. package/dest/interfaces/proving-job.d.ts +70 -70
  28. package/dest/keys/derivation.d.ts +35 -5
  29. package/dest/keys/derivation.d.ts.map +1 -1
  30. package/dest/keys/derivation.js +32 -19
  31. package/dest/logs/app_tagging_secret.d.ts +11 -8
  32. package/dest/logs/app_tagging_secret.d.ts.map +1 -1
  33. package/dest/logs/app_tagging_secret.js +14 -14
  34. package/dest/logs/shared_secret_derivation.d.ts +14 -7
  35. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  36. package/dest/logs/shared_secret_derivation.js +16 -8
  37. package/dest/tx/simulated_tx.d.ts +10 -6
  38. package/dest/tx/simulated_tx.d.ts.map +1 -1
  39. package/package.json +8 -8
  40. package/src/block/l2_block_source.ts +41 -0
  41. package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
  42. package/src/block/l2_block_stream/index.ts +1 -0
  43. package/src/block/l2_block_stream/interfaces.ts +35 -1
  44. package/src/block/l2_block_stream/l2_block_stream.ts +35 -62
  45. package/src/contract/contract_address.ts +4 -3
  46. package/src/contract/contract_instance.ts +62 -1
  47. package/src/contract/interfaces/contract_instance.ts +26 -8
  48. package/src/contract/partial_address.ts +8 -2
  49. package/src/keys/derivation.ts +53 -16
  50. package/src/logs/app_tagging_secret.ts +14 -10
  51. package/src/logs/shared_secret_derivation.ts +17 -10
@@ -263,6 +263,7 @@ export type ArchiverEmitter = TypedEventEmitter<{
263
263
  [L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
264
264
  [L2BlockSourceEvents.CheckpointEquivocationDetected]: (args: CheckpointEquivocationDetectedEvent) => void;
265
265
  [L2BlockSourceEvents.DescendentOfInvalidAttestationsCheckpointDetected]: (args: DescendentOfInvalidAttestationsCheckpointEvent) => void;
266
+ [L2BlockSourceEvents.L2BlockSourceUpdated]: (args: L2BlockSourceUpdatedEvent) => void;
266
267
  }>;
267
268
  export interface L2BlockSourceEventEmitter extends L2BlockSource {
268
269
  events: ArchiverEmitter;
@@ -307,6 +308,8 @@ export type L2TipId = {
307
308
  export declare function makeL2BlockId(number: BlockNumber, hash?: string): L2BlockId;
308
309
  /** Creates an L2 checkpoint id */
309
310
  export declare function makeL2CheckpointId(number: CheckpointNumber, hash: string): CheckpointId;
311
+ /** Returns whether two {@link L2Tips} snapshots agree on every tier (proposed, checkpointed, proven, finalized). */
312
+ export declare function l2TipsEqual(a: L2Tips, b: L2Tips): boolean;
310
313
  export declare const L2TipsSchema: z.ZodObject<{
311
314
  proposed: z.ZodObject<{
312
315
  number: z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodBigInt, z.ZodTransform<number, bigint>>, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>, z.ZodTransform<BlockNumber, number>>;
@@ -350,8 +353,25 @@ export declare enum L2BlockSourceEvents {
350
353
  L2BlocksCheckpointed = "l2BlocksCheckpointed",
351
354
  InvalidAttestationsCheckpointDetected = "invalidCheckpointDetected",
352
355
  CheckpointEquivocationDetected = "checkpointEquivocationDetected",
353
- DescendentOfInvalidAttestationsCheckpointDetected = "descendentOfInvalidAttestationsCheckpointDetected"
356
+ DescendentOfInvalidAttestationsCheckpointDetected = "descendentOfInvalidAttestationsCheckpointDetected",
357
+ L2BlockSourceUpdated = "l2BlockSourceUpdated"
354
358
  }
359
+ /**
360
+ * Aggregate event emitted once per committed archiver sync pass that mutated local state. Carries the chain tips
361
+ * before and after the pass, and the blocks added during it. Consumers compare `fromTips` and `toTips` to learn what
362
+ * moved; there is no separate `changed` section.
363
+ *
364
+ * This is an optimization signal that lets a block stream reconcile immediately on an archiver update rather than
365
+ * waiting for its next poll. Polling remains the correctness fallback, so a missed event only affects latency.
366
+ * `blocksAdded` are hydrated blocks already in hand from the sync pass, so a triggered sync that is caught up to
367
+ * `fromTips` can reuse them (and `toTips`) instead of re-reading the store.
368
+ */
369
+ export type L2BlockSourceUpdatedEvent = {
370
+ type: 'l2BlockSourceUpdated';
371
+ fromTips: L2Tips;
372
+ toTips: L2Tips;
373
+ blocksAdded: readonly L2Block[];
374
+ };
355
375
  export type L2BlockProvenEvent = {
356
376
  type: 'l2BlockProven';
357
377
  blockNumber: BlockNumber;
@@ -402,4 +422,4 @@ export type DescendentOfInvalidAttestationsCheckpointEvent = {
402
422
  /** Checkpoint number of the rejected ancestor. */
403
423
  ancestorCheckpointNumber: CheckpointNumber;
404
424
  };
405
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfc291cmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBRVgsZ0JBQWdCLEVBRWhCLEtBQUssV0FBVyxFQUVoQixLQUFLLFVBQVUsRUFFaEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEgsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBK0IsS0FBSyx3QkFBd0IsRUFBRSxNQUFN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
425
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfc291cmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBRVgsZ0JBQWdCLEVBRWhCLEtBQUssV0FBVyxFQUVoQixLQUFLLFVBQVUsRUFFaEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEgsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBK0IsS0FBSyx3QkFBd0IsRUFBRSxNQUFN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
@@ -1 +1 @@
1
- {"version":3,"file":"l2_block_source.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"l2_block_source.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_source.ts"],"names":[],"mappings":"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"}
@@ -80,6 +80,15 @@ export const GENESIS_CHECKPOINT_HEADER_HASH = CheckpointHeader.empty().hash();
80
80
  hash
81
81
  };
82
82
  }
83
+ function l2BlockIdEquals(a, b) {
84
+ return a.number === b.number && a.hash === b.hash;
85
+ }
86
+ function l2TipIdEquals(a, b) {
87
+ return l2BlockIdEquals(a.block, b.block) && a.checkpoint.number === b.checkpoint.number && a.checkpoint.hash === b.checkpoint.hash;
88
+ }
89
+ /** Returns whether two {@link L2Tips} snapshots agree on every tier (proposed, checkpointed, proven, finalized). */ export function l2TipsEqual(a, b) {
90
+ return l2BlockIdEquals(a.proposed, b.proposed) && l2TipIdEquals(a.checkpointed, b.checkpointed) && l2TipIdEquals(a.proven, b.proven) && l2TipIdEquals(a.finalized, b.finalized);
91
+ }
83
92
  const L2BlockIdSchema = z.object({
84
93
  number: BlockNumberSchema,
85
94
  hash: z.string()
@@ -106,5 +115,6 @@ export var L2BlockSourceEvents = /*#__PURE__*/ function(L2BlockSourceEvents) {
106
115
  L2BlockSourceEvents["InvalidAttestationsCheckpointDetected"] = "invalidCheckpointDetected";
107
116
  L2BlockSourceEvents["CheckpointEquivocationDetected"] = "checkpointEquivocationDetected";
108
117
  L2BlockSourceEvents["DescendentOfInvalidAttestationsCheckpointDetected"] = "descendentOfInvalidAttestationsCheckpointDetected";
118
+ L2BlockSourceEvents["L2BlockSourceUpdated"] = "l2BlockSourceUpdated";
109
119
  return L2BlockSourceEvents;
110
120
  }({});
@@ -0,0 +1,39 @@
1
+ import { type Logger } from '@aztec/foundation/log';
2
+ import { type L2BlockSource, type L2BlockSourceEventEmitter } from '../l2_block_source.js';
3
+ import { type L2BlockStreamEventHandler, type L2BlockStreamLocalDataProvider } from './interfaces.js';
4
+ import { type L2BlockStreamOptions } from './l2_block_stream.js';
5
+ /**
6
+ * Event-driven wrapper around {@link L2BlockStream}. Subscribes to the source's aggregate `l2BlockSourceUpdated`
7
+ * event (when the source exposes one) to trigger an immediate reconciliation, while keeping the periodic poll as
8
+ * the correctness fallback. Subsystems keep consuming the same {@link L2BlockStreamEvent}s; the archiver aggregate
9
+ * event is handled entirely here.
10
+ *
11
+ * The event is passed through to the sync pass via {@link RunningPromise.trigger}. If, at the time the pass runs,
12
+ * the stream's local tips match the event's `fromTips` (it is caught up to where the event began), the event's
13
+ * hydrated blocks are served back through a hot-block cache and the event's `toTips` is reported as the source tips
14
+ * — so the triggered sync re-reads neither block bodies nor tips from the archiver. Otherwise the pass delegates
15
+ * entirely to the source, and the periodic poll guarantees eventual catch-up.
16
+ */
17
+ export declare class EventDrivenL2BlockStream {
18
+ private readonly localData;
19
+ private readonly log;
20
+ private readonly adapter;
21
+ private readonly blockStream;
22
+ private readonly runningPromise;
23
+ private readonly emitter;
24
+ private started;
25
+ private readonly onSourceUpdated;
26
+ constructor(source: L2BlockSource | L2BlockSourceEventEmitter, localData: L2BlockStreamLocalDataProvider, handler: L2BlockStreamEventHandler, log?: Logger, opts?: L2BlockStreamOptions);
27
+ start(): void;
28
+ stop(): Promise<void>;
29
+ isRunning(): boolean;
30
+ /**
31
+ * Runs a synchronization pass now, bypassing the poll interval, and resolves once that pass completes. Concurrent
32
+ * callers and periodic ticks coalesce onto a single pass; a caller that coalesces onto an already in-flight pass
33
+ * can resolve against a pass that began just before it, so this guarantees freshness only up to that coalescing
34
+ * window. The periodic poll and per-pass reorg handling make the gap a latency effect, never a correctness one.
35
+ */
36
+ sync(): Promise<void>;
37
+ private runPass;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfZHJpdmVuX2wyX2Jsb2NrX3N0cmVhbS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jsb2NrL2wyX2Jsb2NrX3N0cmVhbS9ldmVudF9kcml2ZW5fbDJfYmxvY2tfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUtsRSxPQUFPLEVBSUwsS0FBSyxhQUFhLEVBQ2xCLEtBQUsseUJBQXlCLEVBSS9CLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQUUsS0FBSyw4QkFBOEIsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN0SCxPQUFPLEVBQWlCLEtBQUssb0JBQW9CLEVBQTRCLE1BQU0sc0JBQXNCLENBQUM7QUE4RjFHOzs7Ozs7Ozs7OztHQVdHO0FBQ0gscUJBQWEsd0JBQXdCO0lBaUJqQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFFMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBbEJ0QixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBd0I7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQWdCO0lBQzVDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUE0QztJQUMzRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBOEI7SUFDdEQsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUV4QixPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FNOUI7SUFFRixZQUNFLE1BQU0sRUFBRSxhQUFhLEdBQUcseUJBQXlCLEVBQ2hDLFNBQVMsRUFBRSw4QkFBOEIsRUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUNqQixHQUFHLFNBQWtELEVBQ3RFLElBQUksR0FBRSxvQkFBeUIsRUFZaEM7SUFFTSxLQUFLLElBQUksSUFBSSxDQVFuQjtJQUVZLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2pDO0lBRU0sU0FBUyxJQUFJLE9BQU8sQ0FFMUI7SUFFRDs7Ozs7T0FLRztJQUNJLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTNCO1lBT2EsT0FBTztDQWN0QiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event_driven_l2_block_stream.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/event_driven_l2_block_stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAKlE,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAI/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,8BAA8B,EAAkB,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAiB,KAAK,oBAAoB,EAA4B,MAAM,sBAAsB,CAAC;AA8F1G;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAwB;IAiBjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAlBtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAC3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAM9B;IAEF,YACE,MAAM,EAAE,aAAa,GAAG,yBAAyB,EAChC,SAAS,EAAE,8BAA8B,EAC1D,OAAO,EAAE,yBAAyB,EACjB,GAAG,SAAkD,EACtE,IAAI,GAAE,oBAAyB,EAYhC;IAEM,KAAK,IAAI,IAAI,CAQnB;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAKjC;IAEM,SAAS,IAAI,OAAO,CAE1B;IAED;;;;;OAKG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;YAOa,OAAO;CActB"}
@@ -0,0 +1,165 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { RunningPromise } from '@aztec/foundation/running-promise';
3
+ import { L2BlockSourceEvents } from '../l2_block_source.js';
4
+ import { localTipsMatch } from './interfaces.js';
5
+ import { L2BlockStream } from './l2_block_stream.js';
6
+ /** Derives the metadata-only {@link BlockData} view of a hydrated {@link L2Block}. */ async function l2BlockToBlockData(block) {
7
+ return {
8
+ header: block.header,
9
+ archive: block.archive,
10
+ blockHash: await block.hash(),
11
+ checkpointNumber: block.checkpointNumber,
12
+ indexWithinCheckpoint: block.indexWithinCheckpoint
13
+ };
14
+ }
15
+ /** Returns the event emitter of a source that exposes one, or undefined for plain (e.g. RPC-backed) sources. */ function getEmitter(source) {
16
+ return 'events' in source ? source.events : undefined;
17
+ }
18
+ /**
19
+ * Wraps a block source so a single sync pass can be served from blocks delivered by an aggregate update event,
20
+ * avoiding round-trips to archiver storage. The fast path is only armed (via {@link activate}) for a pass that is
21
+ * confirmed caught up to the event's pre-pass tips: in that case the event's `blocksAdded` contiguously cover the
22
+ * pass's download range and `toTips` is the exact post-pass tip, so `getL2Tips` can report it without querying the
23
+ * source. When the fast path is not armed, every read delegates to the source, so a stale or partial cache never
24
+ * changes the sync outcome.
25
+ */ class HotBlockSourceAdapter {
26
+ source;
27
+ log;
28
+ /** Set for the duration of one fast-path pass; undefined when reads must delegate to the source. */ active;
29
+ constructor(source, log){
30
+ this.source = source;
31
+ this.log = log;
32
+ }
33
+ /** Arms the fast path for the current pass: serve these blocks and report `toTips` as the source tips. */ activate(blocks, toTips) {
34
+ const byNumber = new Map();
35
+ for (const block of blocks){
36
+ byNumber.set(block.number, block);
37
+ }
38
+ this.active = {
39
+ byNumber,
40
+ toTips
41
+ };
42
+ this.log.trace(`Armed hot-block fast path`, {
43
+ blocks: byNumber.size,
44
+ toTips
45
+ });
46
+ }
47
+ /** Disarms the fast path so subsequent reads delegate to the source again. */ deactivate() {
48
+ this.active = undefined;
49
+ }
50
+ getL2Tips() {
51
+ return this.active ? Promise.resolve(this.active.toTips) : this.source.getL2Tips();
52
+ }
53
+ getBlocks(query) {
54
+ const served = this.active ? this.tryServeBlocksFromCache(query) : undefined;
55
+ return served ? Promise.resolve(served) : this.source.getBlocks(query);
56
+ }
57
+ getBlockData(query) {
58
+ if (this.active && 'number' in query) {
59
+ const block = this.active.byNumber.get(query.number);
60
+ if (block) {
61
+ return l2BlockToBlockData(block);
62
+ }
63
+ }
64
+ return this.source.getBlockData(query);
65
+ }
66
+ /** Serves a block range from the cache only when it is fully covered by contiguous cached blocks. */ tryServeBlocksFromCache(query) {
67
+ // Only the by-range form is cacheable, and only for the full (not checkpointed-only) chain: the cache may hold
68
+ // uncheckpointed blocks that an onlyCheckpointed query must not receive.
69
+ if (!this.active || !('from' in query) || query.onlyCheckpointed) {
70
+ return undefined;
71
+ }
72
+ const from = query.from;
73
+ const to = from + query.limit - 1;
74
+ const blocks = [];
75
+ for(let n = from; n <= to; n++){
76
+ const block = this.active.byNumber.get(n);
77
+ if (!block) {
78
+ // A gap inside the requested range: bail out and let the source serve the whole range.
79
+ return undefined;
80
+ }
81
+ blocks.push(block);
82
+ }
83
+ return blocks;
84
+ }
85
+ }
86
+ /**
87
+ * Event-driven wrapper around {@link L2BlockStream}. Subscribes to the source's aggregate `l2BlockSourceUpdated`
88
+ * event (when the source exposes one) to trigger an immediate reconciliation, while keeping the periodic poll as
89
+ * the correctness fallback. Subsystems keep consuming the same {@link L2BlockStreamEvent}s; the archiver aggregate
90
+ * event is handled entirely here.
91
+ *
92
+ * The event is passed through to the sync pass via {@link RunningPromise.trigger}. If, at the time the pass runs,
93
+ * the stream's local tips match the event's `fromTips` (it is caught up to where the event began), the event's
94
+ * hydrated blocks are served back through a hot-block cache and the event's `toTips` is reported as the source tips
95
+ * — so the triggered sync re-reads neither block bodies nor tips from the archiver. Otherwise the pass delegates
96
+ * entirely to the source, and the periodic poll guarantees eventual catch-up.
97
+ */ export class EventDrivenL2BlockStream {
98
+ localData;
99
+ log;
100
+ adapter;
101
+ blockStream;
102
+ runningPromise;
103
+ emitter;
104
+ started;
105
+ onSourceUpdated;
106
+ constructor(source, localData, handler, log = createLogger('types:event_driven_block_stream'), opts = {}){
107
+ this.localData = localData;
108
+ this.log = log;
109
+ this.started = false;
110
+ this.onSourceUpdated = (event)=>{
111
+ // Fire-and-forget: trigger coalesces with any in-flight or periodic pass (see RunningPromise.trigger), so a
112
+ // burst of events does not run passes concurrently. Errors are swallowed by the inner stream's own handler.
113
+ void this.runningPromise.trigger(event).catch((err)=>this.log.error(`Error in event-triggered block stream sync`, err));
114
+ };
115
+ this.adapter = new HotBlockSourceAdapter(source, log);
116
+ // The inner stream's own RunningPromise is never started; this wrapper owns the polling loop and drives the
117
+ // stream through `sync()` (which runs `work()` directly when the inner loop is stopped).
118
+ this.blockStream = new L2BlockStream(this.adapter, localData, handler, log, opts);
119
+ this.runningPromise = new RunningPromise(this.runPass.bind(this), log, opts.pollIntervalMS ?? 1000);
120
+ this.emitter = getEmitter(source);
121
+ }
122
+ start() {
123
+ if (this.started) {
124
+ this.log.warn(`Attempted to start an already-started event-driven block stream`);
125
+ return;
126
+ }
127
+ this.started = true;
128
+ this.emitter?.on(L2BlockSourceEvents.L2BlockSourceUpdated, this.onSourceUpdated);
129
+ this.runningPromise.start();
130
+ }
131
+ async stop() {
132
+ this.started = false;
133
+ this.emitter?.off(L2BlockSourceEvents.L2BlockSourceUpdated, this.onSourceUpdated);
134
+ await this.runningPromise.stop();
135
+ await this.blockStream.stop();
136
+ }
137
+ isRunning() {
138
+ return this.runningPromise.isRunning();
139
+ }
140
+ /**
141
+ * Runs a synchronization pass now, bypassing the poll interval, and resolves once that pass completes. Concurrent
142
+ * callers and periodic ticks coalesce onto a single pass; a caller that coalesces onto an already in-flight pass
143
+ * can resolve against a pass that began just before it, so this guarantees freshness only up to that coalescing
144
+ * window. The periodic poll and per-pass reorg handling make the gap a latency effect, never a correctness one.
145
+ */ sync() {
146
+ return this.runningPromise.trigger();
147
+ }
148
+ /**
149
+ * Runs a single pass over the underlying block stream. When triggered by an aggregate event and the stream is
150
+ * caught up to the event's pre-pass tips, the event's blocks and tips serve the pass directly; the fast path is
151
+ * always disarmed afterwards so a subsequent poll-driven pass reads from the source.
152
+ */ async runPass(event) {
153
+ if (event) {
154
+ const localTips = await this.localData.getL2Tips();
155
+ if (localTipsMatch(localTips, event.fromTips)) {
156
+ this.adapter.activate(event.blocksAdded, event.toTips);
157
+ }
158
+ }
159
+ try {
160
+ await this.blockStream.sync();
161
+ } finally{
162
+ this.adapter.deactivate();
163
+ }
164
+ }
165
+ }
@@ -1,5 +1,6 @@
1
+ export * from './event_driven_l2_block_stream.js';
1
2
  export * from './interfaces.js';
2
3
  export * from './l2_block_stream.js';
3
4
  export * from './l2_tips_memory_store.js';
4
5
  export * from './l2_tips_store_base.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9jay9sMl9ibG9ja19zdHJlYW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQyJ9
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9jay9sMl9ibG9ja19zdHJlYW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './event_driven_l2_block_stream.js';
1
2
  export * from './interfaces.js';
2
3
  export * from './l2_block_stream.js';
3
4
  export * from './l2_tips_memory_store.js';
@@ -1,6 +1,6 @@
1
1
  import type { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import type { L2Block } from '../l2_block.js';
3
- import type { CheckpointId, L2BlockId, L2TipId, LocalL2Tips } from '../l2_block_source.js';
3
+ import type { CheckpointId, L2BlockId, L2TipId, L2Tips, LocalL2Tips } from '../l2_block_source.js';
4
4
  /** Provides the current chain tips. Implemented by world-state, l2-tips-store, and AztecNode. */
5
5
  export interface L2TipsProvider {
6
6
  getL2Tips(): Promise<LocalL2Tips>;
@@ -39,6 +39,20 @@ export interface L2BlockStreamLocalDataProvider {
39
39
  getL2Tips(): Promise<LocalChainTips>;
40
40
  getL2BlockHash(number: number): Promise<string | undefined>;
41
41
  }
42
+ /**
43
+ * Returns whether a local block id differs from a source block id. Compares block number and, when the local hash is
44
+ * known, block hash. The hash comparison is skipped when the local hash is undefined: world-state legitimately
45
+ * reports `undefined` hashes for tips ahead of its synced range, and comparing against an undefined hash would treat
46
+ * such a tip as different on every poll. An `undefined` local block (no local tip yet) always counts as differing.
47
+ */
48
+ export declare function localBlockIdDiffers(localBlock: LocalL2BlockId | undefined, sourceBlock: L2BlockId): boolean;
49
+ /**
50
+ * Returns whether the local chain tips agree with the given source tips on every tier the local provider exposes.
51
+ * Each tier is compared at the block level via {@link localBlockIdDiffers} (so an unresolved local hash matches on
52
+ * number alone); checkpoint ids are not compared, mirroring the stream's own tier reconciliation. The optional
53
+ * `checkpointed` tier is only compared when present (it is absent when the stream ignores checkpoints).
54
+ */
55
+ export declare function localTipsMatch(local: LocalChainTips, source: L2Tips): boolean;
42
56
  /** Interface to a handler of events emitted. */
43
57
  export interface L2BlockStreamEventHandler {
44
58
  handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
@@ -92,4 +106,4 @@ export type L2TipsStore = L2BlockStreamEventHandler & L2TipsProvider & Pick<L2Bl
92
106
  */
93
107
  recordBlockHashes(blocks: L2BlockId[]): Promise<void>;
94
108
  };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jsb2NrL2wyX2Jsb2NrX3N0cmVhbS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNGLGlHQUFpRztBQUNqRyxNQUFNLFdBQVcsY0FBYztJQUM3QixTQUFTLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ25DO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDO0FBRXBFOzs7R0FHRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsUUFBUSxFQUFFLGNBQWMsQ0FBQztJQUN6QixZQUFZLENBQUMsRUFBRTtRQUFFLEtBQUssRUFBRSxjQUFjLENBQUM7UUFBQyxVQUFVLEVBQUUsWUFBWSxDQUFBO0tBQUUsQ0FBQztJQUNuRSxNQUFNLEVBQUU7UUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFBO0tBQUUsQ0FBQztJQUNsQyxTQUFTLEVBQUU7UUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFBO0tBQUUsQ0FBQztDQUN0QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sV0FBVyw4QkFBOEI7SUFDN0MsU0FBUyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0NBQzdEO0FBRUQsZ0RBQWdEO0FBQ2hELE1BQU0sV0FBVyx5QkFBeUI7SUFDeEMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUNsRTtBQUVELE1BQU0sTUFBTSxrQkFBa0IsR0FDMUIsdUNBQXVDLENBQUM7SUFDdEMsSUFBSSxFQUFFLGNBQWMsQ0FBQztJQUNyQixNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7Q0FDbkIsR0FDRDs7Ozs7O0dBTUMsQ0FBQztJQUNBLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztJQUN2QixLQUFLLEVBQUUsU0FBUyxDQUFDO0NBQ2xCLEdBQ0Q7Ozs7R0FJQyxDQUFDO0lBQ0EsSUFBSSxFQUFFLG9CQUFvQixDQUFDO0lBQzNCLEtBQUssRUFBRSxTQUFTLENBQUM7SUFDakIsVUFBVSxFQUFFLFlBQVksQ0FBQztDQUMxQixHQUNEOzs7Ozs7O0dBT0MsQ0FBQztJQUNBLElBQUksRUFBRSxjQUFjLENBQUM7SUFDckIsS0FBSyxFQUFFLFNBQVMsQ0FBQztJQUNqQixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLE1BQU0sRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FDRCxnQ0FBZ0MsQ0FBQztJQUMvQixJQUFJLEVBQUUsY0FBYyxDQUFDO0lBQ3JCLEtBQUssRUFBRSxTQUFTLENBQUM7SUFDakIsVUFBVSxFQUFFLFlBQVksQ0FBQztDQUMxQixHQUNELGdFQUFnRSxDQUFDO0lBQy9ELElBQUksRUFBRSxpQkFBaUIsQ0FBQztJQUN4QixLQUFLLEVBQUUsU0FBUyxDQUFDO0lBQ2pCLFVBQVUsRUFBRSxZQUFZLENBQUM7Q0FDMUIsQ0FBQztBQUVOLE1BQU0sTUFBTSxXQUFXLEdBQUcseUJBQXlCLEdBQ2pELGNBQWMsR0FDZCxJQUFJLENBQUMsOEJBQThCLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztJQUN2RDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUN2RCxDQUFDIn0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jsb2NrL2wyX2Jsb2NrX3N0cmVhbS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRyxpR0FBaUc7QUFDakcsTUFBTSxXQUFXLGNBQWM7SUFDN0IsU0FBUyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUNuQztBQUVEOzs7R0FHRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQztBQUVwRTs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQzNCLFFBQVEsRUFBRSxjQUFjLENBQUM7SUFDekIsWUFBWSxDQUFDLEVBQUU7UUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDO1FBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQTtLQUFFLENBQUM7SUFDbkUsTUFBTSxFQUFFO1FBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQTtLQUFFLENBQUM7SUFDbEMsU0FBUyxFQUFFO1FBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQTtLQUFFLENBQUM7Q0FDdEMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFdBQVcsOEJBQThCO0lBQzdDLFNBQVMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztDQUM3RDtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxjQUFjLEdBQUcsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQVczRztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQU83RTtBQUVELGdEQUFnRDtBQUNoRCxNQUFNLFdBQVcseUJBQXlCO0lBQ3hDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDbEU7QUFFRCxNQUFNLE1BQU0sa0JBQWtCLEdBQzFCLHVDQUF1QyxDQUFDO0lBQ3RDLElBQUksRUFBRSxjQUFjLENBQUM7SUFDckIsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0NBQ25CLEdBQ0Q7Ozs7OztHQU1DLENBQUM7SUFDQSxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7SUFDdkIsS0FBSyxFQUFFLFNBQVMsQ0FBQztDQUNsQixHQUNEOzs7O0dBSUMsQ0FBQztJQUNBLElBQUksRUFBRSxvQkFBb0IsQ0FBQztJQUMzQixLQUFLLEVBQUUsU0FBUyxDQUFDO0lBQ2pCLFVBQVUsRUFBRSxZQUFZLENBQUM7Q0FDMUIsR0FDRDs7Ozs7OztHQU9DLENBQUM7SUFDQSxJQUFJLEVBQUUsY0FBYyxDQUFDO0lBQ3JCLEtBQUssRUFBRSxTQUFTLENBQUM7SUFDakIsWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDO0NBQ2pCLEdBQ0QsZ0NBQWdDLENBQUM7SUFDL0IsSUFBSSxFQUFFLGNBQWMsQ0FBQztJQUNyQixLQUFLLEVBQUUsU0FBUyxDQUFDO0lBQ2pCLFVBQVUsRUFBRSxZQUFZLENBQUM7Q0FDMUIsR0FDRCxnRUFBZ0UsQ0FBQztJQUMvRCxJQUFJLEVBQUUsaUJBQWlCLENBQUM7SUFDeEIsS0FBSyxFQUFFLFNBQVMsQ0FBQztJQUNqQixVQUFVLEVBQUUsWUFBWSxDQUFDO0NBQzFCLENBQUM7QUFFTixNQUFNLE1BQU0sV0FBVyxHQUFHLHlCQUF5QixHQUNqRCxjQUFjLEdBQ2QsSUFBSSxDQUFDLDhCQUE4QixFQUFFLGdCQUFnQixDQUFDLEdBQUc7SUFDdkQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDdkQsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE3F,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,UAAU,EAAE,YAAY,CAAA;KAAE,CAAC;IACnE,MAAM,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC;IAClC,SAAS,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7D;AAED,gDAAgD;AAChD,MAAM,WAAW,yBAAyB;IACxC,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,MAAM,MAAM,kBAAkB,GAC1B,uCAAuC,CAAC;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB,GACD;;;;;;GAMC,CAAC;IACA,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;CAClB,GACD;;;;GAIC,CAAC;IACA,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;CAC1B,GACD;;;;;;;GAOC,CAAC;IACA,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB,GACD,gCAAgC,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;CAC1B,GACD,gEAAgE,CAAC;IAC/D,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,WAAW,GAAG,yBAAyB,GACjD,cAAc,GACd,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,GAAG;IACvD;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnG,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,UAAU,EAAE,YAAY,CAAA;KAAE,CAAC;IACnE,MAAM,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC;IAClC,SAAS,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,OAAO,CAW3G;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO7E;AAED,gDAAgD;AAChD,MAAM,WAAW,yBAAyB;IACxC,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,MAAM,MAAM,kBAAkB,GAC1B,uCAAuC,CAAC;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB,GACD;;;;;;GAMC,CAAC;IACA,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;CAClB,GACD;;;;GAIC,CAAC;IACA,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;CAC1B,GACD;;;;;;;GAOC,CAAC;IACA,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB,GACD,gCAAgC,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;CAC1B,GACD,gEAAgE,CAAC;IAC/D,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,WAAW,GAAG,yBAAyB,GACjD,cAAc,GACd,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,GAAG;IACvD;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC"}
@@ -1 +1,25 @@
1
- export { };
1
+ /**
2
+ * Returns whether a local block id differs from a source block id. Compares block number and, when the local hash is
3
+ * known, block hash. The hash comparison is skipped when the local hash is undefined: world-state legitimately
4
+ * reports `undefined` hashes for tips ahead of its synced range, and comparing against an undefined hash would treat
5
+ * such a tip as different on every poll. An `undefined` local block (no local tip yet) always counts as differing.
6
+ */ export function localBlockIdDiffers(localBlock, sourceBlock) {
7
+ if (localBlock === undefined) {
8
+ return true;
9
+ }
10
+ if (sourceBlock.number !== localBlock.number) {
11
+ return true;
12
+ }
13
+ if (localBlock.hash === undefined) {
14
+ return false;
15
+ }
16
+ return sourceBlock.hash !== localBlock.hash;
17
+ }
18
+ /**
19
+ * Returns whether the local chain tips agree with the given source tips on every tier the local provider exposes.
20
+ * Each tier is compared at the block level via {@link localBlockIdDiffers} (so an unresolved local hash matches on
21
+ * number alone); checkpoint ids are not compared, mirroring the stream's own tier reconciliation. The optional
22
+ * `checkpointed` tier is only compared when present (it is absent when the stream ignores checkpoints).
23
+ */ export function localTipsMatch(local, source) {
24
+ return !localBlockIdDiffers(local.proposed, source.proposed) && (local.checkpointed === undefined || !localBlockIdDiffers(local.checkpointed.block, source.checkpointed.block)) && !localBlockIdDiffers(local.proven.block, source.proven.block) && !localBlockIdDiffers(local.finalized.block, source.finalized.block);
25
+ }
@@ -1,7 +1,24 @@
1
1
  import { type L2BlockSource } from '../l2_block_source.js';
2
- import type { L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider } from './interfaces.js';
2
+ import { type L2BlockStreamEventHandler, type L2BlockStreamLocalDataProvider } from './interfaces.js';
3
3
  /** Subset of the block source the stream depends on. Checkpoint payloads are no longer fetched here. */
4
- type L2BlockStreamSource = Pick<L2BlockSource, 'getBlocks' | 'getBlockData' | 'getL2Tips'>;
4
+ export type L2BlockStreamSource = Pick<L2BlockSource, 'getBlocks' | 'getBlockData' | 'getL2Tips'>;
5
+ /** Options accepted by {@link L2BlockStream} and {@link EventDrivenL2BlockStream}. */
6
+ export type L2BlockStreamOptions = {
7
+ pollIntervalMS?: number;
8
+ batchSize?: number;
9
+ startingBlock?: number;
10
+ /** Instead of downloading all blocks, only fetch the smallest subset that results in reliable reorg detection. */
11
+ skipFinalized?: boolean;
12
+ /** When true, checkpoint events will not be emitted. Blocks are still fetched but only blocks-added events are emitted. */
13
+ ignoreCheckpoints?: boolean;
14
+ /**
15
+ * When true, the block download loop is skipped entirely: `getBlocks` is never called and `blocks-added` is
16
+ * never emitted. Only the tip events (`chain-proposed`/`chain-checkpointed`/`chain-proven`/`chain-finalized`)
17
+ * and `chain-pruned` are emitted, driven by the `getL2Tips` snapshot. For consumers that track tips but never
18
+ * consume block payloads.
19
+ */
20
+ tipsOnly?: boolean;
21
+ };
5
22
  /** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */
6
23
  export declare class L2BlockStream {
7
24
  private l2BlockSource;
@@ -12,22 +29,7 @@ export declare class L2BlockStream {
12
29
  private readonly runningPromise;
13
30
  private isSyncing;
14
31
  private hasStarted;
15
- constructor(l2BlockSource: L2BlockStreamSource, localData: L2BlockStreamLocalDataProvider, handler: L2BlockStreamEventHandler, log?: import("@aztec/foundation/log").Logger, opts?: {
16
- pollIntervalMS?: number;
17
- batchSize?: number;
18
- startingBlock?: number;
19
- /** Instead of downloading all blocks, only fetch the smallest subset that results in reliable reorg detection. */
20
- skipFinalized?: boolean;
21
- /** When true, checkpoint events will not be emitted. Blocks are still fetched but only blocks-added events are emitted. */
22
- ignoreCheckpoints?: boolean;
23
- /**
24
- * When true, the block download loop is skipped entirely: `getBlocks` is never called and `blocks-added` is
25
- * never emitted. Only the tip events (`chain-proposed`/`chain-checkpointed`/`chain-proven`/`chain-finalized`)
26
- * and `chain-pruned` are emitted, driven by the `getL2Tips` snapshot. For consumers that track tips but never
27
- * consume block payloads.
28
- */
29
- tipsOnly?: boolean;
30
- });
32
+ constructor(l2BlockSource: L2BlockStreamSource, localData: L2BlockStreamLocalDataProvider, handler: L2BlockStreamEventHandler, log?: import("@aztec/foundation/log").Logger, opts?: L2BlockStreamOptions);
31
33
  start(): void;
32
34
  stop(): Promise<void>;
33
35
  isRunning(): boolean;
@@ -39,24 +41,8 @@ export declare class L2BlockStream {
39
41
  sync(): Promise<void>;
40
42
  protected work(): Promise<void>;
41
43
  private downloadBlocks;
42
- /**
43
- * Returns whether the source tip differs from the local one and therefore warrants a tier event. Compares block
44
- * number and, when both hashes are known, block hash. The hash comparison is skipped when the local hash is
45
- * undefined or missing: world-state legitimately reports `undefined` hashes for tips ahead of its synced range,
46
- * and comparing against an undefined hash would re-emit the event on every poll.
47
- */
48
- private tipDiffers;
49
- /**
50
- * Block-only variant of {@link tipDiffers} for the proposed tip (an {@link L2BlockId}, with no checkpoint). Compares
51
- * block number and, when the local hash is known, block hash. The hash comparison is skipped when the local hash is
52
- * undefined: world-state reports `undefined` for its proposed hash, and a strict comparison would re-emit
53
- * `chain-proposed` on every poll for it. ({@link L2TipsStoreBase} consumers always carry a hash, so the leniency is
54
- * inert for them.)
55
- */
56
- private blockTipDiffers;
57
44
  private areBlockHashesEqualAt;
58
45
  private getBlockHashFromSource;
59
46
  private emitEvent;
60
47
  }
61
- export {};
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfc3RyZWFtLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc3RyZWFtL2wyX2Jsb2NrX3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBRUwsS0FBSyxhQUFhLEVBSW5CLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxLQUFLLEVBRVYseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUUvQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLHdHQUF3RztBQUN4RyxLQUFLLG1CQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxHQUFHLGNBQWMsR0FBRyxXQUFXLENBQUMsQ0FBQztBQUUzRix1SEFBdUg7QUFDdkgscUJBQWEsYUFBYTtJQU10QixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRztJQUNwQixPQUFPLENBQUMsSUFBSTtJQVRkLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFpQjtJQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFTO0lBQzFCLE9BQU8sQ0FBQyxVQUFVLENBQVM7SUFFM0IsWUFDVSxhQUFhLEVBQUUsbUJBQW1CLEVBQ2xDLFNBQVMsRUFBRSw4QkFBOEIsRUFDekMsT0FBTyxFQUFFLHlCQUF5QixFQUN6QixHQUFHLHlDQUFxQyxFQUNqRCxJQUFJLEdBQUU7UUFDWixjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDeEIsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ25CLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUN2QixrSEFBa0g7UUFDbEgsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDO1FBQ3hCLDJIQUEySDtRQUMzSCxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUM1Qjs7Ozs7V0FLRztRQUNILFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztLQUNmLEVBYVA7SUFFTSxLQUFLLFNBR1g7SUFFWSxJQUFJLGtCQUVoQjtJQUVNLFNBQVMsWUFFZjtJQUVEOzs7O09BSUc7SUFDVSxJQUFJLGtCQUloQjtJQUVELFVBQWdCLElBQUksa0JBa0luQjtZQVNhLGNBQWM7SUE2RDVCOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLFVBQVU7SUFJbEI7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFDLGVBQWU7WUFtQlQscUJBQXFCO0lBd0NuQyxPQUFPLENBQUMsc0JBQXNCO1lBT2hCLFNBQVM7Q0FleEIifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfc3RyZWFtLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfc3RyZWFtL2wyX2Jsb2NrX3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQWtCLEtBQUssYUFBYSxFQUFtQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVHLE9BQU8sRUFFTCxLQUFLLHlCQUF5QixFQUM5QixLQUFLLDhCQUE4QixFQUVwQyxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLHdHQUF3RztBQUN4RyxNQUFNLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEdBQUcsY0FBYyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBRWxHLHNGQUFzRjtBQUN0RixNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNuQixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsa0hBQWtIO0lBQ2xILGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN4QiwySEFBMkg7SUFDM0gsaUJBQWlCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDNUI7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDcEIsQ0FBQztBQUVGLHVIQUF1SDtBQUN2SCxxQkFBYSxhQUFhO0lBTXRCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBQ3BCLE9BQU8sQ0FBQyxJQUFJO0lBVGQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQWlCO0lBQ2hELE9BQU8sQ0FBQyxTQUFTLENBQVM7SUFDMUIsT0FBTyxDQUFDLFVBQVUsQ0FBUztJQUUzQixZQUNVLGFBQWEsRUFBRSxtQkFBbUIsRUFDbEMsU0FBUyxFQUFFLDhCQUE4QixFQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQ3pCLEdBQUcseUNBQXFDLEVBQ2pELElBQUksR0FBRSxvQkFBeUIsRUFheEM7SUFFTSxLQUFLLFNBR1g7SUFFWSxJQUFJLGtCQUVoQjtJQUVNLFNBQVMsWUFFZjtJQUVEOzs7O09BSUc7SUFDVSxJQUFJLGtCQUloQjtJQUVELFVBQWdCLElBQUksa0JBd0luQjtZQVNhLGNBQWM7WUFtRWQscUJBQXFCO0lBd0NuQyxPQUFPLENBQUMsc0JBQXNCO1lBT2hCLFNBQVM7Q0FleEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"l2_block_stream.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_block_stream.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAEV,yBAAyB,EACzB,8BAA8B,EAE/B,MAAM,iBAAiB,CAAC;AAEzB,wGAAwG;AACxG,KAAK,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC;AAE3F,uHAAuH;AACvH,qBAAa,aAAa;IAMtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,IAAI;IATd,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAE3B,YACU,aAAa,EAAE,mBAAmB,EAClC,SAAS,EAAE,8BAA8B,EACzC,OAAO,EAAE,yBAAyB,EACzB,GAAG,yCAAqC,EACjD,IAAI,GAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kHAAkH;QAClH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,2HAA2H;QAC3H,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACf,EAaP;IAEM,KAAK,SAGX;IAEY,IAAI,kBAEhB;IAEM,SAAS,YAEf;IAED;;;;OAIG;IACU,IAAI,kBAIhB;IAED,UAAgB,IAAI,kBAkInB;YASa,cAAc;IA6D5B;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;YAmBT,qBAAqB;IAwCnC,OAAO,CAAC,sBAAsB;YAOhB,SAAS;CAexB"}
1
+ {"version":3,"file":"l2_block_stream.d.ts","sourceRoot":"","sources":["../../../src/block/l2_block_stream/l2_block_stream.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,aAAa,EAAmC,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EAEpC,MAAM,iBAAiB,CAAC;AAEzB,wGAAwG;AACxG,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC;AAElG,sFAAsF;AACtF,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kHAAkH;IAClH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2HAA2H;IAC3H,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,uHAAuH;AACvH,qBAAa,aAAa;IAMtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,IAAI;IATd,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAE3B,YACU,aAAa,EAAE,mBAAmB,EAClC,SAAS,EAAE,8BAA8B,EACzC,OAAO,EAAE,yBAAyB,EACzB,GAAG,yCAAqC,EACjD,IAAI,GAAE,oBAAyB,EAaxC;IAEM,KAAK,SAGX;IAEY,IAAI,kBAEhB;IAEM,SAAS,YAEf;IAED;;;;OAIG;IACU,IAAI,kBAIhB;IAED,UAAgB,IAAI,kBAwInB;YASa,cAAc;YAmEd,qBAAqB;IAwCnC,OAAO,CAAC,sBAAsB;YAOhB,SAAS;CAexB"}