@mikeargento/bitgraph 1.10.0 → 1.11.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/dist/export.d.ts +88 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +298 -0
- package/dist/export.js.map +1 -0
- package/dist/fuse.d.ts +136 -2
- package/dist/fuse.d.ts.map +1 -1
- package/dist/fuse.js +349 -2
- package/dist/fuse.js.map +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/recovery-write.d.ts +58 -0
- package/dist/recovery-write.d.ts.map +1 -0
- package/dist/recovery-write.js +265 -0
- package/dist/recovery-write.js.map +1 -0
- package/dist/recovery.d.ts +490 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +1124 -0
- package/dist/recovery.js.map +1 -0
- package/package.json +3 -3
- package/src/export.ts +365 -0
- package/src/fuse.ts +470 -3
- package/src/index.ts +28 -3
- package/src/recovery-write.ts +334 -0
- package/src/recovery.ts +1261 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mikeargento/bitgraph",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"description": "Portable proof that these exact bytes filled a position that existed before them.",
|
|
6
6
|
"keywords": [
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"test:integration": "npm run build --prefix server/commit-service && npm run test:core"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@mikeargento/bitgraph-verify": "^1.
|
|
46
|
+
"@mikeargento/bitgraph-verify": "^1.16.0",
|
|
47
47
|
"@noble/ed25519": "^2.1.0",
|
|
48
48
|
"@noble/hashes": "^1.4.0"
|
|
49
49
|
},
|
|
@@ -61,6 +61,6 @@
|
|
|
61
61
|
"packages/titles"
|
|
62
62
|
],
|
|
63
63
|
"bin": {
|
|
64
|
-
"bitgraph-fuse": "
|
|
64
|
+
"bitgraph-fuse": "dist/fuse-cli.js"
|
|
65
65
|
}
|
|
66
66
|
}
|
package/src/export.ts
ADDED
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
// Copyright (c) Argento Computing Inc. All rights reserved. See LICENSE.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* bitgraph-export/1 from the producer's side (2026-10-03): the JSON file
|
|
5
|
+
* that, with the file it is about, checks a tree/1 BitGraph with nothing of
|
|
6
|
+
* BitGraph's required. The verify package defines the format (buildExport,
|
|
7
|
+
* parseExport, verifyExport); this module builds one from what fuseTree
|
|
8
|
+
* returned and completes one later from public, read-only GETs.
|
|
9
|
+
*
|
|
10
|
+
* Two kinds, one format:
|
|
11
|
+
* a member's export tree.member: one leaf, its index and its path. It
|
|
12
|
+
* shows nothing of the other files but sibling hashes.
|
|
13
|
+
* the owner's export tree.leaves: every leaf (count x 65 bytes, base64)
|
|
14
|
+
* and tree.names beside them. Any member's evidence is
|
|
15
|
+
* rebuilt from it, and it lists every file, so it is
|
|
16
|
+
* the owner's to keep.
|
|
17
|
+
*
|
|
18
|
+
* At make time the floor header can be in hand (the site's witness route);
|
|
19
|
+
* the ceiling (a Base block, seconds after the commit) and the settlement
|
|
20
|
+
* (Base's output root on Ethereum, much later) cannot, so they start as
|
|
21
|
+
* { status: "pending" }. completeExport fetches all three. Nothing fetched is
|
|
22
|
+
* embedded before it verifies here: the floor header must hash to the floor
|
|
23
|
+
* block the proof signs, the ceiling must pass verifyCeiling for this proof,
|
|
24
|
+
* and the settlement must pass verifyOutputRootSettlement for the ceiling's
|
|
25
|
+
* own Base block. Nothing already in an export is ever overwritten.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
import { sha256 } from "@noble/hashes/sha256";
|
|
29
|
+
import {
|
|
30
|
+
base64ToBytes,
|
|
31
|
+
BASE_MAINNET_CHAIN_ID,
|
|
32
|
+
BITGRAPH_CEILING_WRITER,
|
|
33
|
+
buildExport,
|
|
34
|
+
buildTreeMemberEvidence,
|
|
35
|
+
bytesEqual,
|
|
36
|
+
bytesToBase64,
|
|
37
|
+
bytesToHex,
|
|
38
|
+
computeProofHash,
|
|
39
|
+
decodeHeader,
|
|
40
|
+
encodeTreeLeaves,
|
|
41
|
+
evmHexToBytes,
|
|
42
|
+
MerkleTree,
|
|
43
|
+
OUTPUT_ROOT_VERSION,
|
|
44
|
+
parseExport,
|
|
45
|
+
parseTreeRootDocument,
|
|
46
|
+
treeLeafHash,
|
|
47
|
+
treeRootFromMember,
|
|
48
|
+
verifyCeiling,
|
|
49
|
+
verifyOutputRootSettlement,
|
|
50
|
+
verifyTreeLeaves,
|
|
51
|
+
CEILING_VERSION,
|
|
52
|
+
} from "@mikeargento/bitgraph-verify";
|
|
53
|
+
import type { BitGraphExport, BitGraphProof, CeilingSidecar, OutputRootSettlement, TreeLeaf } from "@mikeargento/bitgraph-verify";
|
|
54
|
+
import type { FuseTreeResult } from "./fuse.js";
|
|
55
|
+
|
|
56
|
+
/** An export's floor: the Ethereum block the proof signs as commit.slotAnchor, with its RLP header (0x hex). */
|
|
57
|
+
export type ExportFloor = NonNullable<BitGraphExport["floor"]>;
|
|
58
|
+
|
|
59
|
+
/** What an export is built from. A FuseTreeResult is one; so is the same data read back from an owner's export. */
|
|
60
|
+
export interface TreeExportSource {
|
|
61
|
+
proof: BitGraphProof;
|
|
62
|
+
/** The 84-byte root document the proof commits. */
|
|
63
|
+
rootDocument: Uint8Array;
|
|
64
|
+
/** Every leaf, in tree order. */
|
|
65
|
+
leaves: readonly TreeLeaf[];
|
|
66
|
+
/** The tree over those leaves, when already built (reused across many member exports). */
|
|
67
|
+
tree?: MerkleTree;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** The parts beside the tree. Each defaults to the make-time state: no floor header, ceiling and settlement pending. */
|
|
71
|
+
export interface ExportParts {
|
|
72
|
+
floor?: ExportFloor | null;
|
|
73
|
+
ceiling?: BitGraphExport["ceiling"];
|
|
74
|
+
settlement?: BitGraphExport["settlement"];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** Throws unless the root document is the one the proof signs and states this many leaves; returns its parse. */
|
|
78
|
+
function boundDocument(source: TreeExportSource): { count: number; root: Uint8Array } {
|
|
79
|
+
const doc = parseTreeRootDocument(source.rootDocument);
|
|
80
|
+
if (doc === null) throw new TypeError("the root document is not 84 bytes of tree/1");
|
|
81
|
+
const signed = base64ToBytes(source.proof.artifact?.digestB64 ?? "");
|
|
82
|
+
if (signed === null || !bytesEqual(sha256(source.rootDocument), signed)) throw new TypeError("the root document does not hash to the proof's signed artifact digest");
|
|
83
|
+
if (doc.count !== source.leaves.length) throw new TypeError(`the root document states ${doc.count} leaves; ${source.leaves.length} were given`);
|
|
84
|
+
return doc;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function parts(p: ExportParts): Pick<BitGraphExport, "floor" | "ceiling" | "settlement"> {
|
|
88
|
+
return {
|
|
89
|
+
floor: p.floor ?? null,
|
|
90
|
+
ceiling: p.ceiling === undefined ? { status: "pending" } : p.ceiling,
|
|
91
|
+
settlement: p.settlement === undefined ? { status: "pending" } : p.settlement,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* One member's export: its leaf, its index and its path, and nothing of the
|
|
97
|
+
* other files but sibling hashes. The path is checked against the committed
|
|
98
|
+
* root before the export is built, so no export contradicts itself.
|
|
99
|
+
*/
|
|
100
|
+
export function buildMemberExport(source: TreeExportSource, leafIndex: number, extras: ExportParts = {}): BitGraphExport {
|
|
101
|
+
const doc = boundDocument(source);
|
|
102
|
+
if (!Number.isInteger(leafIndex) || leafIndex < 0 || leafIndex >= source.leaves.length) throw new RangeError(`leaf ${leafIndex} is not in a tree of ${source.leaves.length}`);
|
|
103
|
+
const tree = source.tree ?? new MerkleTree(source.leaves.map(treeLeafHash));
|
|
104
|
+
const leaf = source.leaves[leafIndex]!;
|
|
105
|
+
const path = tree.path(leafIndex);
|
|
106
|
+
const reached = treeRootFromMember(leaf, leafIndex, doc.count, path);
|
|
107
|
+
if (reached === null || !bytesEqual(reached, doc.root)) throw new TypeError(`leaf ${leafIndex}'s path does not recompute the committed root`);
|
|
108
|
+
return buildExport({
|
|
109
|
+
proof: source.proof,
|
|
110
|
+
tree: { rootDocument: bytesToHex(source.rootDocument), member: buildTreeMemberEvidence(leaf, leafIndex, doc.count, path) },
|
|
111
|
+
...parts(extras),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The owner's export: every leaf in tree order and, when given, a name per
|
|
117
|
+
* leaf (unsigned, informational). The whole list is checked against the
|
|
118
|
+
* committed root first: sorted, without duplicates, rebuilding the root.
|
|
119
|
+
*/
|
|
120
|
+
export function buildOwnerExport(source: TreeExportSource, extras: ExportParts & { names?: readonly string[] } = {}): BitGraphExport {
|
|
121
|
+
boundDocument(source);
|
|
122
|
+
const list = encodeTreeLeaves(source.leaves);
|
|
123
|
+
const check = verifyTreeLeaves(source.rootDocument, list);
|
|
124
|
+
if (!check.ok) throw new TypeError(`the leaves do not make the committed tree: ${check.reason ?? "invalid"}`);
|
|
125
|
+
const names = extras.names;
|
|
126
|
+
if (names !== undefined && (names.length !== source.leaves.length || names.some((n) => typeof n !== "string"))) {
|
|
127
|
+
throw new TypeError(`names must be one string per leaf (${source.leaves.length})`);
|
|
128
|
+
}
|
|
129
|
+
return buildExport({
|
|
130
|
+
proof: source.proof,
|
|
131
|
+
tree: { rootDocument: bytesToHex(source.rootDocument), leaves: bytesToBase64(list), ...(names !== undefined ? { names: [...names] } : {}) },
|
|
132
|
+
...parts(extras),
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** A name per leaf, in tree order, from a tree's members ("" for a member made without one). */
|
|
137
|
+
export function namesByLeaf(result: Pick<FuseTreeResult, "members" | "count">): string[] {
|
|
138
|
+
const names = new Array<string>(result.count).fill("");
|
|
139
|
+
for (const m of result.members) names[m.leafIndex] = m.name ?? "";
|
|
140
|
+
return names;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The floor for an export from a block header, or null unless the header
|
|
145
|
+
* decodes and hashes to the block the proof signs as its floor, at that
|
|
146
|
+
* height. The header is never trusted for anything it does not hash to.
|
|
147
|
+
*/
|
|
148
|
+
export function floorFromHeader(proof: BitGraphProof, headerHex: string): ExportFloor | null {
|
|
149
|
+
const signed = proof.commit?.slotAnchor;
|
|
150
|
+
if (!signed || typeof headerHex !== "string") return null;
|
|
151
|
+
try {
|
|
152
|
+
const h = decodeHeader(evmHexToBytes(headerHex));
|
|
153
|
+
if (h.hash !== signed.blockHash.toLowerCase() || h.number !== signed.blockNumber) return null;
|
|
154
|
+
const hex = headerHex.toLowerCase();
|
|
155
|
+
return { blockNumber: h.number, blockHash: h.hash, header: hex.startsWith("0x") ? hex : `0x${hex}` };
|
|
156
|
+
} catch {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface ExportFetchOptions {
|
|
162
|
+
/** The site to read from. Default https://bitgraph.ing. */
|
|
163
|
+
baseUrl?: string;
|
|
164
|
+
/** Per request. Default 20 s. */
|
|
165
|
+
timeoutMs?: number;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
type Fetcher = (input: string, init?: RequestInit) => Promise<Response>;
|
|
169
|
+
|
|
170
|
+
const DEFAULT_SITE = "https://bitgraph.ing";
|
|
171
|
+
|
|
172
|
+
function siteOf(opts: ExportFetchOptions): string {
|
|
173
|
+
return (opts.baseUrl ?? DEFAULT_SITE).replace(/\/+$/, "");
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** One read-only GET: status and parsed JSON, or the reason it failed. Never throws. */
|
|
177
|
+
async function getJson(fetcher: Fetcher, url: string, timeoutMs: number): Promise<{ status: number; json: unknown } | { error: string }> {
|
|
178
|
+
try {
|
|
179
|
+
const res = await fetcher(url, { method: "GET", headers: { accept: "application/json" }, redirect: "error", signal: AbortSignal.timeout(timeoutMs) });
|
|
180
|
+
let json: unknown = null;
|
|
181
|
+
try {
|
|
182
|
+
json = await res.json();
|
|
183
|
+
} catch {
|
|
184
|
+
json = null;
|
|
185
|
+
}
|
|
186
|
+
return { status: res.status, json };
|
|
187
|
+
} catch (err) {
|
|
188
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* The floor header for a proof, from the site's witness route
|
|
194
|
+
* (GET /api/proofs/witness?block=N&hash=0x...), checked against the floor
|
|
195
|
+
* the proof signs. Null when the proof signs no floor, the route has no
|
|
196
|
+
* header, or the header is not that block's.
|
|
197
|
+
*/
|
|
198
|
+
export async function fetchFloorHeader(proof: BitGraphProof, fetcher: Fetcher = fetch, opts: ExportFetchOptions = {}): Promise<ExportFloor | null> {
|
|
199
|
+
const signed = proof.commit?.slotAnchor;
|
|
200
|
+
if (!signed) return null;
|
|
201
|
+
const r = await getJson(fetcher, `${siteOf(opts)}/api/proofs/witness?block=${signed.blockNumber}&hash=${encodeURIComponent(signed.blockHash)}`, opts.timeoutMs ?? 20_000);
|
|
202
|
+
if ("error" in r || r.status !== 200) return null;
|
|
203
|
+
return floorFromHeader(proof, witnessHeader(r.json) ?? "");
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** The header in a witness answer: the bitgraph-anchor-witness/1 object, or the same inside a { witness } envelope. */
|
|
207
|
+
function witnessHeader(json: unknown): string | null {
|
|
208
|
+
const j = json as { headerRlpHex?: unknown; witness?: { headerRlpHex?: unknown } } | null;
|
|
209
|
+
const h = j?.headerRlpHex ?? j?.witness?.headerRlpHex;
|
|
210
|
+
return typeof h === "string" ? h : null;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function isCeiling(c: BitGraphExport["ceiling"]): c is CeilingSidecar {
|
|
214
|
+
return c !== null && typeof c === "object" && (c as { version?: unknown }).version === CEILING_VERSION && (c as CeilingSidecar).anchor != null;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
function isSettlement(s: BitGraphExport["settlement"]): s is OutputRootSettlement {
|
|
218
|
+
return s !== null && typeof s === "object" && (s as { version?: unknown }).version === OUTPUT_ROOT_VERSION;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export interface CompleteExportOptions extends ExportFetchOptions {
|
|
222
|
+
/** The ceiling writer the verifier accepts. Default BitGraph's published writer on Base. */
|
|
223
|
+
writerAddress?: string;
|
|
224
|
+
/** Default Base mainnet (8453). */
|
|
225
|
+
baseChainId?: number;
|
|
226
|
+
/** The chain the settlement is on. Default Ethereum mainnet (1). */
|
|
227
|
+
ethereumChainId?: number;
|
|
228
|
+
/** Keep asking while something is still pending, up to this long. Default 0: one pass. */
|
|
229
|
+
waitMs?: number;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export interface CompletedExport {
|
|
233
|
+
export: BitGraphExport;
|
|
234
|
+
/** True when anything was added. */
|
|
235
|
+
changed: boolean;
|
|
236
|
+
floor: "present" | "absent";
|
|
237
|
+
ceiling: "present" | "pending";
|
|
238
|
+
settlement: "present" | "pending";
|
|
239
|
+
/** What was asked and not embedded, and why: a route that failed, or evidence that did not verify. */
|
|
240
|
+
notes: string[];
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Fill what an export is waiting for, from read-only GETs on the site:
|
|
247
|
+
* floor GET /api/proofs/witness?block=N&hash=0x... (or the ceiling sidecar's own floor header)
|
|
248
|
+
* ceiling GET /api/ceilings/<proofHash, URL-safe> 404: still pending
|
|
249
|
+
* settlement GET /api/ceilings/settlement/<Base block> 404: still pending
|
|
250
|
+
* Each is verified here before it is embedded, and nothing already present is
|
|
251
|
+
* overwritten. The fetcher is injectable; it defaults to the global fetch.
|
|
252
|
+
*/
|
|
253
|
+
export async function completeExport(input: BitGraphExport, fetcher: Fetcher = fetch, opts: CompleteExportOptions = {}): Promise<CompletedExport> {
|
|
254
|
+
const exp = parseExport(input);
|
|
255
|
+
if (exp === null) throw new TypeError("not a bitgraph-export/1 document");
|
|
256
|
+
const site = siteOf(opts);
|
|
257
|
+
const timeoutMs = opts.timeoutMs ?? 20_000;
|
|
258
|
+
const writerAddress = opts.writerAddress ?? BITGRAPH_CEILING_WRITER;
|
|
259
|
+
const chainId = opts.baseChainId ?? BASE_MAINNET_CHAIN_ID;
|
|
260
|
+
const proof = exp.proof;
|
|
261
|
+
const signedFloor = proof.commit?.slotAnchor;
|
|
262
|
+
const notes = new Set<string>();
|
|
263
|
+
let floor: BitGraphExport["floor"] = exp.floor ?? null;
|
|
264
|
+
let ceiling: BitGraphExport["ceiling"] = exp.ceiling ?? null;
|
|
265
|
+
let settlement: BitGraphExport["settlement"] = exp.settlement ?? null;
|
|
266
|
+
let changed = false;
|
|
267
|
+
const deadline = Date.now() + (opts.waitMs ?? 0);
|
|
268
|
+
|
|
269
|
+
for (;;) {
|
|
270
|
+
// 1. The floor header: the witness route, checked against the signed floor.
|
|
271
|
+
if (floor === null && signedFloor) {
|
|
272
|
+
const r = await getJson(fetcher, `${site}/api/proofs/witness?block=${signedFloor.blockNumber}&hash=${encodeURIComponent(signedFloor.blockHash)}`, timeoutMs);
|
|
273
|
+
if ("error" in r) notes.add(`floor header: ${r.error}`);
|
|
274
|
+
else if (r.status !== 200) notes.add(`floor header: the witness route answered ${r.status}`);
|
|
275
|
+
else {
|
|
276
|
+
const f = floorFromHeader(proof, witnessHeader(r.json) ?? "");
|
|
277
|
+
if (f !== null) {
|
|
278
|
+
floor = f;
|
|
279
|
+
changed = true;
|
|
280
|
+
} else notes.add("floor header: the witness route answered a header that is not the floor block the proof signs; not embedded");
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// 2. The ceiling on Base: the sidecar, verified for this proof and writer.
|
|
285
|
+
if (!isCeiling(ceiling)) {
|
|
286
|
+
const r = await getJson(fetcher, `${site}/api/ceilings/${encodeURIComponent(urlSafe(computeProofHash(proof)))}`, timeoutMs);
|
|
287
|
+
if ("error" in r) notes.add(`ceiling: ${r.error}`);
|
|
288
|
+
else if (r.status === 404) {
|
|
289
|
+
if (ceiling === null) {
|
|
290
|
+
ceiling = { status: "pending" };
|
|
291
|
+
changed = true;
|
|
292
|
+
}
|
|
293
|
+
} else if (r.status !== 200) notes.add(`ceiling: the ceiling route answered ${r.status}`);
|
|
294
|
+
else {
|
|
295
|
+
const sidecar = r.json as CeilingSidecar;
|
|
296
|
+
const v = await verifyCeiling(proof, sidecar, { writerAddress, chainId });
|
|
297
|
+
if (v.ok) {
|
|
298
|
+
ceiling = sidecar;
|
|
299
|
+
changed = true;
|
|
300
|
+
// The sidecar can carry the floor header too; it is checked the same way.
|
|
301
|
+
if (floor === null && typeof sidecar.floor?.blockHeader === "string") {
|
|
302
|
+
const f = floorFromHeader(proof, sidecar.floor.blockHeader);
|
|
303
|
+
if (f !== null) floor = f;
|
|
304
|
+
}
|
|
305
|
+
} else if (v.status === "pending") {
|
|
306
|
+
if (ceiling === null) {
|
|
307
|
+
ceiling = { status: "pending" };
|
|
308
|
+
changed = true;
|
|
309
|
+
}
|
|
310
|
+
} else notes.add(`ceiling: the sidecar the site served does not verify (${v.reason ?? "invalid"}); not embedded`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// 3. The settlement on Ethereum, for the ceiling's own Base block.
|
|
315
|
+
if (!isSettlement(settlement)) {
|
|
316
|
+
if (isCeiling(ceiling)) {
|
|
317
|
+
const base = ceiling.anchor!;
|
|
318
|
+
const pending = { status: "pending" as const, baseBlock: base.blockNumber };
|
|
319
|
+
const r = await getJson(fetcher, `${site}/api/ceilings/settlement/${base.blockNumber}`, timeoutMs);
|
|
320
|
+
const answer = "error" in r ? null : (r.json as { settlement?: unknown; status?: unknown } | null);
|
|
321
|
+
const s = (answer !== null && typeof answer === "object" && answer.settlement !== undefined ? answer.settlement : answer) as OutputRootSettlement | { status?: unknown } | null;
|
|
322
|
+
if ("error" in r) notes.add(`settlement: ${r.error}`);
|
|
323
|
+
else if (r.status === 404 || (r.status === 200 && (s as { status?: unknown } | null)?.status === "pending")) {
|
|
324
|
+
if (!samePending(settlement, pending)) {
|
|
325
|
+
settlement = pending;
|
|
326
|
+
changed = true;
|
|
327
|
+
}
|
|
328
|
+
} else if (r.status !== 200) notes.add(`settlement: the settlement route answered ${r.status}`);
|
|
329
|
+
else {
|
|
330
|
+
const so = s as OutputRootSettlement;
|
|
331
|
+
const v = verifyOutputRootSettlement(so, { baseChainId: chainId, ethereumChainId: opts.ethereumChainId ?? 1 });
|
|
332
|
+
const linked = so?.base?.blockNumber === base.blockNumber && typeof so.base.blockHash === "string" && so.base.blockHash.toLowerCase() === base.blockHash.toLowerCase();
|
|
333
|
+
if (v.ok && linked) {
|
|
334
|
+
settlement = so;
|
|
335
|
+
changed = true;
|
|
336
|
+
} else notes.add(`settlement: ${v.ok ? "it settles a different Base block than the ceiling's" : `it does not verify (${v.reason ?? "invalid"})`}; not embedded`);
|
|
337
|
+
}
|
|
338
|
+
} else if (settlement === null) {
|
|
339
|
+
settlement = { status: "pending" };
|
|
340
|
+
changed = true;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
const complete = floor !== null && isCeiling(ceiling) && isSettlement(settlement);
|
|
345
|
+
if (complete || Date.now() + 2_000 > deadline) break;
|
|
346
|
+
await sleep(2_000);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
return {
|
|
350
|
+
export: buildExport({ proof, tree: exp.tree, floor, ceiling, settlement }),
|
|
351
|
+
changed,
|
|
352
|
+
floor: floor !== null ? "present" : "absent",
|
|
353
|
+
ceiling: isCeiling(ceiling) ? "present" : "pending",
|
|
354
|
+
settlement: isSettlement(settlement) ? "present" : "pending",
|
|
355
|
+
notes: [...notes],
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
function samePending(s: BitGraphExport["settlement"], p: { status: "pending"; baseBlock: number }): boolean {
|
|
360
|
+
return s !== null && (s as { status?: unknown }).status === "pending" && (s as { baseBlock?: unknown }).baseBlock === p.baseBlock;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
function urlSafe(b64: string): string {
|
|
364
|
+
return b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
365
|
+
}
|