@mikeargento/bitgraph-audit 0.8.0 → 0.10.0

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/README.md +8 -2
  2. package/dist/audit.d.ts +9 -6
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +34 -8
  5. package/dist/audit.js.map +1 -1
  6. package/dist/ceilings.d.ts.map +1 -1
  7. package/dist/ceilings.js +1 -0
  8. package/dist/ceilings.js.map +1 -1
  9. package/dist/cli.js +109 -21
  10. package/dist/cli.js.map +1 -1
  11. package/dist/exports.d.ts +39 -0
  12. package/dist/exports.d.ts.map +1 -0
  13. package/dist/exports.js +374 -0
  14. package/dist/exports.js.map +1 -0
  15. package/dist/floors.d.ts +23 -0
  16. package/dist/floors.d.ts.map +1 -0
  17. package/dist/floors.js +203 -0
  18. package/dist/floors.js.map +1 -0
  19. package/dist/index.d.ts +6 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +5 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/ingest.d.ts +2 -0
  24. package/dist/ingest.d.ts.map +1 -1
  25. package/dist/ingest.js +193 -19
  26. package/dist/ingest.js.map +1 -1
  27. package/dist/report-json.d.ts.map +1 -1
  28. package/dist/report-json.js +30 -0
  29. package/dist/report-json.js.map +1 -1
  30. package/dist/report-md.d.ts.map +1 -1
  31. package/dist/report-md.js +315 -25
  32. package/dist/report-md.js.map +1 -1
  33. package/dist/temporal.d.ts +12 -0
  34. package/dist/temporal.d.ts.map +1 -1
  35. package/dist/temporal.js +245 -41
  36. package/dist/temporal.js.map +1 -1
  37. package/dist/types.d.ts +348 -7
  38. package/dist/types.d.ts.map +1 -1
  39. package/package.json +3 -2
  40. package/src/__tests__/base-floor.test.ts +405 -0
  41. package/src/audit.ts +36 -8
  42. package/src/ceilings.ts +1 -0
  43. package/src/cli.ts +117 -22
  44. package/src/exports.ts +482 -0
  45. package/src/floors.ts +242 -0
  46. package/src/index.ts +20 -0
  47. package/src/ingest.ts +207 -18
  48. package/src/report-json.ts +30 -0
  49. package/src/report-md.ts +353 -29
  50. package/src/temporal.ts +279 -48
  51. package/src/types.ts +341 -6
package/dist/temporal.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // Copyright (c) 2024-2026 Argento Computing Inc. Licensed under the MIT License. See LICENSE.
2
2
  import { byCounterThenHash, parseCounter, pushMap } from "./validity.js";
3
+ import { baseFloorTimeSentence, readSignedFloors } from "./floors.js";
3
4
  // ---------------------------------------------------------------------------
4
5
  // Public API
5
6
  // ---------------------------------------------------------------------------
@@ -26,27 +27,68 @@ export function deriveTemporalBounds(ingest, reconstruction, identification, wit
26
27
  .map((a) => a.proofHash)
27
28
  .filter((h) => !evidence.has(h))
28
29
  .sort();
30
+ // Base floors the proofs sign (enclave v10). Empty for older bundles.
31
+ const floors = readSignedFloors(ingest);
29
32
  // Per-partition segments.
30
33
  const segments = [];
34
+ const anchorLower = new Map();
31
35
  for (const partition of reconstruction.partitions) {
32
- segments.push(...buildPartitionSegments(partition, byHash, evidence));
36
+ const built = buildPartitionSegments(partition, byHash, evidence, floors.bounds);
37
+ segments.push(...built.segments);
38
+ for (const [h, b] of built.anchorLower)
39
+ anchorLower.set(h, b);
33
40
  }
34
41
  // Epoch-level aggregation and cross-epoch ordering.
35
- const anchorOrderedPairs = aggregateEpochs(reconstruction, segments);
42
+ const anchorOrderedPairs = aggregateEpochs(reconstruction, segments, anchorLower);
36
43
  return {
37
44
  segments,
38
45
  anchorOrderedPairs,
39
46
  verifiedAnchorProofHashes,
40
47
  unverifiedAnchorProofHashes,
48
+ ...(floors.records.length > 0 ? { signedFloors: floors.records } : {}),
49
+ ...(floors.problems.length > 0 ? { floorProblems: floors.problems } : {}),
41
50
  };
42
51
  }
43
- function buildPartitionSegments(partition, byHash, evidence) {
52
+ /** Tie-break strength of bound evidence at an equal block time. */
53
+ const EVIDENCE_RANK = { "signed-floor": 2, "chain-link": 1, "counter-order": 0 };
54
+ /** Candidate key of a Base floor: kept apart from anchor keys (a proof hash). */
55
+ const FLOOR_KEY = "floor:";
56
+ function floorSource(f) {
57
+ return {
58
+ anchorProofHash: f.proofHash,
59
+ timestamp: f.timestamp,
60
+ blockHash: f.blockHash,
61
+ blockNumber: String(f.blockNumber),
62
+ floor: { timeSource: f.timeSource },
63
+ };
64
+ }
65
+ /** The tighter of two floors (later block time; at a tie, the lower proof hash, for determinism). */
66
+ function laterFloor(a, b) {
67
+ if (a === undefined)
68
+ return b;
69
+ if (b === undefined)
70
+ return a;
71
+ if (a.timestamp !== b.timestamp)
72
+ return a.timestamp > b.timestamp ? a : b;
73
+ return a.proofHash <= b.proofHash ? a : b;
74
+ }
75
+ function buildPartitionSegments(partition, byHash, anchorEvidence, floorBounds) {
44
76
  const members = partition.memberProofHashes.map((h) => byHash.get(h));
45
77
  // Keyed by CHAIN hash: this map is used only to resolve prevB64 pointers
46
78
  // (here and in collectAncestors), and prevB64 references the predecessor's
47
79
  // chain hash, not its identity hash.
48
80
  const memberSet = new Map(members.map((m) => [m.chainHash, m]));
49
- const anchors = members.filter((m) => evidence.has(m.proofHash));
81
+ const anchors = members.filter((m) => anchorEvidence.has(m.proofHash));
82
+ // Base floors signed in this partition. Floor sources join the evidence
83
+ // map under their own keys, so selection treats a floor exactly as it
84
+ // treats an anchor's not-before.
85
+ const floored = members.filter((m) => floorBounds.has(m.proofHash));
86
+ let evidence = anchorEvidence;
87
+ if (floored.length > 0) {
88
+ evidence = new Map(anchorEvidence);
89
+ for (const m of floored)
90
+ evidence.set(FLOOR_KEY + m.proofHash, floorSource(floorBounds.get(m.proofHash)));
91
+ }
50
92
  // Hash-link structure within the partition.
51
93
  const successors = new Map();
52
94
  for (const m of members) {
@@ -65,6 +107,58 @@ function buildPartitionSegments(partition, byHash, evidence) {
65
107
  chainAfter.set(anchor.proofHash, collectDescendants(anchor, successors));
66
108
  chainBefore.set(anchor.proofHash, collectAncestors(anchor, memberSet));
67
109
  }
110
+ // Base floors reach a member three ways: its own signed floor; the
111
+ // tightest floor among its hash-link ancestors (chain-link); the tightest
112
+ // floor signed at a lower commit counter (counter-order). Both inherited
113
+ // forms are computed in one pass each, never per pair.
114
+ const chainFloor = new Map();
115
+ const counterFloor = new Map();
116
+ if (floored.length > 0) {
117
+ const pred = (m) => {
118
+ if (m.prevB64 === undefined)
119
+ return undefined;
120
+ const p = memberSet.get(m.prevB64);
121
+ return p === undefined || p.proofHash === m.proofHash ? undefined : p;
122
+ };
123
+ for (const m of members) {
124
+ const path = [];
125
+ const seen = new Set();
126
+ let cur = m;
127
+ while (cur !== undefined && !chainFloor.has(cur.proofHash) && !seen.has(cur.proofHash)) {
128
+ seen.add(cur.proofHash);
129
+ path.push(cur);
130
+ cur = pred(cur);
131
+ }
132
+ let carry = cur !== undefined && chainFloor.has(cur.proofHash)
133
+ ? laterFloor(chainFloor.get(cur.proofHash), floorBounds.get(cur.proofHash))
134
+ : undefined;
135
+ for (let i = path.length - 1; i >= 0; i--) {
136
+ const node = path[i];
137
+ chainFloor.set(node.proofHash, carry);
138
+ carry = laterFloor(carry, floorBounds.get(node.proofHash));
139
+ }
140
+ }
141
+ const counted = members
142
+ .map((m) => ({ m, c: parseCounter(m.counter) }))
143
+ .filter((x) => x.c !== undefined)
144
+ .sort((a, b) => (a.c < b.c ? -1 : a.c > b.c ? 1 : 0));
145
+ let running;
146
+ for (let i = 0; i < counted.length;) {
147
+ let j = i;
148
+ while (j < counted.length && counted[j].c === counted[i].c)
149
+ j++;
150
+ let group;
151
+ for (let k = i; k < j; k++) {
152
+ const m = counted[k].m;
153
+ counterFloor.set(m.proofHash, running);
154
+ group = laterFloor(group, floorBounds.get(m.proofHash));
155
+ }
156
+ running = laterFloor(running, group);
157
+ i = j;
158
+ }
159
+ }
160
+ const mixed = floored.length > 0 && anchors.length > 0;
161
+ const anchorLower = new Map();
68
162
  // Candidate bounds per member.
69
163
  const memberBounds = members.map((member) => {
70
164
  const lowerCandidates = new Map();
@@ -99,6 +193,25 @@ function buildPartitionSegments(partition, byHash, evidence) {
99
193
  upperCandidates.set(anchorHash, "counter-order");
100
194
  }
101
195
  }
196
+ // A partition holding both anchors and floors keeps each member's
197
+ // anchor-only not-before apart, for the cross-epoch pairs.
198
+ if (mixed && lowerCandidates.size > 0) {
199
+ anchorLower.set(member.proofHash, selectBounds("not-before", lowerCandidates, evidence));
200
+ }
201
+ // Base floors: not-before only. Never an upper candidate.
202
+ if (floored.length > 0) {
203
+ const own = floorBounds.get(member.proofHash);
204
+ if (own !== undefined)
205
+ lowerCandidates.set(FLOOR_KEY + own.proofHash, "signed-floor");
206
+ const viaChain = chainFloor.get(member.proofHash);
207
+ if (viaChain !== undefined && !lowerCandidates.has(FLOOR_KEY + viaChain.proofHash)) {
208
+ lowerCandidates.set(FLOOR_KEY + viaChain.proofHash, "chain-link");
209
+ }
210
+ const viaCounter = counterFloor.get(member.proofHash);
211
+ if (viaCounter !== undefined && !lowerCandidates.has(FLOOR_KEY + viaCounter.proofHash)) {
212
+ lowerCandidates.set(FLOOR_KEY + viaCounter.proofHash, "counter-order");
213
+ }
214
+ }
102
215
  return {
103
216
  member,
104
217
  lower: selectBounds("not-before", lowerCandidates, evidence),
@@ -134,7 +247,7 @@ function buildPartitionSegments(partition, byHash, evidence) {
134
247
  });
135
248
  }
136
249
  segments.sort(compareSegments);
137
- return segments;
250
+ return { segments, anchorLower };
138
251
  }
139
252
  /**
140
253
  * Select the reported bounds from the candidate set: the tightest bound
@@ -158,9 +271,10 @@ function selectBounds(kind, candidates, evidence) {
158
271
  ? a.info.timestamp > b.info.timestamp
159
272
  : a.info.timestamp < b.info.timestamp;
160
273
  }
161
- // Tie: prefer chain-link evidence, then the lower anchor hash.
274
+ // Tie: prefer the proof's own signed floor, then chain-link evidence over
275
+ // counter order, then the lower key.
162
276
  if (a.evidenceKind !== b.evidenceKind)
163
- return a.evidenceKind === "chain-link";
277
+ return EVIDENCE_RANK[a.evidenceKind] > EVIDENCE_RANK[b.evidenceKind];
164
278
  return a.anchorHash < b.anchorHash;
165
279
  };
166
280
  let best;
@@ -168,19 +282,19 @@ function selectBounds(kind, candidates, evidence) {
168
282
  for (const entry of entries) {
169
283
  if (better(entry, best))
170
284
  best = entry;
171
- if (entry.evidenceKind === "chain-link" && better(entry, bestChain))
285
+ if (entry.evidenceKind !== "counter-order" && better(entry, bestChain))
172
286
  bestChain = entry;
173
287
  }
174
288
  const bounds = [makeBound(kind, best)];
175
- if (bestChain !== undefined &&
176
- (best.anchorHash !== bestChain.anchorHash ||
177
- best.evidenceKind !== "chain-link")) {
289
+ if (bestChain !== undefined && bestChain !== best) {
178
290
  bounds.push(makeBound(kind, bestChain));
179
291
  }
180
292
  return bounds;
181
293
  }
182
294
  function makeBound(kind, entry) {
183
295
  const { info, evidenceKind } = entry;
296
+ if (info.floor !== undefined)
297
+ return makeFloorBound(entry);
184
298
  const iso = new Date(info.timestamp * 1000).toISOString();
185
299
  const blockName = info.blockNumber !== undefined ? `Ethereum block ${info.blockNumber}` : "an Ethereum block";
186
300
  const evidenceSentence = evidenceKind === "chain-link"
@@ -213,8 +327,44 @@ function makeBound(kind, entry) {
213
327
  claim: kind === "not-before" ? claim : "NOT a proof-carried upper bound. " + claim,
214
328
  };
215
329
  }
330
+ /**
331
+ * A not-before from a Base floor (enclave v10). The proof that signs the
332
+ * floor block is named in anchorProofHash; source, chain and timeSource say
333
+ * what it is. Always evidence, never an assumption, and never a not-after.
334
+ */
335
+ function makeFloorBound(entry) {
336
+ const { info, evidenceKind } = entry;
337
+ const timeSource = info.floor.timeSource;
338
+ const iso = new Date(info.timestamp * 1000).toISOString();
339
+ const evidenceSentence = evidenceKind === "signed-floor"
340
+ ? "Evidence: the proof signs this block as its floor (commit.slotFloor)."
341
+ : evidenceKind === "chain-link"
342
+ ? "Evidence: a verified hash-link path connects these proofs to a proof that signs this block as its floor."
343
+ : "Evidence: commit-counter ordering within the partition only, after a proof that signs this block as its " +
344
+ "floor; this relies on the authority's counter discipline rather than verifiable hash links (weaker).";
345
+ const claim = `These proofs were committed no earlier than ${iso} (unix ${info.timestamp}), the time of Base block ` +
346
+ `${info.blockNumber}: the block hash was unpredictable before that time and the floor proof signs it. ` +
347
+ `${baseFloorTimeSentence(info.blockNumber, info.timestamp, timeSource)} Reading this as a wall-clock ` +
348
+ `floor additionally assumes the block is a genuine, publicly published Base block, which this offline audit ` +
349
+ `cannot confirm. A floor is never an upper bound on anything. ${evidenceSentence}`;
350
+ return {
351
+ kind: "not-before",
352
+ anchorProofHash: info.anchorProofHash,
353
+ source: "signed-floor",
354
+ chain: "base",
355
+ timeSource,
356
+ ...(info.blockNumber !== undefined ? { blockNumber: info.blockNumber } : {}),
357
+ blockHash: info.blockHash,
358
+ timestamp: info.timestamp,
359
+ evidence: evidenceKind,
360
+ weaker: evidenceKind === "counter-order",
361
+ basis: "block-hash-unpredictability",
362
+ boundClass: "evidence",
363
+ claim,
364
+ };
365
+ }
216
366
  function boundSetKey(mb) {
217
- const part = (bounds) => bounds.map((b) => `${b.anchorProofHash}:${b.evidence}`).join(",");
367
+ const part = (bounds) => bounds.map((b) => `${b.source === "signed-floor" ? FLOOR_KEY : ""}${b.anchorProofHash}:${b.evidence}`).join(",");
218
368
  return `${part(mb.lower)}|${part(mb.upper)}`;
219
369
  }
220
370
  function collectDescendants(anchor, successors) {
@@ -295,12 +445,57 @@ function weakerCaveat(weaker) {
295
445
  "path, which relies on the authority's counter discipline (weaker evidence)."
296
446
  : "";
297
447
  }
298
- function aggregateEpochs(reconstruction, segments) {
448
+ /** Fold one not-before bound into a coverage minimum, preferring stronger evidence at an equal time. */
449
+ function foldLower(current, bound) {
450
+ if (current === undefined ||
451
+ bound.timestamp < current.timestamp ||
452
+ (bound.timestamp === current.timestamp && current.weaker && !bound.weaker)) {
453
+ return {
454
+ timestamp: bound.timestamp,
455
+ anchorProofHash: bound.anchorProofHash,
456
+ blockHash: bound.blockHash,
457
+ ...(bound.blockNumber !== undefined ? { blockNumber: bound.blockNumber } : {}),
458
+ ...(bound.source === "signed-floor" ? { floor: true } : {}),
459
+ evidence: bound.evidence,
460
+ weaker: bound.weaker,
461
+ };
462
+ }
463
+ return current;
464
+ }
465
+ /** The epoch-level not-before claim, worded for what grounds it. Pure-anchor wording is unchanged. */
466
+ function lowerClaim(cov) {
467
+ const min = cov.lowerMin;
468
+ if (!cov.lowerFromFloors) {
469
+ return (`${cov.lowerCovered.size} of ${cov.totalProofCount} observed proofs of this epoch were ` +
470
+ `committed no earlier than unix ${min.timestamp}, grounded in block-hash ` +
471
+ `unpredictability through verified anchor witnesses. This additionally assumes the anchored ` +
472
+ `header is a genuine, publicly published Ethereum block, which this offline audit cannot ` +
473
+ `confirm.` +
474
+ weakerCaveat(min.weaker) +
475
+ ` The remaining proofs sit causally before the covering anchors and carry no lower bound ` +
476
+ `from this evidence.`);
477
+ }
478
+ const grounds = cov.lowerFromAnchors
479
+ ? "the Base blocks the proofs sign as their floors and verified Ethereum anchor witnesses"
480
+ : "the Base blocks the proofs sign as their floors";
481
+ const blocks = cov.lowerFromAnchors ? "Base or Ethereum block" : "Base block";
482
+ return (`${cov.lowerCovered.size} of ${cov.totalProofCount} observed proofs of this epoch were ` +
483
+ `committed no earlier than unix ${min.timestamp} (${min.floor ? `Base block ${min.blockNumber}` : `Ethereum block ${min.blockNumber ?? "(unnumbered)"}`}), ` +
484
+ `grounded in block-hash unpredictability through ${grounds}. This additionally assumes each ` +
485
+ `${blocks} is a genuine, publicly published one, which this offline audit cannot confirm.` +
486
+ weakerCaveat(min.weaker) +
487
+ ` The remaining proofs sign no Base floor and follow no covering floor or anchor; they carry no ` +
488
+ `lower bound from this evidence. A floor is a lower bound only: it orders no epoch.`);
489
+ }
490
+ function aggregateEpochs(reconstruction, segments, anchorLower) {
299
491
  const coverage = new Map();
300
492
  for (const epoch of reconstruction.epochRelationships.epochs) {
301
493
  coverage.set(epoch.epochId, {
302
494
  totalProofCount: epoch.proofCount,
303
495
  lowerCovered: new Set(),
496
+ lowerFromFloors: false,
497
+ lowerFromAnchors: false,
498
+ anchorLowerCovered: new Set(),
304
499
  upperCovered: new Set(),
305
500
  });
306
501
  }
@@ -319,17 +514,30 @@ function aggregateEpochs(reconstruction, segments) {
319
514
  for (const bound of segment.lowerBounds) {
320
515
  for (const h of segment.memberProofHashes)
321
516
  cov.lowerCovered.add(h);
322
- if (cov.lowerMin === undefined ||
323
- bound.timestamp < cov.lowerMin.timestamp ||
324
- (bound.timestamp === cov.lowerMin.timestamp && cov.lowerMin.weaker && !bound.weaker)) {
325
- cov.lowerMin = {
326
- timestamp: bound.timestamp,
327
- anchorProofHash: bound.anchorProofHash,
328
- blockHash: bound.blockHash,
329
- ...(bound.blockNumber !== undefined ? { blockNumber: bound.blockNumber } : {}),
330
- evidence: bound.evidence,
331
- weaker: bound.weaker,
332
- };
517
+ if (bound.source === "signed-floor")
518
+ cov.lowerFromFloors = true;
519
+ else
520
+ cov.lowerFromAnchors = true;
521
+ cov.lowerMin = foldLower(cov.lowerMin, bound);
522
+ }
523
+ // Anchor-only coverage, for the pairs. In a partition holding both
524
+ // anchors and floors a member's anchor bound may have been displaced
525
+ // from its segment by a tighter floor, so it is read per member there.
526
+ if (segment.memberProofHashes.some((h) => anchorLower.has(h))) {
527
+ for (const h of segment.memberProofHashes) {
528
+ for (const bound of anchorLower.get(h) ?? []) {
529
+ cov.anchorLowerCovered.add(h);
530
+ cov.anchorLowerMin = foldLower(cov.anchorLowerMin, bound);
531
+ }
532
+ }
533
+ }
534
+ else {
535
+ for (const bound of segment.lowerBounds) {
536
+ if (bound.source === "signed-floor")
537
+ continue;
538
+ for (const h of segment.memberProofHashes)
539
+ cov.anchorLowerCovered.add(h);
540
+ cov.anchorLowerMin = foldLower(cov.anchorLowerMin, bound);
333
541
  }
334
542
  }
335
543
  // Maximum timestamp for not-after, same chain-link tie preference.
@@ -358,6 +566,7 @@ function aggregateEpochs(reconstruction, segments) {
358
566
  bounds.push({
359
567
  kind: "not-before",
360
568
  anchorProofHash: cov.lowerMin.anchorProofHash,
569
+ ...(cov.lowerMin.floor ? { source: "signed-floor", chain: "base" } : {}),
361
570
  ...(cov.lowerMin.blockNumber !== undefined ? { blockNumber: cov.lowerMin.blockNumber } : {}),
362
571
  blockHash: cov.lowerMin.blockHash,
363
572
  witnessTimestamp: cov.lowerMin.timestamp,
@@ -367,14 +576,7 @@ function aggregateEpochs(reconstruction, segments) {
367
576
  basis: "block-hash-unpredictability",
368
577
  evidence: cov.lowerMin.evidence,
369
578
  weaker: cov.lowerMin.weaker,
370
- claim: `${cov.lowerCovered.size} of ${cov.totalProofCount} observed proofs of this epoch were ` +
371
- `committed no earlier than unix ${cov.lowerMin.timestamp}, grounded in block-hash ` +
372
- `unpredictability through verified anchor witnesses. This additionally assumes the anchored ` +
373
- `header is a genuine, publicly published Ethereum block, which this offline audit cannot ` +
374
- `confirm.` +
375
- weakerCaveat(cov.lowerMin.weaker) +
376
- ` The remaining proofs sit causally before the covering anchors and carry no lower bound ` +
377
- `from this evidence.`,
579
+ claim: lowerClaim(cov),
378
580
  });
379
581
  }
380
582
  if (cov.upperMax !== undefined) {
@@ -415,20 +617,22 @@ function aggregateEpochs(reconstruction, segments) {
415
617
  if (after.epochId === before.epochId)
416
618
  continue;
417
619
  const covB = coverage.get(after.epochId);
418
- if (covB.lowerMin === undefined)
620
+ // The after side is read from anchor bounds alone: floors order no epoch.
621
+ const lowerB = covB.anchorLowerMin;
622
+ if (lowerB === undefined)
419
623
  continue;
420
- if (covA.upperMax.timestamp >= covB.lowerMin.timestamp)
624
+ if (covA.upperMax.timestamp >= lowerB.timestamp)
421
625
  continue;
422
626
  const upperEvidence = covA.upperMax.evidence;
423
- const lowerEvidence = covB.lowerMin.evidence;
424
- const weaker = covA.upperMax.weaker || covB.lowerMin.weaker;
627
+ const lowerEvidence = lowerB.evidence;
628
+ const weaker = covA.upperMax.weaker || lowerB.weaker;
425
629
  pairs.push({
426
630
  beforeEpochId: before.epochId,
427
631
  afterEpochId: after.epochId,
428
632
  upperAnchorProofHash: covA.upperMax.anchorProofHash,
429
633
  upperBoundTimestamp: covA.upperMax.timestamp,
430
- lowerAnchorProofHash: covB.lowerMin.anchorProofHash,
431
- lowerBoundTimestamp: covB.lowerMin.timestamp,
634
+ lowerAnchorProofHash: lowerB.anchorProofHash,
635
+ lowerBoundTimestamp: lowerB.timestamp,
432
636
  basis: "anchor-bounds",
433
637
  assumptionDependent: true,
434
638
  upperEvidence,
@@ -436,14 +640,14 @@ function aggregateEpochs(reconstruction, segments) {
436
640
  weaker,
437
641
  beforeCoveredProofCount: covA.upperCovered.size,
438
642
  beforeTotalProofCount: covA.totalProofCount,
439
- afterCoveredProofCount: covB.lowerCovered.size,
643
+ afterCoveredProofCount: covB.anchorLowerCovered.size,
440
644
  afterTotalProofCount: covB.totalProofCount,
441
645
  note: `The anchor-covered portion of epoch ${before.epochId} ` +
442
646
  `(${covA.upperCovered.size} of ${covA.totalProofCount} proofs) precedes the ` +
443
647
  `anchor-covered portion of epoch ${after.epochId} ` +
444
- `(${covB.lowerCovered.size} of ${covB.totalProofCount} proofs): the first is bounded ` +
648
+ `(${covB.anchorLowerCovered.size} of ${covB.totalProofCount} proofs): the first is bounded ` +
445
649
  `not-after unix ${covA.upperMax.timestamp} and the second not-before unix ` +
446
- `${covB.lowerMin.timestamp}. One-sided evidence about the covered portions only; the ` +
650
+ `${lowerB.timestamp}. One-sided evidence about the covered portions only; the ` +
447
651
  `not-after side rests on the anchor-freshness assumption documented on its bound.` +
448
652
  (weaker
449
653
  ? ` At least one side rests on commit-counter ordering rather than a verified hash-link ` +
@@ -1 +1 @@
1
- {"version":3,"file":"temporal.js","sourceRoot":"","sources":["../src/temporal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"temporal.js","sourceRoot":"","sources":["../src/temporal.ts"],"names":[],"mappings":"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"}