@mikeargento/bitgraph 1.10.1 → 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 +2 -2
- 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
|
},
|
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
|
+
}
|