@aztec/prover-node 5.1.0 → 5.2.0-nightly.20260724

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.
@@ -41,9 +41,15 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
41
41
  previousArchiveSiblingPath;
42
42
  /** Per-prover tx map — populated by the internal gather. Empty until then. */ txs;
43
43
  /** Resolved by the sub-tree on success, rejected on cancel/failure. */ blockProofs;
44
- cancelled;
44
+ // Three independent lifecycle facts — deliberately not collapsed into one status enum, because several
45
+ // combinations are legal and relied on: a prover can be `completed` and then `cancelled` (routine
46
+ // teardown of an already-proven checkpoint), or `completed` and then `failed` (block proving was
47
+ // enqueued, but the sub-tree subsequently faulted). Only `failed` + `cancelled` is excluded — a cancel
48
+ // is not a failure (enforced in `failBlockProofs`).
49
+ /** Block-level proving was fully *enqueued* (a progress marker; the sub-tree may still be proving). */ completed;
50
+ /** Block proofs rejected for a genuine (non-cancel) reason — a sub-tree or prune-induced fork fault. */ failed;
51
+ /** The prover was torn down (prune / reap / shutdown). */ cancelled;
45
52
  subTree;
46
- completed;
47
53
  abortController;
48
54
  /** Tracks the eager gather+execute task so `cancel()` and `whenDone()` can await its unwind. */ runPromise;
49
55
  /** Tracks the cancel-driven teardown so `whenDone()` can await it. */ cancelPromise;
@@ -51,8 +57,9 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
51
57
  this.deps = deps;
52
58
  this.txs = new Map();
53
59
  this.blockProofs = promiseWithResolvers();
54
- this.cancelled = false;
55
60
  this.completed = false;
61
+ this.failed = false;
62
+ this.cancelled = false;
56
63
  this.abortController = new AbortController();
57
64
  this.checkpoint = args.checkpoint;
58
65
  this.epochNumber = args.epochNumber;
@@ -86,8 +93,13 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
86
93
  isCancelled() {
87
94
  return this.cancelled;
88
95
  }
89
- /** True once block-level proving has been fully *enqueued* (sub-tree completion may still be pending). */ isCompleted() {
90
- return this.completed;
96
+ /**
97
+ * True once this prover's block proofs have rejected for a genuine (non-cancel) reason — a sub-tree
98
+ * proving fault or a prune-induced world-state fork fault. A failed prover cannot produce its block
99
+ * proofs, so the reconciler must not build (or rebuild) an EpochSession over it; it is cleared only by
100
+ * a prune/re-add replacing it with a fresh prover, or by expiry reaping it.
101
+ */ isFailed() {
102
+ return this.failed;
91
103
  }
92
104
  /** AbortSignal that fires on cancel — for callers that want to wire their own tasks. */ getAbortSignal() {
93
105
  return this.abortController.signal;
@@ -118,8 +130,25 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
118
130
  this.deps.log.error(`Error in CheckpointProver ${this.id}`, err, {
119
131
  checkpointNumber: this.checkpoint.number
120
132
  });
121
- this.blockProofs.reject(err instanceof Error ? err : new Error(String(err)));
133
+ this.failBlockProofs(err instanceof Error ? err : new Error(String(err)));
134
+ }
135
+ }
136
+ /**
137
+ * Rejects the block-proof promise and, unless this is a cancellation, records the prover as failed so
138
+ * the reconciler won't build an EpochSession over it. First rejection wins, so a later duplicate reject
139
+ * (e.g. the executeCheckpoint `finally`) is a harmless no-op.
140
+ */ failBlockProofs(err) {
141
+ if (!this.cancelled && !this.failed) {
142
+ this.failed = true;
143
+ // Notify the owner so it can upload a post-mortem for this checkpoint. Fire-and-forget: the
144
+ // callback must not block the prover's teardown, and a throw in it must not mask the rejection.
145
+ try {
146
+ this.deps.onFailed?.(this);
147
+ } catch (err) {
148
+ this.deps.log.error(`Error in CheckpointProver onFailed callback for ${this.id}`, err);
149
+ }
122
150
  }
151
+ this.blockProofs.reject(err);
123
152
  }
124
153
  async gatherTxs() {
125
154
  const deadline = new Date(this.deps.dateProvider.now() + this.deps.txGatheringTimeoutMs);
@@ -141,6 +170,10 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
141
170
  const checkpointTimer = new Timer();
142
171
  let subTreeStarted = false;
143
172
  try {
173
+ // Test hook: force a sub-tree failure to exercise the checkpoint failure/upload path.
174
+ if (this.deps.checkpointProveOverride) {
175
+ await this.deps.checkpointProveOverride();
176
+ }
144
177
  for (const [hash, tx] of txs){
145
178
  this.txs.set(hash, tx);
146
179
  }
@@ -172,7 +205,7 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
172
205
  // Spans processing + proving (from executeCheckpoint start, after tx gathering) to proofs ready.
173
206
  this.deps.metrics.recordCheckpointProving(checkpointTimer.ms());
174
207
  this.blockProofs.resolve(result.blockProofOutputs);
175
- }, (err)=>this.blockProofs.reject(err));
208
+ }, (err)=>this.failBlockProofs(err instanceof Error ? err : new Error(String(err))));
176
209
  if (signal.aborted) {
177
210
  return;
178
211
  }
@@ -237,7 +270,7 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
237
270
  if (subTreeStarted) {
238
271
  await this.teardownSubTree();
239
272
  }
240
- this.blockProofs.reject(new Error(`Checkpoint ${this.id} did not complete block processing`));
273
+ this.failBlockProofs(new Error(`Checkpoint ${this.id} did not complete block processing`));
241
274
  }
242
275
  }
243
276
  }
@@ -80,7 +80,11 @@ export type EpochSessionDeps = {
80
80
  * initialized → awaiting-checkpoints → awaiting-root → publishing-proof → completed
81
81
  *
82
82
  * Terminal states map the publishing outcome: `published` → `completed`, `superseded` →
83
- * `superseded`, `failed` → `failed`, `expired` → `timed-out`, `withdrawn` → `cancelled`.
83
+ * `superseded`, `expired` → `timed-out`, `withdrawn` → `cancelled`. A fault ends the attempt in one
84
+ * of two terminal states depending on its cause: `stopped` if a checkpoint prover under it failed
85
+ * (possibly a prune — the reconciler will rebuild over a fresh prover on re-add), or `failed` if the
86
+ * session's own top-tree/submit work failed while every prover was healthy (a genuine, non-prune
87
+ * failure the reconciler retains and uploads — see `hasFailed()`).
84
88
  * Additionally, the session-level deadline fires `cancel('deadline')` and transitions
85
89
  * to `timed-out` for the pre-submit window (top-tree proving) — the publishing service
86
90
  * handles the post-submit window via the candidate's `deadline`.
@@ -117,6 +121,14 @@ export declare class EpochSession implements Traceable {
117
121
  whenDone(): Promise<EpochProvingJobState>;
118
122
  /** True if the session is in a terminal state. */
119
123
  isTerminal(): boolean;
124
+ /**
125
+ * True if the session ended in its own genuine failure — top-tree proving or L1 submission failed
126
+ * while every checkpoint prover succeeded. Because healthy provers rule out a prune-induced fault,
127
+ * this is a race-free "the epoch could not be proven" signal: the reconciler retains such a (full)
128
+ * session rather than re-proving it, and uploads a post-mortem. A `stopped` session (a checkpoint
129
+ * prover failed under it) is NOT a session failure in this sense.
130
+ */
131
+ hasFailed(): boolean;
120
132
  /** First block this session proves. */
121
133
  getStartBlockNumber(): BlockNumber;
122
134
  /** Last block this session proves. */
@@ -145,4 +157,4 @@ export declare class EpochSession implements Traceable {
145
157
  protected handleDeadline(): Promise<void>;
146
158
  private toTopTreeHooks;
147
159
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtc2Vzc2lvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pvYi9lcG9jaC1zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQXlCLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEgsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBUyxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQWdDLE1BQU0saUNBQWlDLENBQUM7QUFDMUcsT0FBTyxFQUFjLEtBQUssU0FBUyxFQUFFLEtBQUssTUFBTSxFQUFhLE1BQU0seUJBQXlCLENBQUM7QUFJN0YsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQW9DLEtBQUssWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEYsWUFBWSxFQUFFLG9CQUFvQixFQUFFLENBQUM7QUFFckMsd0ZBQXNGO0FBQ3RGLE1BQU0sTUFBTSxXQUFXLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQztBQUU3Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxXQUFXLFdBQVc7SUFDMUIsSUFBSSxFQUFFLFdBQVcsQ0FBQztJQUNsQixXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUM7SUFDckIsTUFBTSxFQUFFLFVBQVUsQ0FBQztDQUNwQjtBQUVELHlDQUF5QztBQUN6Qyx3QkFBZ0IsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLEdBQUcsTUFBTSxDQUVqRDtBQUVELHNGQUFzRjtBQUN0RixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsa0JBQWtCLENBQUMsRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEQsaUJBQWlCLENBQUMsRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDL0Msb0JBQW9CLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Q0FDN0YsQ0FBQztBQUVGLE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQzs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDOUIsQ0FBQztBQUVGLDREQUE0RDtBQUM1RCxNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsYUFBYSxFQUFFLGtCQUFrQixDQUFDO0lBQ2xDLFFBQVEsRUFBRSxVQUFVLENBQUM7SUFDckIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUN2RSxPQUFPLEVBQUUsb0JBQW9CLENBQUM7SUFDOUIsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQiw2RUFBNkU7SUFDN0UsUUFBUSxFQUFFLElBQUksR0FBRyxTQUFTLENBQUM7SUFDM0IsTUFBTSxFQUFFLG1CQUFtQixDQUFDO0lBQzVCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsQ0FBQztJQUMxQixLQUFLLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztDQUMzQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQkc7QUFDSCxxQkFBYSxZQUFhLFlBQVcsU0FBUztJQWtCMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO0lBRXJCLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSTtJQW5CdkIsU0FBZ0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBUztJQUM5QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBUztJQUM3QixPQUFPLENBQUMsS0FBSyxDQUF1QztJQUNwRCxPQUFPLENBQUMsc0JBQXNCLENBQTZCO0lBRTNELE9BQU8sQ0FBQyxVQUFVLENBQXlCO0lBQzNDLDBGQUEwRjtJQUMxRixPQUFPLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFvQjtJQUUzRCxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFnQztJQUNsRSxPQUFPLENBQUMsaUJBQWlCLENBQXlDO0lBRWxFLDBEQUEwRDtJQUMxRCxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBOEI7SUFFMUQsWUFDbUIsSUFBSSxFQUFFLFdBQVcsRUFDbEMsV0FBVyxFQUFFLFNBQVMsZ0JBQWdCLEVBQUUsRUFDdkIsSUFBSSxFQUFFLGdCQUFnQixFQXNCeEM7SUFFTSxLQUFLLElBQUksTUFBTSxDQUVyQjtJQUVNLE9BQU8sSUFBSSxXQUFXLENBRTVCO0lBRU0sUUFBUSxJQUFJLG9CQUFvQixDQUV0QztJQUVNLGNBQWMsSUFBSSxXQUFXLENBRW5DO0lBRU0sT0FBTyxJQUFJLFdBQVcsQ0FFNUI7SUFFTSxXQUFXLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FFckM7SUFFTSxjQUFjLElBQUksU0FBUyxnQkFBZ0IsRUFBRSxDQUVuRDtJQUVELDBEQUEwRDtJQUNuRCxRQUFRLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBRS9DO0lBRUQsa0RBQWtEO0lBQzNDLFVBQVUsSUFBSSxPQUFPLENBRTNCO0lBRUQsdUNBQXVDO0lBQ2hDLG1CQUFtQixJQUFJLFdBQVcsQ0FFeEM7SUFFRCxzQ0FBc0M7SUFDL0IsaUJBQWlCLElBQUksV0FBVyxDQUd0QztJQUVEOzs7T0FHRztJQUlVLEtBQUssSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FpQmxEO0lBRUQ7OztPQUdHO0lBQ1UsTUFBTSxDQUFDLE1BQU0sU0FBYyxFQUFFLEVBQUUsU0FBZ0IsRUFBRSxHQUFFO1FBQUUsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBMEIzRztZQUVhLEdBQUc7WUFpREgsV0FBVztZQXlFWCx1QkFBdUI7SUFhckMsT0FBTyxDQUFDLG9CQUFvQjtJQVc1Qjs7OztPQUlHO0lBQ0gsVUFBZ0IsY0FBYyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FVOUM7SUFFRCxPQUFPLENBQUMsY0FBYztDQWdCdkIifQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtc2Vzc2lvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pvYi9lcG9jaC1zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQXlCLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEgsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBUyxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQWdDLE1BQU0saUNBQWlDLENBQUM7QUFDMUcsT0FBTyxFQUFjLEtBQUssU0FBUyxFQUFFLEtBQUssTUFBTSxFQUFhLE1BQU0seUJBQXlCLENBQUM7QUFJN0YsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQW9DLEtBQUssWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEYsWUFBWSxFQUFFLG9CQUFvQixFQUFFLENBQUM7QUFFckMsd0ZBQXNGO0FBQ3RGLE1BQU0sTUFBTSxXQUFXLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQztBQUU3Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxXQUFXLFdBQVc7SUFDMUIsSUFBSSxFQUFFLFdBQVcsQ0FBQztJQUNsQixXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxV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
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-session.d.ts","sourceRoot":"","sources":["../../src/job/epoch-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epoch-session.d.ts","sourceRoot":"","sources":["../../src/job/epoch-session.ts"],"names":[],"mappings":"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"}
@@ -410,7 +410,11 @@ _dec = trackSpan('EpochSession.start', function() {
410
410
  * initialized → awaiting-checkpoints → awaiting-root → publishing-proof → completed
411
411
  *
412
412
  * Terminal states map the publishing outcome: `published` → `completed`, `superseded` →
413
- * `superseded`, `failed` → `failed`, `expired` → `timed-out`, `withdrawn` → `cancelled`.
413
+ * `superseded`, `expired` → `timed-out`, `withdrawn` → `cancelled`. A fault ends the attempt in one
414
+ * of two terminal states depending on its cause: `stopped` if a checkpoint prover under it failed
415
+ * (possibly a prune — the reconciler will rebuild over a fresh prover on re-add), or `failed` if the
416
+ * session's own top-tree/submit work failed while every prover was healthy (a genuine, non-prune
417
+ * failure the reconciler retains and uploads — see `hasFailed()`).
414
418
  * Additionally, the session-level deadline fires `cancel('deadline')` and transitions
415
419
  * to `timed-out` for the pre-submit window (top-tree proving) — the publishing service
416
420
  * handles the post-submit window via the candidate's `deadline`.
@@ -496,6 +500,15 @@ _dec = trackSpan('EpochSession.start', function() {
496
500
  /** True if the session is in a terminal state. */ isTerminal() {
497
501
  return EpochProvingJobTerminalState.includes(this.state);
498
502
  }
503
+ /**
504
+ * True if the session ended in its own genuine failure — top-tree proving or L1 submission failed
505
+ * while every checkpoint prover succeeded. Because healthy provers rule out a prune-induced fault,
506
+ * this is a race-free "the epoch could not be proven" signal: the reconciler retains such a (full)
507
+ * session rather than re-proving it, and uploads a post-mortem. A `stopped` session (a checkpoint
508
+ * prover failed under it) is NOT a session failure in this sense.
509
+ */ hasFailed() {
510
+ return this.state === 'failed';
511
+ }
499
512
  /** First block this session proves. */ getStartBlockNumber() {
500
513
  return BlockNumber(this.checkpoints[0].checkpoint.blocks[0].number);
501
514
  }
@@ -514,8 +527,17 @@ _dec = trackSpan('EpochSession.start', function() {
514
527
  uuid: this.uuid,
515
528
  ...this.spec
516
529
  });
530
+ // Distinguish the two ways an attempt can fault:
531
+ // - a checkpoint prover in the set has failed OR was cancelled (a sub-tree fault, a prune-induced
532
+ // fork fault, or a control-plane cancel that reached this catch before the reconcile marked the
533
+ // session 'cancelled'): end in the non-declaring terminal 'stopped'. This is not the session's own
534
+ // failure and may be a prune, so the reconciler does not upload it; a re-add installs a fresh prover.
535
+ // - no prover failed or was cancelled, yet top-tree proving or L1 submission failed: this is the
536
+ // session's own, genuine failure — and, because every prover is healthy and un-cancelled, it is
537
+ // definitively NOT a prune. End in terminal 'failed' so the reconciler retains it (no pointless
538
+ // re-prove) and uploads a race-free post-mortem.
517
539
  if (!this.isTerminal()) {
518
- this.state = 'failed';
540
+ this.state = this.checkpoints.some((c)=>c.isFailed() || c.isCancelled()) ? 'stopped' : 'failed';
519
541
  }
520
542
  } finally{
521
543
  clearTimeout(this.deadlineTimeoutHandler);
@@ -5,6 +5,7 @@ import { DateProvider } from '@aztec/foundation/timer';
5
5
  import type { EpochProverFactory } from '@aztec/prover-client';
6
6
  import { ChonkCache } from '@aztec/prover-client/orchestrator';
7
7
  import { type L2BlockSource, type L2BlockStreamEvent, type L2BlockStreamEventHandler } from '@aztec/stdlib/block';
8
+ import type { Checkpoint } from '@aztec/stdlib/checkpoint';
8
9
  import type { ChainConfig } from '@aztec/stdlib/config';
9
10
  import type { ContractDataSource } from '@aztec/stdlib/contract';
10
11
  import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
@@ -14,7 +15,8 @@ import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
14
15
  import { L1Metrics, type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
15
16
  import { CheckpointStore } from './checkpoint-store.js';
16
17
  import type { SpecificProverNodeConfig } from './config.js';
17
- import type { EpochSession, EpochSessionHooks } from './job/epoch-session.js';
18
+ import type { CheckpointProver, CheckpointProverTestHooks } from './job/checkpoint-prover.js';
19
+ import type { EpochSessionHooks } from './job/epoch-session.js';
18
20
  import { ProofPublishingService } from './proof-publishing-service.js';
19
21
  import type { ProverPublisherFactory } from './prover-publisher-factory.js';
20
22
  import { SessionManager } from './session-manager.js';
@@ -112,9 +114,10 @@ export declare class ProverNode implements L2BlockStreamEventHandler, ProverNode
112
114
  start(): Promise<void>;
113
115
  stop(): Promise<void>;
114
116
  /**
115
- * Constructs the session manager. Extracted so subclasses (test harness) can swap
116
- * the implementation. Wired to `tryUploadSessionFailure` so failed sessions get
117
- * their proving data uploaded.
117
+ * Constructs the session manager. Extracted so subclasses (test harness) can swap the
118
+ * implementation. Wired to upload a post-mortem when a full session ends in its own genuine failure
119
+ * (`EpochSession.hasFailed()` top-tree/submit failed with every prover healthy, so definitively not
120
+ * a prune). A `stopped` session (a prover under it failed) is not uploaded; it recovers on re-add.
118
121
  */
119
122
  protected createSessionManager(publishingService: ProofPublishingService): SessionManager;
120
123
  /**
@@ -123,8 +126,32 @@ export declare class ProverNode implements L2BlockStreamEventHandler, ProverNode
123
126
  * Applies to every session constructed after this call.
124
127
  */
125
128
  setSessionHooks(hooks: EpochSessionHooks): void;
126
- /** Uploads failure snapshots when sessions exit with `failed`. Exposed as a method so tests can spy on it. */
127
- tryUploadSessionFailure(session: EpochSession): Promise<string | undefined>;
129
+ /**
130
+ * Installs checkpoint-prover test hooks (e.g. forcing a sub-tree failure) applied to every
131
+ * CheckpointProver constructed after this call. For the e2e harness only.
132
+ */
133
+ setCheckpointHooks(hooks: CheckpointProverTestHooks): void;
134
+ /**
135
+ * Uploads a post-mortem snapshot for an epoch whose full session failed to prove, built from that
136
+ * session's checkpoint provers. Fired from the session manager's `onSessionFailed` callback (a
137
+ * genuine, race-free failure). Exposed as a method so tests can spy on it. No-ops if no failed-epoch
138
+ * store is configured or the checkpoint set is empty.
139
+ */
140
+ tryUploadEpochFailure(id: string, checkpoints: readonly CheckpointProver[]): Promise<string | undefined>;
141
+ /**
142
+ * Uploads a post-mortem for a single failed checkpoint prover, built from just that checkpoint's
143
+ * proving data. Fired (fire-and-forget) from the store's `onFailed` callback for any non-cancel
144
+ * block-proof failure — a genuine sub-tree fault or a prune-induced fork fault alike. No-ops if no
145
+ * failed-epoch store is configured, or if the checkpoint is no longer canonical (a prune left nothing
146
+ * to diagnose). Swallows its own errors so a fire-and-forget caller can't leak.
147
+ */
148
+ tryUploadCheckpointFailure(prover: CheckpointProver): Promise<string | undefined>;
149
+ /**
150
+ * True if the checkpoint still exists on the canonical chain: the archiver holds a block at its last
151
+ * block's height whose archive root matches. A prune (fork fault) leaves the block missing or replaced,
152
+ * so this returns false. Protected for direct unit-test access.
153
+ */
154
+ protected isCheckpointCanonical(checkpoint: Checkpoint): Promise<boolean>;
128
155
  private getL1Constants;
129
156
  /**
130
157
  * Returns true if every block in the given epoch is proven on L1. An epoch is only
@@ -152,4 +179,4 @@ export declare class ProverNode implements L2BlockStreamEventHandler, ProverNode
152
179
  private validateConfig;
153
180
  }
154
181
  export { EpochProvingJobTerminalState };
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92ZXItbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSzdGLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUdMLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHlCQUF5QixFQUUvQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQW1ELE1BQU0sNkJBQTZCLENBQUM7QUFDdEgsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssb0JBQW9CLEVBQ3pCLDRCQUE0QixFQUM1QixLQUFLLFdBQVcsRUFDaEIsS0FBSyxhQUFhLEVBQ2xCLEtBQUssT0FBTyxFQUNaLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFP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
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92ZXItbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSzdGLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUdMLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHlCQUF5QixFQUUvQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBdUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUFtRCxNQUFNLDZCQUE2QixDQUFDO0FBQ3RILE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixLQUFLLG9CQUFvQixFQUN6Qiw0QkFBNEIsRUFDNUIsS0FBSyxXQUFXLEVBQ2hCLEtBQUssYUFBYSxFQUNsQixLQUFLLE9BQU8sRUFDWixLQUFLLHNCQUFzQixFQUU1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8s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
@@ -1 +1 @@
1
- {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
@@ -494,7 +494,10 @@ import { SessionManager } from './session-manager.js';
494
494
  proverId: this.prover.getProverId(),
495
495
  metrics: this.jobMetrics,
496
496
  txGatheringTimeoutMs: this.config.txGatheringTimeoutMs,
497
- deadline: undefined
497
+ deadline: undefined,
498
+ // A checkpoint prover that fails (a sub-tree fault or a prune-induced fork fault) uploads a
499
+ // post-mortem for its own checkpoint, independently of any session. Fire-and-forget.
500
+ onFailed: (prover)=>void this.tryUploadCheckpointFailure(prover)
498
501
  }, this.log.getBindings());
499
502
  }
500
503
  getProverId() {
@@ -549,11 +552,9 @@ import { SessionManager } from './session-manager.js';
549
552
  break;
550
553
  }
551
554
  }
552
- // Expiry is driven by the archiver's latest synced L2 slot
553
- await this.checkEpochExpiry();
554
- // Advance the local tips store only after the proving-side handling has succeeded. Any
555
- // failure above propagates to the L2BlockStream (which logs and stops this poll pass) and
556
- // skips this update, so the event is re-emitted on the next poll rather than skipped (A-1041).
555
+ // Advance the local tips store only after the proving-side handling (registration / prune) has
556
+ // succeeded. Any failure above propagates to the L2BlockStream (which logs and stops this poll
557
+ // pass) and skips this update, so the event is re-emitted on the next poll rather than skipped
557
558
  await this.tipsStore.handleBlockStreamEvent(event);
558
559
  }
559
560
  /**
@@ -740,8 +741,8 @@ import { SessionManager } from './session-manager.js';
740
741
  this.lastExpiredEpoch = newlyExpiredUpTo;
741
742
  }
742
743
  /**
743
- * Releases chonk-cache entries for every block in the supplied epoch (best-effort) and
744
- * reaps every CheckpointProver in the store whose epoch number matches.
744
+ * Releases chonk-cache entries for every block in the supplied epoch (best-effort) and reaps every
745
+ * CheckpointProver in the store whose epoch is at or below it.
745
746
  */ async expireEpoch(epoch) {
746
747
  try {
747
748
  const blocks = await this.l2BlockSource.getBlocks({
@@ -793,8 +794,9 @@ import { SessionManager } from './session-manager.js';
793
794
  tipsOnly: true
794
795
  });
795
796
  this.blockStream.start();
796
- // With thin once-per-pass tip events, the expiry sweep no longer fires once per checkpoint; drive it
797
- // from a periodic tick so epochs still expire during idle/no-event periods.
797
+ // The periodic ticker is the sole driver of the expiry sweep: it fires every poll interval whether
798
+ // or not block-stream events arrive, and RunningPromise never overlaps its own runs, so the sweep's
799
+ // `lastExpiredEpoch` high-water mark advances — and each epoch's post-mortem uploads — exactly once.
798
800
  this.expiryTicker = new RunningPromise(()=>this.checkEpochExpiry(), this.log, this.config.proverNodePollingIntervalMs);
799
801
  this.expiryTicker.start();
800
802
  await this.rewardsMetrics.start();
@@ -826,9 +828,10 @@ import { SessionManager } from './session-manager.js';
826
828
  this.log.info('Stopped ProverNode');
827
829
  }
828
830
  /**
829
- * Constructs the session manager. Extracted so subclasses (test harness) can swap
830
- * the implementation. Wired to `tryUploadSessionFailure` so failed sessions get
831
- * their proving data uploaded.
831
+ * Constructs the session manager. Extracted so subclasses (test harness) can swap the
832
+ * implementation. Wired to upload a post-mortem when a full session ends in its own genuine failure
833
+ * (`EpochSession.hasFailed()` top-tree/submit failed with every prover healthy, so definitively not
834
+ * a prune). A `stopped` session (a prover under it failed) is not uploaded; it recovers on re-add.
832
835
  */ createSessionManager(publishingService) {
833
836
  return new SessionManager({
834
837
  checkpointStore: this.checkpointStore,
@@ -844,7 +847,7 @@ import { SessionManager } from './session-manager.js';
844
847
  finalizationDelayMs: this.config.proverNodeEpochProvingDelayMs
845
848
  },
846
849
  onSessionFailed: async (session)=>{
847
- await this.tryUploadSessionFailure(session);
850
+ await this.tryUploadEpochFailure(session.getId(), session.getCheckpoints());
848
851
  },
849
852
  bindings: this.log.getBindings()
850
853
  });
@@ -859,14 +862,72 @@ import { SessionManager } from './session-manager.js';
859
862
  }
860
863
  this.sessionManager.setSessionHooks(hooks);
861
864
  }
862
- /** Uploads failure snapshots when sessions exit with `failed`. Exposed as a method so tests can spy on it. */ async tryUploadSessionFailure(session) {
865
+ /**
866
+ * Installs checkpoint-prover test hooks (e.g. forcing a sub-tree failure) applied to every
867
+ * CheckpointProver constructed after this call. For the e2e harness only.
868
+ */ setCheckpointHooks(hooks) {
869
+ this.checkpointStore.setTestHooks(hooks);
870
+ }
871
+ /**
872
+ * Uploads a post-mortem snapshot for an epoch whose full session failed to prove, built from that
873
+ * session's checkpoint provers. Fired from the session manager's `onSessionFailed` callback (a
874
+ * genuine, race-free failure). Exposed as a method so tests can spy on it. No-ops if no failed-epoch
875
+ * store is configured or the checkpoint set is empty.
876
+ */ async tryUploadEpochFailure(id, checkpoints) {
877
+ if (!this.config.proverNodeFailedEpochStore || checkpoints.length === 0) {
878
+ return undefined;
879
+ }
880
+ const data = SessionManager.buildProvingData(checkpoints);
881
+ return await uploadEpochProofFailure(this.config.proverNodeFailedEpochStore, // The session's own id; `uploadEpochProofFailure` already prefixes the path with the epoch number.
882
+ id, data, this.l2BlockSource, this.worldState, assertRequired(pick(this.config, 'l1ChainId', 'rollupVersion', 'dataDirectory')), this.log);
883
+ }
884
+ /**
885
+ * Uploads a post-mortem for a single failed checkpoint prover, built from just that checkpoint's
886
+ * proving data. Fired (fire-and-forget) from the store's `onFailed` callback for any non-cancel
887
+ * block-proof failure — a genuine sub-tree fault or a prune-induced fork fault alike. No-ops if no
888
+ * failed-epoch store is configured, or if the checkpoint is no longer canonical (a prune left nothing
889
+ * to diagnose). Swallows its own errors so a fire-and-forget caller can't leak.
890
+ */ async tryUploadCheckpointFailure(prover) {
863
891
  if (!this.config.proverNodeFailedEpochStore) {
864
892
  return undefined;
865
893
  }
866
- const data = SessionManager.buildSessionProvingData(session);
867
- return await uploadEpochProofFailure(this.config.proverNodeFailedEpochStore, session.getId(), data, this.l2BlockSource, this.worldState, assertRequired(pick(this.config, 'l1ChainId', 'rollupVersion', 'dataDirectory')), this.log);
894
+ try {
895
+ // A prune-induced fork fault and a genuine sub-tree failure are indistinguishable at the moment the
896
+ // prover rejects (no control-plane cancel has landed yet). But the archiver is the authoritative
897
+ // committed chain: if this checkpoint was pruned out, its last block is no longer canonical there.
898
+ // Only upload for a checkpoint that still exists on-chain — a prune leaves nothing to diagnose, and
899
+ // the snapshot (full world-state + archiver) is expensive to produce and store.
900
+ if (!await this.isCheckpointCanonical(prover.checkpoint)) {
901
+ this.log.debug(`Skipping checkpoint-failure upload for ${prover.id}: no longer canonical (pruned)`, {
902
+ checkpointNumber: prover.checkpoint.number
903
+ });
904
+ return undefined;
905
+ }
906
+ const data = SessionManager.buildProvingData([
907
+ prover
908
+ ]);
909
+ return await uploadEpochProofFailure(this.config.proverNodeFailedEpochStore, // The prover's content-addressed id; the epoch number is already in the upload path.
910
+ prover.id, data, this.l2BlockSource, this.worldState, assertRequired(pick(this.config, 'l1ChainId', 'rollupVersion', 'dataDirectory')), this.log);
911
+ } catch (err) {
912
+ this.log.error(`Error uploading checkpoint failure for ${prover.id}`, err);
913
+ return undefined;
914
+ }
868
915
  }
869
916
  // ---------------- helpers ----------------
917
+ /**
918
+ * True if the checkpoint still exists on the canonical chain: the archiver holds a block at its last
919
+ * block's height whose archive root matches. A prune (fork fault) leaves the block missing or replaced,
920
+ * so this returns false. Protected for direct unit-test access.
921
+ */ async isCheckpointCanonical(checkpoint) {
922
+ const lastBlock = checkpoint.blocks.at(-1);
923
+ if (!lastBlock) {
924
+ return false;
925
+ }
926
+ const onChain = await this.l2BlockSource.getBlock({
927
+ number: lastBlock.number
928
+ });
929
+ return !!onChain && onChain.archive.root.equals(checkpoint.archive.root);
930
+ }
870
931
  getL1Constants() {
871
932
  return this.l2BlockSource.getL1Constants();
872
933
  }
@@ -43,8 +43,9 @@ export type SessionManagerDeps = {
43
43
  dateProvider: DateProvider;
44
44
  config: SessionManagerConfig;
45
45
  /**
46
- * Optional callback fired when a session terminates with `failed`. The session manager
47
- * doesn't own the failure-upload action; it just notifies the owner.
46
+ * Fired once when a full session ends in its own genuine failure (`EpochSession.hasFailed()` top-tree
47
+ * or submit failed with every prover healthy). The owner uploads a post-mortem here. Not fired for a
48
+ * `stopped` session (a prover under it failed — possibly a prune), which is recovered on re-add instead.
48
49
  */
49
50
  onSessionFailed?: (session: EpochSession) => Promise<void>;
50
51
  bindings?: LoggerBindings;
@@ -71,15 +72,6 @@ export declare class SessionManager {
71
72
  private readonly reconcileQueue;
72
73
  /** Cached L1 constants, populated on first read. */
73
74
  private cachedL1Constants;
74
- /**
75
- * Highest epoch for which the periodic tick has successfully created a full session.
76
- * Monotonic high-water mark: once the tick observes a session for epoch X, it stops
77
- * trying to open one — even if that session subsequently fails (only a new checkpoint
78
- * event reopens it). Crucially, the mark only advances when a session actually exists
79
- * post-open, so transient blockers (atMaxSessionLimit, archiver still indexing) leave
80
- * the mark in place and the next tick retries.
81
- */
82
- private lastTickEpoch;
83
75
  /** Test-only hooks applied to every session this manager constructs. */
84
76
  private sessionHooks;
85
77
  /** Periodic tick that nudges reconcile to pick up newly-complete epochs. Started by `start()`. */
@@ -131,6 +123,8 @@ export declare class SessionManager {
131
123
  private scheduleReconcile;
132
124
  private reconcile;
133
125
  private recreateInvalidSessions;
126
+ /** A session may be built over a checkpoint set only when it is non-empty and contains no failed prover. */
127
+ private canBuildOver;
134
128
  private openFullSessionIfReady;
135
129
  private openPartialSession;
136
130
  protected constructSession(spec: SessionSpec, checkpoints: readonly CheckpointProver[]): EpochSession;
@@ -140,19 +134,25 @@ export declare class SessionManager {
140
134
  private computeDeadline;
141
135
  private runSession;
142
136
  /**
143
- * Builds the EpochProvingJobData snapshot for failure upload. Includes every checkpoint
144
- * referenced by the session, regardless of whether sub-tree proving completed —
145
- * partial state is still useful for post-mortem analysis.
137
+ * Builds the EpochProvingJobData snapshot for a post-mortem failure upload from a set of
138
+ * checkpoint provers. Includes every checkpoint regardless of whether sub-tree proving
139
+ * completed — partial state is still useful for post-mortem analysis.
146
140
  */
147
- static buildSessionProvingData(session: EpochSession): EpochProvingJobData;
141
+ static buildProvingData(checkpoints: readonly CheckpointProver[]): EpochProvingJobData;
148
142
  private atMaxSessionLimit;
149
143
  private epochsForTrigger;
150
144
  private nextUnprovenEpoch;
151
145
  private checkpointsForSpec;
146
+ /**
147
+ * True if any prover in the set has failed. The epoch cannot be proven over a failed prover (it can
148
+ * never produce its block proofs), so a session must not be built or rebuilt over it until a prune/re-add
149
+ * has replaced it with a fresh prover.
150
+ */
151
+ private hasFailedProver;
152
152
  private fireAndForgetCancel;
153
153
  private checkpointsMatch;
154
154
  private archiverFullyCovered;
155
155
  private isProvenChainEncompassing;
156
156
  private getL1Constants;
157
157
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2Vzc2lvbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUXpELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssaUJBQWlCLEVBRXRCLEtBQUssV0FBVyxFQUVqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sTUFBTSxnQkFBZ0IsR0FDeEI7SUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDO0lBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQTtDQUFFLEdBQzFD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
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2Vzc2lvbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUXpELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssaUJBQWlCLEVBRXRCLEtBQUssV0FBVyxFQUVqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sTUFBTSxnQkFBZ0IsR0FDeEI7SUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDO0lBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQTtDQUFFLEdBQzFD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
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}