@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.
- package/README.md +4 -0
- package/dist/audit.d.ts +8 -6
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +28 -8
- package/dist/audit.js.map +1 -1
- package/dist/ceilings.d.ts +25 -0
- package/dist/ceilings.d.ts.map +1 -1
- package/dist/ceilings.js +159 -31
- package/dist/ceilings.js.map +1 -1
- package/dist/cli.js +40 -3
- package/dist/cli.js.map +1 -1
- package/dist/exports.d.ts +39 -0
- package/dist/exports.d.ts.map +1 -0
- package/dist/exports.js +371 -0
- package/dist/exports.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +179 -19
- package/dist/ingest.js.map +1 -1
- package/dist/report-json.d.ts.map +1 -1
- package/dist/report-json.js +15 -0
- package/dist/report-json.js.map +1 -1
- package/dist/report-md.d.ts.map +1 -1
- package/dist/report-md.js +225 -0
- package/dist/report-md.js.map +1 -1
- package/dist/settlement-blobs.d.ts +131 -0
- package/dist/settlement-blobs.d.ts.map +1 -0
- package/dist/settlement-blobs.js +682 -0
- package/dist/settlement-blobs.js.map +1 -0
- package/dist/types.d.ts +254 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/__tests__/fixtures/settlement/0x018efc046e94610e2530344caf1574e507a3182e1a975fb25b032ec1434a3f5c.bin +0 -0
- package/src/__tests__/fixtures/settlement/ceiling-51979918.json +101 -0
- package/src/__tests__/fixtures/settlement/pointer-51979918.json +69 -0
- package/src/__tests__/settlement.test.ts +254 -0
- package/src/audit.ts +30 -8
- package/src/ceilings.ts +167 -33
- package/src/cli.ts +39 -3
- package/src/exports.ts +478 -0
- package/src/index.ts +16 -0
- package/src/ingest.ts +192 -18
- package/src/report-json.ts +15 -0
- package/src/report-md.ts +248 -0
- package/src/settlement-blobs.ts +689 -0
- 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
|
}
|
package/dist/report-md.js.map
CHANGED
|
@@ -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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"}
|