@mikeargento/bitgraph-audit 0.7.0 → 0.9.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 (49) hide show
  1. package/README.md +4 -0
  2. package/dist/audit.d.ts +8 -6
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +28 -8
  5. package/dist/audit.js.map +1 -1
  6. package/dist/ceilings.d.ts +25 -0
  7. package/dist/ceilings.d.ts.map +1 -1
  8. package/dist/ceilings.js +159 -31
  9. package/dist/ceilings.js.map +1 -1
  10. package/dist/cli.js +40 -3
  11. package/dist/cli.js.map +1 -1
  12. package/dist/exports.d.ts +39 -0
  13. package/dist/exports.d.ts.map +1 -0
  14. package/dist/exports.js +371 -0
  15. package/dist/exports.js.map +1 -0
  16. package/dist/index.d.ts +5 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +4 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/ingest.d.ts.map +1 -1
  21. package/dist/ingest.js +179 -19
  22. package/dist/ingest.js.map +1 -1
  23. package/dist/report-json.d.ts.map +1 -1
  24. package/dist/report-json.js +15 -0
  25. package/dist/report-json.js.map +1 -1
  26. package/dist/report-md.d.ts.map +1 -1
  27. package/dist/report-md.js +225 -0
  28. package/dist/report-md.js.map +1 -1
  29. package/dist/settlement-blobs.d.ts +131 -0
  30. package/dist/settlement-blobs.d.ts.map +1 -0
  31. package/dist/settlement-blobs.js +682 -0
  32. package/dist/settlement-blobs.js.map +1 -0
  33. package/dist/types.d.ts +254 -3
  34. package/dist/types.d.ts.map +1 -1
  35. package/package.json +5 -3
  36. package/src/__tests__/fixtures/settlement/0x018efc046e94610e2530344caf1574e507a3182e1a975fb25b032ec1434a3f5c.bin +0 -0
  37. package/src/__tests__/fixtures/settlement/ceiling-51979918.json +101 -0
  38. package/src/__tests__/fixtures/settlement/pointer-51979918.json +69 -0
  39. package/src/__tests__/settlement.test.ts +254 -0
  40. package/src/audit.ts +30 -8
  41. package/src/ceilings.ts +167 -33
  42. package/src/cli.ts +39 -3
  43. package/src/exports.ts +478 -0
  44. package/src/index.ts +16 -0
  45. package/src/ingest.ts +192 -18
  46. package/src/report-json.ts +15 -0
  47. package/src/report-md.ts +248 -0
  48. package/src/settlement-blobs.ts +689 -0
  49. package/src/types.ts +234 -2
package/dist/report-md.js CHANGED
@@ -19,6 +19,7 @@
19
19
  * Long tables are capped at MAX_TABLE_ROWS rows with an explicit
20
20
  * remainder line; the JSON report always carries the complete data.
21
21
  */
22
+ import { exportRunClaims } from "./exports.js";
22
23
  import { buildJsonReport } from "./report-json.js";
23
24
  const MAX_TABLE_ROWS = 200;
24
25
  // ---------------------------------------------------------------------------
@@ -265,11 +266,36 @@ function executiveSummary(lines, report, proofByHash) {
265
266
  else {
266
267
  lines.push(`- ${c.status.toUpperCase()} ${inlineCode(c.path)}: ${c.reason ?? ""}`);
267
268
  }
269
+ // Settlement on Ethereum (bitgraph-settlement/1), one line per layer.
270
+ for (const line of c.settlement?.lines ?? [])
271
+ lines.push(` - ${line}`);
268
272
  }
269
273
  for (const st of cl.statuses)
270
274
  lines.push(`- ${st.status} ${inlineCode(st.path)}: ${st.note}`);
271
275
  lines.push("");
272
276
  }
277
+ // Exports (bitgraph-export/1), only when the bundle carries any.
278
+ const ex = report.exports;
279
+ if (ex && ex.checks.length > 0) {
280
+ lines.push("### Exports (bitgraph-export/1)");
281
+ lines.push("");
282
+ lines.push(`${withCommas(ex.checks.length)} export ${plural(ex.checks.length, "file was", "files were")} found. ` +
283
+ "An export is one JSON file that, with the file it covers, checks a tree/1 BitGraph on its own: " +
284
+ "the signed proof and its attestation, the tree's root document, the member's path or the owner's " +
285
+ "whole list, and the time evidence. Each was checked with verifyExport from bitgraph-verify, once " +
286
+ "for every file in this bundle it covers (matched by SHA-256 to a leaf's committed bytes or to its " +
287
+ "original), or once without a file when the bundle holds none. A claim the export does not carry, " +
288
+ "or one about a file that is not here, reads NOT_CARRIED and is never a failure. Any FALSE claim " +
289
+ "fails the audit (exit bit 1), as a bad proof does; the attestation claims count, because an export " +
290
+ "is checked as one self-contained object.");
291
+ lines.push("");
292
+ for (const e of ex.checks)
293
+ lines.push(`- ${exportSummaryLine(e)}`);
294
+ lines.push("");
295
+ lines.push("Each export's claims, the files it covers and its three time claims (the floor, the ceiling on " +
296
+ "Base, the ceiling on Ethereum, stated separately and never merged) are in the details below.");
297
+ lines.push("");
298
+ }
273
299
  // External time evidence.
274
300
  lines.push("### External time evidence");
275
301
  lines.push("");
@@ -401,6 +427,7 @@ function detailSections(lines, report, proofByHash) {
401
427
  anchorDetails(lines, report);
402
428
  witnessDetails(lines, report);
403
429
  temporalDetails(lines, report);
430
+ exportDetails(lines, report);
404
431
  attestationDetails(lines, report);
405
432
  unsupportedVersionDetails(lines, report);
406
433
  manifestDetails(lines, report);
@@ -661,6 +688,198 @@ function boundLine(bound) {
661
688
  `(block ${bound.blockNumber ?? "?"}, anchor ${inlineCode(bound.anchorProofHash)}, ` +
662
689
  `evidence: ${bound.evidence}${bound.weaker ? ", weaker" : ""}). ${bound.claim}`);
663
690
  }
691
+ // ---------------------------------------------------------------------------
692
+ // Exports (bitgraph-export/1)
693
+ // ---------------------------------------------------------------------------
694
+ /** One summary line for an export: its verdict, path, kind and covered files. */
695
+ function exportSummaryLine(e) {
696
+ if (e.status === "malformed") {
697
+ // It says bitgraph-export/1 and is not one: a failed check, not an unknown format.
698
+ return `FALSE ${inlineCode(e.path)}: malformed, ${e.reason ?? e.status}. Fails the audit (exit bit 1).`;
699
+ }
700
+ if (e.status !== "checked") {
701
+ return `NOT CHECKED ${inlineCode(e.path)}: ${e.reason ?? e.status}. Fails the audit (exit bit 1).`;
702
+ }
703
+ const withFile = e.runs.filter((r) => r.file !== null).length;
704
+ const covered = e.files.length === 0
705
+ ? "no covered file in this bundle (checked without one)"
706
+ : `${withCommas(e.files.length)} covered ${plural(e.files.length, "file", "files")} in this bundle` +
707
+ (withFile < e.files.length ? `, ${withCommas(withFile)} checked one by one` : "");
708
+ const failed = e.failedClaims.length > 0 ? ` FALSE claims: ${e.failedClaims.map(inlineCode).join(", ")}.` : "";
709
+ return `${e.verdict} ${inlineCode(e.path)}: ${exportKindPhrase(e)}; ${covered}.${failed}`;
710
+ }
711
+ function exportKindPhrase(e) {
712
+ const count = exportLeafCount(e);
713
+ const tree = count !== null ? ` of a tree of ${withCommas(count)} ${plural(count, "leaf", "leaves")}` : "";
714
+ if (e.kind === "member")
715
+ return `member export${tree}`;
716
+ if (e.kind === "owner")
717
+ return `the owner's export (the whole list)${tree}`;
718
+ return `an export with neither member evidence nor the owner's list${tree}`;
719
+ }
720
+ /** The tree size the export's runs established (from the member, else from tree.root's detail). */
721
+ function exportLeafCount(e) {
722
+ for (const r of e.runs)
723
+ if (r.member !== null)
724
+ return r.member.count;
725
+ for (const c of [...e.claims, ...e.runs.flatMap((r) => r.claims)]) {
726
+ const m = c.id === "tree.root" && c.result === "TRUE" ? /a tree of (\d+) leaves/.exec(c.detail) : null;
727
+ if (m)
728
+ return Number(m[1]);
729
+ }
730
+ return null;
731
+ }
732
+ function exportFileLabel(f) {
733
+ return f.paths.map(inlineCode).join(", ");
734
+ }
735
+ function exportDetails(lines, report) {
736
+ const ex = report.exports;
737
+ if (ex === undefined || ex.checks.length === 0)
738
+ return;
739
+ lines.push("### Exports (bitgraph-export/1)");
740
+ lines.push("");
741
+ lines.push("Each export below was checked with verifyExport from bitgraph-verify. Every claim is TRUE, FALSE, " +
742
+ "UNDETERMINED or NOT_CARRIED, with what it rests on, exactly as the verifier states it. Offline claims " +
743
+ "take block headers as the ones matching their hashes; whether each block is its chain's own is a " +
744
+ "confirmed claim, which this audit never looks up (it makes no network call), so those read " +
745
+ "UNDETERMINED (not checked). The proof inside an export is also in the proof analysis above under its " +
746
+ "canonical hash, where it counts as observed without artifact bytes: its artifact is the tree's " +
747
+ "84-byte root document, which travels inside the export and is checked here (claim tree.root).");
748
+ lines.push("");
749
+ for (const e of ex.checks)
750
+ exportDetail(lines, e);
751
+ }
752
+ function exportDetail(lines, e) {
753
+ lines.push(`#### Export ${inlineCode(e.path)}: ${e.status === "checked" ? e.verdict : e.status === "malformed" ? "FALSE (malformed)" : "NOT CHECKED"}`);
754
+ lines.push("");
755
+ if (e.status !== "checked") {
756
+ lines.push(`Rejected at ingest: ${e.reason ?? e.status}. The file is not checked and is never treated as an ` +
757
+ "artifact; it fails the audit (exit bit 1), as an unsupported proof version does.");
758
+ lines.push("");
759
+ return;
760
+ }
761
+ const facts = [`${exportKindPhrase(e).replace(/^./, (c) => c.toUpperCase())}.`];
762
+ if (e.proofHash !== undefined)
763
+ facts.push(`Proof ${inlineCode(e.proofHash)}.`);
764
+ if (e.failedClaims.length > 0)
765
+ facts.push(`FALSE claims: ${e.failedClaims.map(inlineCode).join(", ")}.`);
766
+ lines.push(facts.join(" "));
767
+ lines.push("");
768
+ // The files it covers.
769
+ if (e.files.length === 0) {
770
+ lines.push("No file in this bundle is covered by this export, so it was checked once without a file: the claims " +
771
+ "about the file read NOT_CARRIED, which is not a failure.");
772
+ lines.push("");
773
+ }
774
+ else {
775
+ lines.push("Covered files in this bundle (matched by SHA-256):");
776
+ lines.push("");
777
+ lines.push(...table(["File", "SHA-256", "Leaf", "Placement", "Matched as", "Name in the export (unsigned)"], e.files.slice(0, MAX_TABLE_ROWS).map((f) => [
778
+ exportFileLabel(f),
779
+ inlineCode(f.sha256Hex),
780
+ f.leafIndex !== null ? String(f.leafIndex) : "",
781
+ f.placement ?? "",
782
+ f.matchedAs === "committed-bytes" ? "committed bytes" : f.matchedAs === "original" ? "original" : "as is",
783
+ f.nameInExport ?? "",
784
+ ])));
785
+ if (e.files.length > MAX_TABLE_ROWS)
786
+ lines.push("", `${withCommas(e.files.length - MAX_TABLE_ROWS)} more in the JSON report.`);
787
+ lines.push("");
788
+ if (e.runMode === "member-from-list") {
789
+ lines.push("The owner's list was checked once (claim tree.leaves); each file's member evidence was then derived " +
790
+ "from it exactly as verifyExport derives it, and verifyExport ran once per file with that evidence.");
791
+ lines.push("");
792
+ }
793
+ }
794
+ for (const u of e.unchecked ?? [])
795
+ lines.push(`- ${exportFileLabel(u.file)}: ${u.reason}.`);
796
+ if ((e.unchecked ?? []).length > 0)
797
+ lines.push("");
798
+ // The three time claims, each on its own evidence, never merged.
799
+ const firstClaims = exportRunClaims(e, e.runs[0]);
800
+ const why = (id) => {
801
+ const c = firstClaims.find((x) => x.id === id);
802
+ return c ? `${inlineCode(id)} ${c.result}: ${c.detail}` : `${inlineCode(id)} was not reached`;
803
+ };
804
+ // Whether a block is its chain's own: the confirmed claim, which only an embedder's lookup answers.
805
+ const confirmedNote = (id, chain) => {
806
+ const c = firstClaims.find((x) => x.id === id);
807
+ if (c === undefined || c.result === "UNDETERMINED")
808
+ return ` Whether the block is ${chain}'s own is a confirmed claim, not looked up here.`;
809
+ return c.result === "TRUE"
810
+ ? ` The caller's own lookup confirms the block is ${chain}'s (${inlineCode(id)} TRUE).`
811
+ : ` The caller's own lookup says the block is NOT ${chain}'s (${inlineCode(id)} ${c.result}: ${c.detail}).`;
812
+ };
813
+ lines.push("Time claims, each on its own evidence and never merged:");
814
+ lines.push("");
815
+ const t = e.times;
816
+ lines.push(t.floor !== null
817
+ ? `- Floor: Ethereum block ${withCommas(t.floor.blockNumber)}, mined at ${formatTimestamp(t.floor.blockTimestamp)}, ` +
818
+ `hash ${inlineCode(t.floor.blockHash)}: the proof's signed floor block, its header checked by hash. ` +
819
+ "Every file in the tree was recorded after it (the record floor). Committed bytes that carry this position's " +
820
+ "commitment were also finished after it (the content floor); an original inside them, and a file recorded as is, " +
821
+ "are not dated by it. What the floor covers for each file is stated per run below." +
822
+ confirmedNote("confirmed.floor", "Ethereum")
823
+ : `- Floor: not established (${why("floor.header")}).`);
824
+ lines.push(t.ceilingBase !== null
825
+ ? `- Ceiling on Base: the record existed by Base block ${withCommas(t.ceilingBase.blockNumber)}, at ` +
826
+ `${formatTimestamp(t.ceilingBase.blockTimestamp)}, hash ${inlineCode(t.ceilingBase.blockHash)}. ` +
827
+ (!t.ceilingBase.provisional
828
+ ? "The caller's own lookup confirmed the block against Base, so the time is no longer provisional."
829
+ : firstClaims.some((x) => x.id === "confirmed.ceiling.base" && x.result === "FALSE")
830
+ ? `PROVISIONAL, and the caller's own lookup says the block is NOT Base's (${inlineCode("confirmed.ceiling.base")} FALSE).`
831
+ : "PROVISIONAL: this time holds once the block is checked against Base, which this offline audit does not do.")
832
+ : `- Ceiling on Base: not established (${why("ceiling.base")}).`);
833
+ lines.push(t.ceilingEthereum !== null
834
+ ? `- Ceiling on Ethereum: the record existed by Ethereum block ${withCommas(t.ceilingEthereum.blockNumber)}, at ` +
835
+ `${formatTimestamp(t.ceilingEthereum.blockTimestamp)}, hash ${inlineCode(t.ceilingEthereum.blockHash)}, ` +
836
+ "through Base's output root, whatever Base's claim turns out to be." +
837
+ confirmedNote("confirmed.ceiling.ethereum", "Ethereum")
838
+ : `- Ceiling on Ethereum: not established (${why("ceiling.ethereum")}).`);
839
+ lines.push("");
840
+ // Claims: the ones every run states alike once, then each run's own (the ones about its file).
841
+ lines.push(e.runs.length > 1 ? "Claims, the same in every run:" : "Claims:");
842
+ lines.push("");
843
+ lines.push(...table(["Claim", "Result", "Level", "Rests on", "Detail"], e.claims.map((c) => claimRow(c))));
844
+ lines.push("");
845
+ const perFile = [];
846
+ let perFileTotal = 0;
847
+ for (const r of e.runs) {
848
+ for (const c of r.claims) {
849
+ perFileTotal++;
850
+ if (perFile.length < MAX_TABLE_ROWS)
851
+ perFile.push([r.file !== null ? exportFileLabel(r.file) : "(no file)", ...claimRow(c)]);
852
+ }
853
+ }
854
+ if (perFileTotal > 0) {
855
+ lines.push("Claims that differ by file:");
856
+ lines.push("");
857
+ lines.push(...table(["File", "Claim", "Result", "Level", "Rests on", "Detail"], perFile));
858
+ if (perFileTotal > MAX_TABLE_ROWS)
859
+ lines.push("", `${withCommas(perFileTotal - MAX_TABLE_ROWS)} more rows in the JSON report.`);
860
+ lines.push("");
861
+ }
862
+ // Per run: the verdict, what the floor covers, and the verifier's own reading.
863
+ lines.push(e.runs.length > 1 ? "Runs:" : "Run:");
864
+ lines.push("");
865
+ for (const r of e.runs.slice(0, MAX_TABLE_ROWS))
866
+ lines.push(`- ${exportRunLine(r)}`);
867
+ if (e.runs.length > MAX_TABLE_ROWS)
868
+ lines.push(`- ${withCommas(e.runs.length - MAX_TABLE_ROWS)} more runs in the JSON report.`);
869
+ lines.push("");
870
+ }
871
+ function claimRow(c) {
872
+ return [inlineCode(c.id), c.result, c.level, c.restsOn, c.detail];
873
+ }
874
+ function exportRunLine(r) {
875
+ const who = r.file !== null ? exportFileLabel(r.file) : "Without a file";
876
+ const floor = r.floorCovers === "content"
877
+ ? " Recorded after the floor block, and its committed bytes were finished after it; an original inside them is not dated by it."
878
+ : r.floorCovers === "record"
879
+ ? " Recorded as is: recorded after the floor block; the bytes themselves are not dated."
880
+ : "";
881
+ return `${who}: ${r.verdict}.${floor} Reading: ${r.reading.length > 0 ? r.reading : "(none)"}`;
882
+ }
664
883
  function attestationDetails(lines, report) {
665
884
  lines.push("### Attestation breakdown");
666
885
  lines.push("");
@@ -841,6 +1060,12 @@ function codeMeaning(code) {
841
1060
  return "A validated attestation document's measurement does not equal the measurement the proof declares.";
842
1061
  case "attestation-user-data-mismatch":
843
1062
  return "A validated attestation document is not bound to the specific proof that carries it.";
1063
+ case "export-malformed":
1064
+ return "A file declares the bitgraph-export/1 format but lacks an export's structure (a proof and the tree's root document). It was not checked, and it fails the audit.";
1065
+ case "export-unsupported-format":
1066
+ return "A file declares a bitgraph-export format this audit does not support (only bitgraph-export/1). It was not checked, and it fails the audit.";
1067
+ case "export-too-large":
1068
+ return "A file opens an export but is larger than this audit reads for one export. It was not checked, and it fails the audit.";
844
1069
  default:
845
1070
  return "See the anomaly details section.";
846
1071
  }
@@ -1 +1 @@
1
- {"version":3,"file":"report-md.js","sourceRoot":"","sources":["../src/report-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-md.js","sourceRoot":"","sources":["../src/report-md.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ import { type SettlementPointer } from "@mikeargento/bitgraph-verify";
2
+ /** Base mainnet: block number = (timestamp - l2GenesisTime) / blockTime. */
3
+ export declare const BASE_MAINNET_ROLLUP: Readonly<{
4
+ l2GenesisTime: 1686789347;
5
+ blockTime: 2;
6
+ }>;
7
+ export declare const BLOB_BYTES = 131072;
8
+ /** OP Stack blob encoding version 0: (4 * 31 + 3) * 1024 - 4 bytes of data per blob. */
9
+ export declare const MAX_BLOB_DATA_BYTES = 130044;
10
+ export interface SettlementBlobsCheck {
11
+ name: string;
12
+ ok: boolean;
13
+ detail?: string;
14
+ }
15
+ export interface SettlementLocated {
16
+ /** The Base block the batch places the transaction in, read from the batch's timestamp. */
17
+ baseBlockNumber: number;
18
+ baseBlockTimestamp: number;
19
+ /** The batch's parent_hash (the hash of the block before), when the batch form carries one. */
20
+ baseParentHash: string | null;
21
+ /** Index in the batch's transaction_list: the block's non-deposit transactions, in order. */
22
+ baseTxIndex: number;
23
+ txHash: string;
24
+ /** The transaction's exact bytes as the batch carries them, 0x hex. */
25
+ rawTx: string;
26
+ /** Whether the batch holding the block was complete in the decoded bytes (false past the end of a frame prefix). */
27
+ batchComplete: boolean;
28
+ }
29
+ export interface SettlementBlobsResult {
30
+ ok: boolean;
31
+ reason?: string;
32
+ checks: SettlementBlobsCheck[];
33
+ /** What was decoded: frames 0..framesDecoded-1 of the channel, whole or as a prefix. */
34
+ channel?: {
35
+ id: string;
36
+ framesDecoded: number;
37
+ /** The channel's frame count when known (complete, or stated by the pointer). */
38
+ framesTotal: number | null;
39
+ complete: boolean;
40
+ compression: "brotli" | "zlib";
41
+ decodedBytes: number;
42
+ /** Base blocks whose batches were complete in the decoded bytes. */
43
+ baseBlocks: number[];
44
+ };
45
+ located?: SettlementLocated;
46
+ }
47
+ export interface SettlementBlobsOptions {
48
+ /** How the rollup turns a batch timestamp into a block number. Base mainnet by default. */
49
+ rollup?: {
50
+ l2GenesisTime: number;
51
+ blockTime: number;
52
+ };
53
+ /** The L2 chain id, for rebuilding transactions out of span batches. Base mainnet by default. */
54
+ chainId?: bigint;
55
+ /** What the ceiling record says, each matched against what the batch says when given. */
56
+ expect?: {
57
+ /** The ceiling transaction to locate (else the pointer's `located.txHash`). */
58
+ txHash?: string;
59
+ /** Its exact bytes, 0x hex. */
60
+ rawTx?: string;
61
+ /** The Base block's parent hash, from the ceiling's carried header. */
62
+ baseParentHash?: string;
63
+ };
64
+ }
65
+ /**
66
+ * The data a blob carries: 4 field elements per round, each a 6-bit byte
67
+ * and 31 data bytes, the first round's first element holding the version
68
+ * and a 24-bit length. Padding past the length must be zero. A field
69
+ * element with its top two bits set is not a blob this encoding produced.
70
+ */
71
+ export declare function decodeOpBlob(blob: Uint8Array): Uint8Array;
72
+ export interface ChannelFrame {
73
+ channelId: string;
74
+ frameNumber: number;
75
+ frameData: Uint8Array;
76
+ isLast: boolean;
77
+ }
78
+ /** Frames out of a blob's data: derivation version 0, then channel_id(16) frame_number(2) length(4) data is_last(1), repeated. */
79
+ export declare function parseFrames(data: Uint8Array): ChannelFrame[];
80
+ export declare function decompressChannel(data: Uint8Array, complete: boolean): {
81
+ compression: "brotli" | "zlib";
82
+ bytes: Uint8Array;
83
+ };
84
+ export interface BatchTx {
85
+ raw: Uint8Array;
86
+ hash: string;
87
+ }
88
+ export interface DecodedBatch {
89
+ /** 0 singular, 1 span. */
90
+ type: number;
91
+ /** Offset of the batch's RLP item in the decompressed channel. */
92
+ offset: number;
93
+ /** Base blocks in this batch. A cut singular batch has one block with the transactions read so far. */
94
+ blocks: Array<{
95
+ number: number;
96
+ timestamp: number;
97
+ parentHash: string | null;
98
+ txs: BatchTx[];
99
+ complete: boolean;
100
+ }>;
101
+ }
102
+ /**
103
+ * Batches out of a decompressed channel. Each is an RLP byte string
104
+ * `batch_version ++ content`. When `complete` is false the stream may be cut:
105
+ * the last batch is then read as far as it goes and marked incomplete.
106
+ */
107
+ export declare function decodeBatches(channel: Uint8Array, complete: boolean, rollup: {
108
+ l2GenesisTime: number;
109
+ blockTime: number;
110
+ }, chainId: bigint): DecodedBatch[];
111
+ /**
112
+ * A span batch (OP Stack Delta): prefix (rel_timestamp, l1_origin_num,
113
+ * parent_check, l1_origin_check) then payload (block_count, origin_bits,
114
+ * block_tx_counts, txs). Transactions are stored by column (signatures,
115
+ * recipients, data, nonces, gas limits, protected bits) and are rebuilt
116
+ * here into their raw form so they can be hashed.
117
+ */
118
+ export declare function decodeSpanBatch(data: Uint8Array, rollup: {
119
+ l2GenesisTime: number;
120
+ blockTime: number;
121
+ }, chainId: bigint): DecodedBatch["blocks"];
122
+ /**
123
+ * Verify blob bytes against a settlement pointer and locate the ceiling
124
+ * transaction inside them. `blobBytesByVersionedHash` holds the bytes the
125
+ * caller has (keyed by 0x hex versioned hash, any case); blobs the pointer
126
+ * lists without bytes are skipped, and the channel is decoded from the
127
+ * frames that are present, as a whole when they are all there and as a
128
+ * prefix otherwise. Every check runs in order; the first failure is `reason`.
129
+ */
130
+ export declare function verifySettlementBlobs(pointer: SettlementPointer, blobBytesByVersionedHash: ReadonlyMap<string, Uint8Array>, options?: SettlementBlobsOptions): Promise<SettlementBlobsResult>;
131
+ //# sourceMappingURL=settlement-blobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement-blobs.d.ts","sourceRoot":"","sources":["../src/settlement-blobs.ts"],"names":[],"mappings":"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"}