@aaronbassett/midnight-local-devnet 0.2.1 → 0.3.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 +16 -26
- package/dist/cli/commands/dashboard.js +53 -14
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/dashboard/html.d.ts +3 -0
- package/dist/cli/dashboard/html.js +1095 -0
- package/dist/cli/dashboard/html.js.map +1 -0
- package/dist/cli/dashboard/server.d.ts +17 -0
- package/dist/cli/dashboard/server.js +133 -0
- package/dist/cli/dashboard/server.js.map +1 -0
- package/dist/cli/dashboard/state-collector.d.ts +67 -0
- package/dist/cli/dashboard/state-collector.js +121 -0
- package/dist/cli/dashboard/state-collector.js.map +1 -0
- package/package.json +4 -5
- package/dist/cli/dashboard/app.d.ts +0 -9
- package/dist/cli/dashboard/app.js +0 -106
- package/dist/cli/dashboard/app.js.map +0 -1
- package/dist/cli/dashboard/components/gauge.d.ts +0 -9
- package/dist/cli/dashboard/components/gauge.js +0 -10
- package/dist/cli/dashboard/components/gauge.js.map +0 -1
- package/dist/cli/dashboard/components/panel-box.d.ts +0 -10
- package/dist/cli/dashboard/components/panel-box.js +0 -6
- package/dist/cli/dashboard/components/panel-box.js.map +0 -1
- package/dist/cli/dashboard/components/sparkline.d.ts +0 -9
- package/dist/cli/dashboard/components/sparkline.js +0 -25
- package/dist/cli/dashboard/components/sparkline.js.map +0 -1
- package/dist/cli/dashboard/components/status-badge.d.ts +0 -6
- package/dist/cli/dashboard/components/status-badge.js +0 -24
- package/dist/cli/dashboard/components/status-badge.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-breakpoint.d.ts +0 -7
- package/dist/cli/dashboard/hooks/use-breakpoint.js +0 -15
- package/dist/cli/dashboard/hooks/use-breakpoint.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-health.d.ts +0 -9
- package/dist/cli/dashboard/hooks/use-health.js +0 -35
- package/dist/cli/dashboard/hooks/use-health.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-indexer-info.d.ts +0 -5
- package/dist/cli/dashboard/hooks/use-indexer-info.js +0 -19
- package/dist/cli/dashboard/hooks/use-indexer-info.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-logs.d.ts +0 -19
- package/dist/cli/dashboard/hooks/use-logs.js +0 -55
- package/dist/cli/dashboard/hooks/use-logs.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-node-info.d.ts +0 -21
- package/dist/cli/dashboard/hooks/use-node-info.js +0 -49
- package/dist/cli/dashboard/hooks/use-node-info.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-polling.d.ts +0 -7
- package/dist/cli/dashboard/hooks/use-polling.js +0 -35
- package/dist/cli/dashboard/hooks/use-polling.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-proof-server.d.ts +0 -7
- package/dist/cli/dashboard/hooks/use-proof-server.js +0 -14
- package/dist/cli/dashboard/hooks/use-proof-server.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-services.d.ts +0 -3
- package/dist/cli/dashboard/hooks/use-services.js +0 -6
- package/dist/cli/dashboard/hooks/use-services.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-terminal-size.d.ts +0 -5
- package/dist/cli/dashboard/hooks/use-terminal-size.js +0 -22
- package/dist/cli/dashboard/hooks/use-terminal-size.js.map +0 -1
- package/dist/cli/dashboard/hooks/use-wallet-state.d.ts +0 -10
- package/dist/cli/dashboard/hooks/use-wallet-state.js +0 -63
- package/dist/cli/dashboard/hooks/use-wallet-state.js.map +0 -1
- package/dist/cli/dashboard/layouts/large.d.ts +0 -7
- package/dist/cli/dashboard/layouts/large.js +0 -13
- package/dist/cli/dashboard/layouts/large.js.map +0 -1
- package/dist/cli/dashboard/layouts/medium.d.ts +0 -7
- package/dist/cli/dashboard/layouts/medium.js +0 -11
- package/dist/cli/dashboard/layouts/medium.js.map +0 -1
- package/dist/cli/dashboard/layouts/small.d.ts +0 -7
- package/dist/cli/dashboard/layouts/small.js +0 -11
- package/dist/cli/dashboard/layouts/small.js.map +0 -1
- package/dist/cli/dashboard/panels/indexer-panel.d.ts +0 -11
- package/dist/cli/dashboard/panels/indexer-panel.js +0 -17
- package/dist/cli/dashboard/panels/indexer-panel.js.map +0 -1
- package/dist/cli/dashboard/panels/log-panel.d.ts +0 -13
- package/dist/cli/dashboard/panels/log-panel.js +0 -27
- package/dist/cli/dashboard/panels/log-panel.js.map +0 -1
- package/dist/cli/dashboard/panels/node-panel.d.ts +0 -10
- package/dist/cli/dashboard/panels/node-panel.js +0 -17
- package/dist/cli/dashboard/panels/node-panel.js.map +0 -1
- package/dist/cli/dashboard/panels/proof-panel.d.ts +0 -10
- package/dist/cli/dashboard/panels/proof-panel.js +0 -20
- package/dist/cli/dashboard/panels/proof-panel.js.map +0 -1
- package/dist/cli/dashboard/panels/response-graph.d.ts +0 -10
- package/dist/cli/dashboard/panels/response-graph.js +0 -12
- package/dist/cli/dashboard/panels/response-graph.js.map +0 -1
- package/dist/cli/dashboard/panels/wallet-panel.d.ts +0 -9
- package/dist/cli/dashboard/panels/wallet-panel.js +0 -24
- package/dist/cli/dashboard/panels/wallet-panel.js.map +0 -1
- package/dist/cli/dashboard/types.d.ts +0 -39
- package/dist/cli/dashboard/types.js +0 -2
- package/dist/cli/dashboard/types.js.map +0 -1
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Text } from 'ink';
|
|
3
|
-
const STATUS_COLORS = {
|
|
4
|
-
healthy: 'green',
|
|
5
|
-
running: 'green',
|
|
6
|
-
ok: 'green',
|
|
7
|
-
busy: 'yellow',
|
|
8
|
-
unknown: 'gray',
|
|
9
|
-
unhealthy: 'red',
|
|
10
|
-
stopped: 'red',
|
|
11
|
-
};
|
|
12
|
-
const STATUS_SYMBOLS = {
|
|
13
|
-
healthy: '●',
|
|
14
|
-
running: '●',
|
|
15
|
-
ok: '●',
|
|
16
|
-
busy: '◐',
|
|
17
|
-
unknown: '○',
|
|
18
|
-
unhealthy: '●',
|
|
19
|
-
stopped: '●',
|
|
20
|
-
};
|
|
21
|
-
export function StatusBadge({ status }) {
|
|
22
|
-
return (_jsxs(Text, { color: STATUS_COLORS[status], children: [STATUS_SYMBOLS[status], " ", status] }));
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=status-badge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-badge.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/components/status-badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAM3B,MAAM,aAAa,GAA+C;IAChE,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAM,cAAc,GAA+C;IACjE,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAoB;IACtD,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,aAC/B,cAAc,CAAC,MAAM,CAAC,OAAG,MAAM,IAC3B,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import { useTerminalSize } from './use-terminal-size.js';
|
|
3
|
-
export function getBreakpoint(width) {
|
|
4
|
-
if (width < 40)
|
|
5
|
-
return 'small';
|
|
6
|
-
if (width < 120)
|
|
7
|
-
return 'medium';
|
|
8
|
-
return 'large';
|
|
9
|
-
}
|
|
10
|
-
export function useBreakpoint() {
|
|
11
|
-
const { columns, rows } = useTerminalSize();
|
|
12
|
-
const breakpoint = useMemo(() => getBreakpoint(columns), [columns]);
|
|
13
|
-
return { breakpoint, columns, rows };
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=use-breakpoint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-breakpoint.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-breakpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC;IAC/B,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,QAAQ,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type HealthReport } from '../../../core/health.js';
|
|
2
|
-
import type { NetworkConfig } from '../../../core/types.js';
|
|
3
|
-
export interface HealthWithHistory {
|
|
4
|
-
current: HealthReport;
|
|
5
|
-
nodeHistory: number[];
|
|
6
|
-
indexerHistory: number[];
|
|
7
|
-
proofServerHistory: number[];
|
|
8
|
-
}
|
|
9
|
-
export declare function useHealth(config: NetworkConfig): import("./use-polling.js").PollingState<HealthWithHistory>;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { useRef } from 'react';
|
|
2
|
-
import { usePolling } from './use-polling.js';
|
|
3
|
-
import { checkAllHealth } from '../../../core/health.js';
|
|
4
|
-
const MAX_HISTORY = 30;
|
|
5
|
-
export function useHealth(config) {
|
|
6
|
-
const nodeHistory = useRef([]);
|
|
7
|
-
const indexerHistory = useRef([]);
|
|
8
|
-
const proofServerHistory = useRef([]);
|
|
9
|
-
const polling = usePolling(async () => {
|
|
10
|
-
const report = await checkAllHealth(config);
|
|
11
|
-
if (report.node.responseTime != null) {
|
|
12
|
-
nodeHistory.current.push(report.node.responseTime);
|
|
13
|
-
if (nodeHistory.current.length > MAX_HISTORY)
|
|
14
|
-
nodeHistory.current.shift();
|
|
15
|
-
}
|
|
16
|
-
if (report.indexer.responseTime != null) {
|
|
17
|
-
indexerHistory.current.push(report.indexer.responseTime);
|
|
18
|
-
if (indexerHistory.current.length > MAX_HISTORY)
|
|
19
|
-
indexerHistory.current.shift();
|
|
20
|
-
}
|
|
21
|
-
if (report.proofServer.responseTime != null) {
|
|
22
|
-
proofServerHistory.current.push(report.proofServer.responseTime);
|
|
23
|
-
if (proofServerHistory.current.length > MAX_HISTORY)
|
|
24
|
-
proofServerHistory.current.shift();
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
current: report,
|
|
28
|
-
nodeHistory: [...nodeHistory.current],
|
|
29
|
-
indexerHistory: [...indexerHistory.current],
|
|
30
|
-
proofServerHistory: [...proofServerHistory.current],
|
|
31
|
-
};
|
|
32
|
-
}, 10000);
|
|
33
|
-
return polling;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=use-health.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-health.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAC;AAU5E,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,UAAU,SAAS,CAAC,MAAqB;IAC7C,MAAM,WAAW,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;IAC5C,MAAM,kBAAkB,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,IAAgC,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YACrC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW;gBAAE,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5E,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YACxC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACzD,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW;gBAAE,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClF,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC5C,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACjE,IAAI,kBAAkB,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW;gBAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1F,CAAC;QAED,OAAO;YACL,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;YACrC,cAAc,EAAE,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;YAC3C,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;SACpD,CAAC;IACJ,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { usePolling } from './use-polling.js';
|
|
2
|
-
async function fetchIndexerInfo(indexerUrl) {
|
|
3
|
-
const origin = new URL(indexerUrl).origin;
|
|
4
|
-
const start = Date.now();
|
|
5
|
-
try {
|
|
6
|
-
const response = await fetch(`${origin}/ready`, { signal: AbortSignal.timeout(5000) });
|
|
7
|
-
return {
|
|
8
|
-
ready: response.ok,
|
|
9
|
-
responseTime: Date.now() - start,
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
return { ready: false, responseTime: Date.now() - start };
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export function useIndexerInfo(indexerUrl) {
|
|
17
|
-
return usePolling(() => fetchIndexerInfo(indexerUrl), 10000);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=use-indexer-info.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-indexer-info.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-indexer-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SACjC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type ParsedLogLine, type LogFilter } from '../lib/log-parser.js';
|
|
2
|
-
export interface LogState {
|
|
3
|
-
lines: ParsedLogLine[];
|
|
4
|
-
filteredLines: ParsedLogLine[];
|
|
5
|
-
filter: LogFilter;
|
|
6
|
-
scrollOffset: number;
|
|
7
|
-
}
|
|
8
|
-
export declare function useLogs(): {
|
|
9
|
-
lines: ParsedLogLine[];
|
|
10
|
-
allLines: ParsedLogLine[];
|
|
11
|
-
filter: LogFilter;
|
|
12
|
-
scrollOffset: number;
|
|
13
|
-
loading: boolean;
|
|
14
|
-
cycleService: () => void;
|
|
15
|
-
cycleLevel: () => void;
|
|
16
|
-
setSearch: (search: string) => void;
|
|
17
|
-
scrollUp: () => void;
|
|
18
|
-
scrollDown: () => void;
|
|
19
|
-
};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback } from 'react';
|
|
2
|
-
import { usePolling } from './use-polling.js';
|
|
3
|
-
import { composeLogs } from '../../../core/docker.js';
|
|
4
|
-
import { parseLogLines, filterLogs } from '../lib/log-parser.js';
|
|
5
|
-
const SERVICE_CYCLE = [undefined, 'node', 'indexer', 'proof-server'];
|
|
6
|
-
const LEVEL_CYCLE = [undefined, 'info', 'warn', 'error'];
|
|
7
|
-
export function useLogs() {
|
|
8
|
-
const [filter, setFilter] = useState({});
|
|
9
|
-
const [scrollOffset, setScrollOffset] = useState(0);
|
|
10
|
-
const polling = usePolling(async () => {
|
|
11
|
-
const raw = await composeLogs({ lines: 100 });
|
|
12
|
-
return parseLogLines(raw);
|
|
13
|
-
}, 3000);
|
|
14
|
-
const lines = polling.data ?? [];
|
|
15
|
-
const filteredLines = filterLogs(lines, filter);
|
|
16
|
-
const cycleService = useCallback(() => {
|
|
17
|
-
setFilter((prev) => {
|
|
18
|
-
const currentIdx = SERVICE_CYCLE.indexOf(prev.service);
|
|
19
|
-
const nextIdx = (currentIdx + 1) % SERVICE_CYCLE.length;
|
|
20
|
-
return { ...prev, service: SERVICE_CYCLE[nextIdx] };
|
|
21
|
-
});
|
|
22
|
-
setScrollOffset(0);
|
|
23
|
-
}, []);
|
|
24
|
-
const cycleLevel = useCallback(() => {
|
|
25
|
-
setFilter((prev) => {
|
|
26
|
-
const currentIdx = LEVEL_CYCLE.indexOf(prev.level);
|
|
27
|
-
const nextIdx = (currentIdx + 1) % LEVEL_CYCLE.length;
|
|
28
|
-
return { ...prev, level: LEVEL_CYCLE[nextIdx] };
|
|
29
|
-
});
|
|
30
|
-
setScrollOffset(0);
|
|
31
|
-
}, []);
|
|
32
|
-
const setSearch = useCallback((search) => {
|
|
33
|
-
setFilter((prev) => ({ ...prev, search: search || undefined }));
|
|
34
|
-
setScrollOffset(0);
|
|
35
|
-
}, []);
|
|
36
|
-
const scrollUp = useCallback(() => {
|
|
37
|
-
setScrollOffset((prev) => Math.max(0, prev - 1));
|
|
38
|
-
}, []);
|
|
39
|
-
const scrollDown = useCallback(() => {
|
|
40
|
-
setScrollOffset((prev) => Math.min(filteredLines.length - 1, prev + 1));
|
|
41
|
-
}, [filteredLines.length]);
|
|
42
|
-
return {
|
|
43
|
-
lines: filteredLines,
|
|
44
|
-
allLines: lines,
|
|
45
|
-
filter,
|
|
46
|
-
scrollOffset,
|
|
47
|
-
loading: polling.loading,
|
|
48
|
-
cycleService,
|
|
49
|
-
cycleLevel,
|
|
50
|
-
setSearch,
|
|
51
|
-
scrollUp,
|
|
52
|
-
scrollDown,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=use-logs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-logs.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type SystemHealth } from '../lib/substrate-rpc.js';
|
|
2
|
-
export interface NodeInfo {
|
|
3
|
-
chainName: string | null;
|
|
4
|
-
nodeName: string | null;
|
|
5
|
-
version: string | null;
|
|
6
|
-
health: SystemHealth | null;
|
|
7
|
-
bestBlock: number | null;
|
|
8
|
-
avgBlockTime: number | null;
|
|
9
|
-
}
|
|
10
|
-
export declare function useNodeInfo(nodeUrl: string): {
|
|
11
|
-
data: {
|
|
12
|
-
avgBlockTime: number | null;
|
|
13
|
-
chainName: string | null;
|
|
14
|
-
nodeName: string | null;
|
|
15
|
-
version: string | null;
|
|
16
|
-
health: SystemHealth | null;
|
|
17
|
-
bestBlock: number | null;
|
|
18
|
-
} | null;
|
|
19
|
-
error: unknown | null;
|
|
20
|
-
loading: boolean;
|
|
21
|
-
};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { useEffect, useRef } from 'react';
|
|
2
|
-
import { usePolling } from './use-polling.js';
|
|
3
|
-
import { fetchSystemChain, fetchSystemName, fetchSystemVersion, fetchSystemHealth, fetchBestBlockHeader, } from '../lib/substrate-rpc.js';
|
|
4
|
-
async function fetchNodeInfo(nodeUrl) {
|
|
5
|
-
const [chainName, nodeName, version, health, header] = await Promise.all([
|
|
6
|
-
fetchSystemChain(nodeUrl),
|
|
7
|
-
fetchSystemName(nodeUrl),
|
|
8
|
-
fetchSystemVersion(nodeUrl),
|
|
9
|
-
fetchSystemHealth(nodeUrl),
|
|
10
|
-
fetchBestBlockHeader(nodeUrl),
|
|
11
|
-
]);
|
|
12
|
-
return {
|
|
13
|
-
chainName,
|
|
14
|
-
nodeName,
|
|
15
|
-
version,
|
|
16
|
-
health,
|
|
17
|
-
bestBlock: header?.number ?? null,
|
|
18
|
-
avgBlockTime: null,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export function useNodeInfo(nodeUrl) {
|
|
22
|
-
const blockHistory = useRef([]);
|
|
23
|
-
const polling = usePolling(() => fetchNodeInfo(nodeUrl), 5000);
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (polling.data?.bestBlock != null) {
|
|
26
|
-
const now = Date.now();
|
|
27
|
-
const history = blockHistory.current;
|
|
28
|
-
history.push({ block: polling.data.bestBlock, time: now });
|
|
29
|
-
if (history.length > 20)
|
|
30
|
-
history.shift();
|
|
31
|
-
}
|
|
32
|
-
}, [polling.data?.bestBlock]);
|
|
33
|
-
const avgBlockTime = (() => {
|
|
34
|
-
const history = blockHistory.current;
|
|
35
|
-
if (history.length < 2)
|
|
36
|
-
return null;
|
|
37
|
-
const first = history[0];
|
|
38
|
-
const last = history[history.length - 1];
|
|
39
|
-
const blockDiff = last.block - first.block;
|
|
40
|
-
if (blockDiff <= 0)
|
|
41
|
-
return null;
|
|
42
|
-
return (last.time - first.time) / blockDiff / 1000;
|
|
43
|
-
})();
|
|
44
|
-
return {
|
|
45
|
-
...polling,
|
|
46
|
-
data: polling.data ? { ...polling.data, avgBlockTime } : null,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=use-node-info.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-node-info.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-node-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,yBAAyB,CAAC;AAWjC,KAAK,UAAU,aAAa,CAAC,OAAe;IAC1C,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvE,gBAAgB,CAAC,OAAO,CAAC;QACzB,eAAe,CAAC,OAAO,CAAC;QACxB,kBAAkB,CAAC,OAAO,CAAC;QAC3B,iBAAiB,CAAC,OAAO,CAAC;QAC1B,oBAAoB,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;QACjC,YAAY,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,YAAY,GAAG,MAAM,CAAoC,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;gBAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3C,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACrD,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO;QACL,GAAG,OAAO;QACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function createPoller<T>(fetcher: () => Promise<T>, intervalMs: number, onData: (data: T) => void, onError: (error: unknown) => void): () => void;
|
|
2
|
-
export interface PollingState<T> {
|
|
3
|
-
data: T | null;
|
|
4
|
-
error: unknown | null;
|
|
5
|
-
loading: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare function usePolling<T>(fetcher: () => Promise<T>, intervalMs: number): PollingState<T>;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect, useRef } from 'react';
|
|
2
|
-
export function createPoller(fetcher, intervalMs, onData, onError) {
|
|
3
|
-
let stopped = false;
|
|
4
|
-
const poll = async () => {
|
|
5
|
-
if (stopped)
|
|
6
|
-
return;
|
|
7
|
-
try {
|
|
8
|
-
const data = await fetcher();
|
|
9
|
-
if (!stopped)
|
|
10
|
-
onData(data);
|
|
11
|
-
}
|
|
12
|
-
catch (err) {
|
|
13
|
-
if (!stopped)
|
|
14
|
-
onError(err);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
// Initial fetch
|
|
18
|
-
void poll();
|
|
19
|
-
const timer = setInterval(() => void poll(), intervalMs);
|
|
20
|
-
return () => {
|
|
21
|
-
stopped = true;
|
|
22
|
-
clearInterval(timer);
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export function usePolling(fetcher, intervalMs) {
|
|
26
|
-
const [state, setState] = useState({ data: null, error: null, loading: true });
|
|
27
|
-
const fetcherRef = useRef(fetcher);
|
|
28
|
-
fetcherRef.current = fetcher;
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
const stop = createPoller(() => fetcherRef.current(), intervalMs, (data) => setState({ data, error: null, loading: false }), (error) => setState((prev) => ({ ...prev, error, loading: false })));
|
|
31
|
-
return stop;
|
|
32
|
-
}, [intervalMs]);
|
|
33
|
-
return state;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=use-polling.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-polling.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-polling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,UAAU,YAAY,CAC1B,OAAyB,EACzB,UAAkB,EAClB,MAAyB,EACzB,OAAiC;IAEjC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,OAAO;YAAE,OAAO;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,gBAAgB;IAChB,KAAK,IAAI,EAAE,CAAC;IAEZ,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;IAEzD,OAAO,GAAG,EAAE;QACV,OAAO,GAAG,IAAI,CAAC;QACf,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,UAAU,CAAI,OAAyB,EAAE,UAAkB;IACzE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChG,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,YAAY,CACvB,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAC1B,UAAU,EACV,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EACzD,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CACpE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type ProofServerReady } from '../lib/proof-server-api.js';
|
|
2
|
-
export interface ProofServerInfo {
|
|
3
|
-
version: string | null;
|
|
4
|
-
proofVersions: string[] | null;
|
|
5
|
-
ready: ProofServerReady | null;
|
|
6
|
-
}
|
|
7
|
-
export declare function useProofServer(proofServerUrl: string): import("./use-polling.js").PollingState<ProofServerInfo>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { usePolling } from './use-polling.js';
|
|
2
|
-
import { fetchProofServerVersion, fetchProofServerReady, fetchProofVersions, } from '../lib/proof-server-api.js';
|
|
3
|
-
async function fetchAllProofServerInfo(baseUrl) {
|
|
4
|
-
const [version, ready, proofVersions] = await Promise.all([
|
|
5
|
-
fetchProofServerVersion(baseUrl),
|
|
6
|
-
fetchProofServerReady(baseUrl),
|
|
7
|
-
fetchProofVersions(baseUrl),
|
|
8
|
-
]);
|
|
9
|
-
return { version, ready, proofVersions };
|
|
10
|
-
}
|
|
11
|
-
export function useProofServer(proofServerUrl) {
|
|
12
|
-
return usePolling(() => fetchAllProofServerInfo(proofServerUrl), 10000);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=use-proof-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-proof-server.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-proof-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AAQpC,KAAK,UAAU,uBAAuB,CAAC,OAAe;IACpD,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxD,uBAAuB,CAAC,OAAO,CAAC;QAChC,qBAAqB,CAAC,OAAO,CAAC;QAC9B,kBAAkB,CAAC,OAAO,CAAC;KAC5B,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,cAAsB;IACnD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-services.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,UAAU,WAAW;IACzB,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
import { useStdout } from 'ink';
|
|
3
|
-
export function useTerminalSize() {
|
|
4
|
-
const { stdout } = useStdout();
|
|
5
|
-
const [size, setSize] = useState({
|
|
6
|
-
columns: stdout?.columns ?? 80,
|
|
7
|
-
rows: stdout?.rows ?? 24,
|
|
8
|
-
});
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
if (!stdout)
|
|
11
|
-
return;
|
|
12
|
-
const handleResize = () => {
|
|
13
|
-
setSize({ columns: stdout.columns, rows: stdout.rows });
|
|
14
|
-
};
|
|
15
|
-
stdout.on('resize', handleResize);
|
|
16
|
-
return () => {
|
|
17
|
-
stdout.off('resize', handleResize);
|
|
18
|
-
};
|
|
19
|
-
}, [stdout]);
|
|
20
|
-
return size;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=use-terminal-size.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-terminal-size.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-terminal-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAe;QAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;QAC9B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;KACzB,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { NetworkManager } from '../../../core/network-manager.js';
|
|
2
|
-
import type { WalletBalances } from '../../../core/types.js';
|
|
3
|
-
export interface WalletState {
|
|
4
|
-
connected: boolean;
|
|
5
|
-
connecting: boolean;
|
|
6
|
-
error: string | null;
|
|
7
|
-
balances: WalletBalances | null;
|
|
8
|
-
address: string | null;
|
|
9
|
-
}
|
|
10
|
-
export declare function useWalletState(manager: NetworkManager): WalletState;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
import { getWalletBalances } from '../../../core/wallet.js';
|
|
3
|
-
export function useWalletState(manager) {
|
|
4
|
-
const [state, setState] = useState({
|
|
5
|
-
connected: false,
|
|
6
|
-
connecting: false,
|
|
7
|
-
error: null,
|
|
8
|
-
balances: null,
|
|
9
|
-
address: null,
|
|
10
|
-
});
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
let cancelled = false;
|
|
13
|
-
let timer = null;
|
|
14
|
-
const connect = async () => {
|
|
15
|
-
if (manager.getStatus() !== 'running') {
|
|
16
|
-
setState({ connected: false, connecting: false, error: 'Network not running', balances: null, address: null });
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
setState((prev) => ({ ...prev, connecting: true, error: null }));
|
|
20
|
-
try {
|
|
21
|
-
const wallet = await manager.ensureWallet();
|
|
22
|
-
if (cancelled)
|
|
23
|
-
return;
|
|
24
|
-
const balances = await getWalletBalances(wallet);
|
|
25
|
-
if (cancelled)
|
|
26
|
-
return;
|
|
27
|
-
setState({ connected: true, connecting: false, error: null, balances, address: 'master' });
|
|
28
|
-
timer = setInterval(async () => {
|
|
29
|
-
if (cancelled)
|
|
30
|
-
return;
|
|
31
|
-
try {
|
|
32
|
-
const b = await getWalletBalances(wallet);
|
|
33
|
-
if (!cancelled) {
|
|
34
|
-
setState((prev) => ({ ...prev, balances: b }));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// Ignore polling errors
|
|
39
|
-
}
|
|
40
|
-
}, 10000);
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
if (!cancelled) {
|
|
44
|
-
setState({
|
|
45
|
-
connected: false,
|
|
46
|
-
connecting: false,
|
|
47
|
-
error: err instanceof Error ? err.message : 'Wallet connection failed',
|
|
48
|
-
balances: null,
|
|
49
|
-
address: null,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
void connect();
|
|
55
|
-
return () => {
|
|
56
|
-
cancelled = true;
|
|
57
|
-
if (timer)
|
|
58
|
-
clearInterval(timer);
|
|
59
|
-
};
|
|
60
|
-
}, [manager, manager.getStatus()]);
|
|
61
|
-
return state;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=use-wallet-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-wallet-state.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/hooks/use-wallet-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAU5D,MAAM,UAAU,cAAc,CAAC,OAAuB;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAc;QAC9C,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,GAA0C,IAAI,CAAC;QAExD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/G,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAEjE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC5C,IAAI,SAAS;oBAAE,OAAO;gBAEtB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,SAAS;oBAAE,OAAO;gBAEtB,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAE3F,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;oBAC7B,IAAI,SAAS;wBAAE,OAAO;oBACtB,IAAI,CAAC;wBACH,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;4BACf,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACjD,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC,EAAE,KAAK,CAAC,CAAC;YACZ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC;wBACP,SAAS,EAAE,KAAK;wBAChB,UAAU,EAAE,KAAK;wBACjB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;wBACtE,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,OAAO,EAAE,CAAC;QAEf,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,KAAK;gBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAEnC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box } from 'ink';
|
|
3
|
-
import { NodePanel } from '../panels/node-panel.js';
|
|
4
|
-
import { IndexerPanel } from '../panels/indexer-panel.js';
|
|
5
|
-
import { ProofPanel } from '../panels/proof-panel.js';
|
|
6
|
-
import { WalletPanel } from '../panels/wallet-panel.js';
|
|
7
|
-
import { LogPanel } from '../panels/log-panel.js';
|
|
8
|
-
import { ResponseGraph } from '../panels/response-graph.js';
|
|
9
|
-
export function LargeLayout({ data }) {
|
|
10
|
-
const halfWidth = Math.floor(data.columns / 2);
|
|
11
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "25%", children: _jsx(NodePanel, { data: data.node, loading: data.nodeLoading, focused: data.focusedPanel === 'node' }) }), _jsx(Box, { width: "25%", children: _jsx(IndexerPanel, { data: data.indexer, nodeBlock: data.node?.bestBlock ?? null, loading: data.indexerLoading, focused: data.focusedPanel === 'indexer' }) }), _jsx(Box, { width: "25%", children: _jsx(ProofPanel, { data: data.proofServer, loading: data.proofServerLoading, focused: data.focusedPanel === 'proof' }) }), _jsx(Box, { width: "25%", children: _jsx(WalletPanel, { wallet: data.wallet, focused: data.focusedPanel === 'wallet' }) })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "50%", children: _jsx(ResponseGraph, { nodeHistory: data.healthHistory.nodeHistory, indexerHistory: data.healthHistory.indexerHistory, proofServerHistory: data.healthHistory.proofServerHistory, focused: data.focusedPanel === 'graph', width: halfWidth - 4 }) }), _jsx(Box, { width: "50%", children: _jsx(LogPanel, { lines: data.logs.lines, filter: data.logs.filter, scrollOffset: data.logs.scrollOffset, maxLines: Math.max(5, data.rows - 12), focused: data.focusedPanel === 'logs', searchMode: data.searchMode, searchText: data.searchText }) })] })] }));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=large.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"large.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/layouts/large.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAO5D,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAoB;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAE/C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM,GAAI,GAC5F,EACN,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,GAAI,GACjJ,EACN,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,OAAO,GAAI,GAC5G,EACN,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,WAAW,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,QAAQ,GAAI,GACzE,IACF,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,aAAa,IACZ,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAC3C,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,EACjD,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,EACzD,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,OAAO,EACtC,KAAK,EAAE,SAAS,GAAG,CAAC,GACpB,GACE,EACN,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,QAAQ,IACP,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EACxB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EACrC,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM,EACrC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,GAC3B,GACE,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box } from 'ink';
|
|
3
|
-
import { NodePanel } from '../panels/node-panel.js';
|
|
4
|
-
import { IndexerPanel } from '../panels/indexer-panel.js';
|
|
5
|
-
import { ProofPanel } from '../panels/proof-panel.js';
|
|
6
|
-
import { WalletPanel } from '../panels/wallet-panel.js';
|
|
7
|
-
import { LogPanel } from '../panels/log-panel.js';
|
|
8
|
-
export function MediumLayout({ data }) {
|
|
9
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "50%", children: _jsx(NodePanel, { data: data.node, loading: data.nodeLoading, focused: data.focusedPanel === 'node' }) }), _jsx(Box, { width: "50%", children: _jsx(ProofPanel, { data: data.proofServer, loading: data.proofServerLoading, focused: data.focusedPanel === 'proof' }) })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "50%", children: _jsx(IndexerPanel, { data: data.indexer, nodeBlock: data.node?.bestBlock ?? null, loading: data.indexerLoading, focused: data.focusedPanel === 'indexer' }) }), _jsx(Box, { width: "50%", children: _jsx(WalletPanel, { wallet: data.wallet, focused: data.focusedPanel === 'wallet' }) })] }), _jsx(LogPanel, { lines: data.logs.lines, filter: data.logs.filter, scrollOffset: data.logs.scrollOffset, maxLines: Math.max(5, data.rows - 16), focused: data.focusedPanel === 'logs', searchMode: data.searchMode, searchText: data.searchText })] }));
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=medium.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"medium.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/layouts/medium.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOlD,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAqB;IACtD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM,GAAI,GAC5F,EACN,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,OAAO,GAAI,GAC5G,IACF,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,GAAI,GACjJ,EACN,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,WAAW,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,QAAQ,GAAI,GACzE,IACF,EACN,KAAC,QAAQ,IACP,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EACxB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EACrC,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM,EACrC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,GAC3B,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box } from 'ink';
|
|
3
|
-
import { NodePanel } from '../panels/node-panel.js';
|
|
4
|
-
import { IndexerPanel } from '../panels/indexer-panel.js';
|
|
5
|
-
import { ProofPanel } from '../panels/proof-panel.js';
|
|
6
|
-
import { WalletPanel } from '../panels/wallet-panel.js';
|
|
7
|
-
import { LogPanel } from '../panels/log-panel.js';
|
|
8
|
-
export function SmallLayout({ data }) {
|
|
9
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(NodePanel, { data: data.node, loading: data.nodeLoading, compact: true }), _jsx(IndexerPanel, { data: data.indexer, nodeBlock: data.node?.bestBlock ?? null, loading: data.indexerLoading, compact: true }), _jsx(ProofPanel, { data: data.proofServer, loading: data.proofServerLoading, compact: true }), _jsx(WalletPanel, { wallet: data.wallet, compact: true }), _jsx(LogPanel, { lines: data.logs.lines, filter: data.logs.filter, scrollOffset: data.logs.scrollOffset, maxLines: data.rows - 10, focused: data.focusedPanel === 'logs', searchMode: data.searchMode, searchText: data.searchText })] }));
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=small.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"small.js","sourceRoot":"","sources":["../../../../src/cli/dashboard/layouts/small.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOlD,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAoB;IACpD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,SAAG,EACjE,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,SAAG,EACnH,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,SAAG,EAChF,KAAC,WAAW,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,SAAG,EAC5C,KAAC,QAAQ,IACP,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EACxB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EACpC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,EACxB,OAAO,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM,EACrC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,GAC3B,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { IndexerInfo } from '../hooks/use-indexer-info.js';
|
|
3
|
-
interface IndexerPanelProps {
|
|
4
|
-
data: IndexerInfo | null;
|
|
5
|
-
nodeBlock: number | null;
|
|
6
|
-
loading: boolean;
|
|
7
|
-
focused?: boolean;
|
|
8
|
-
compact?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare function IndexerPanel({ data, nodeBlock, loading, focused, compact }: IndexerPanelProps): React.ReactElement;
|
|
11
|
-
export {};
|