| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * Hybrid stack status from the local indexer.
- */
- const INDEXER =
- process.env.NEXT_PUBLIC_INDEXER_URL?.trim() || "http://127.0.0.1:4091";
- export type RpcProbe = {
- url: string;
- ok: boolean;
- chainId?: number;
- blockNumber?: number;
- error?: string;
- };
- export type HybridStatus = {
- ok: boolean;
- offline?: boolean;
- service?: string;
- mode?: string;
- privateLayer?: RpcProbe;
- publicLayer?: RpcProbe;
- sim?: {
- privateHeight: number;
- txCount: number;
- blockCount: number;
- pendingAnchors: number;
- postedAnchors: number;
- };
- note?: string;
- };
- export async function fetchHybridStatus(): Promise<HybridStatus> {
- try {
- const res = await fetch(`${INDEXER}/v1/hybrid`, {
- next: { revalidate: 0 },
- signal: AbortSignal.timeout(2000),
- });
- if (!res.ok) return { ok: false, offline: true, note: "Indexer returned an error." };
- return (await res.json()) as HybridStatus;
- } catch {
- return {
- ok: false,
- offline: true,
- note: "Indexer is not running. Start with: bun run dev:indexer",
- };
- }
- }
|