@jinn-network/client 0.1.0 → 0.1.1-canary.4a6ed8b2
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 +98 -11
- package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +15 -0
- package/dist/adapters/claim-registry/abi.d.ts +127 -0
- package/dist/adapters/claim-registry/abi.js +93 -0
- package/dist/adapters/claim-registry/abi.js.map +1 -0
- package/dist/adapters/claim-registry/client.d.ts +89 -0
- package/dist/adapters/claim-registry/client.js +205 -0
- package/dist/adapters/claim-registry/client.js.map +1 -0
- package/dist/adapters/mech/adapter.d.ts +2 -0
- package/dist/adapters/mech/adapter.js +110 -41
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +2 -0
- package/dist/adapters/mech/contracts.js +32 -7
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/ipfs.d.ts +8 -0
- package/dist/adapters/mech/ipfs.js +12 -0
- package/dist/adapters/mech/ipfs.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +20 -46
- package/dist/adapters/mech/types.js +16 -35
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/api/gather-status.js +11 -0
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +81 -0
- package/dist/api/portfolio-v0-build.js +141 -0
- package/dist/api/portfolio-v0-build.js.map +1 -0
- package/dist/api/portfolio-v0-doctor.d.ts +37 -0
- package/dist/api/portfolio-v0-doctor.js +123 -0
- package/dist/api/portfolio-v0-doctor.js.map +1 -0
- package/dist/api/server.js +12 -0
- package/dist/api/server.js.map +1 -1
- package/dist/api/status-build.d.ts +6 -0
- package/dist/api/status-build.js +1 -0
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +4 -0
- package/dist/api/status-rollup-build.js +4 -0
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/bin/jinn-mcp.d.ts +14 -0
- package/dist/bin/jinn-mcp.js +19 -0
- package/dist/bin/jinn-mcp.js.map +1 -0
- package/dist/build-meta.json +1 -1
- package/dist/cli/commands/auth.d.ts +3 -0
- package/dist/cli/commands/auth.js +236 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/bootstrap.js +1 -0
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/doctor.js +148 -15
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/fund-requirements.js +69 -1
- package/dist/cli/commands/fund-requirements.js.map +1 -1
- package/dist/cli/commands/history.js +1 -0
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/init.js +31 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/keys-backup.js +142 -10
- package/dist/cli/commands/keys-backup.js.map +1 -1
- package/dist/cli/commands/logs.js +28 -13
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/plugin-install.d.ts +3 -0
- package/dist/cli/commands/plugin-install.js +799 -0
- package/dist/cli/commands/plugin-install.js.map +1 -0
- package/dist/cli/commands/quickstart.d.ts +3 -0
- package/dist/cli/commands/quickstart.js +236 -0
- package/dist/cli/commands/quickstart.js.map +1 -0
- package/dist/cli/commands/run.js +6 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/stop.js +1 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/submit-intent.js +79 -5
- package/dist/cli/commands/submit-intent.js.map +1 -1
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.js +154 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/version.js +15 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/deployment-digest.js +20 -4
- package/dist/cli/deployment-digest.js.map +1 -1
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/password.d.ts +15 -0
- package/dist/cli/password.js +29 -1
- package/dist/cli/password.js.map +1 -1
- package/dist/config.d.ts +110 -7
- package/dist/config.js +38 -5
- package/dist/config.js.map +1 -1
- package/dist/daemon/balance-topup-loop.d.ts +40 -0
- package/dist/daemon/balance-topup-loop.js +96 -0
- package/dist/daemon/balance-topup-loop.js.map +1 -0
- package/dist/daemon/daemon.d.ts +37 -0
- package/dist/daemon/daemon.js +98 -1
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/dashboard/index.html +500 -0
- package/dist/earning/bootstrap.d.ts +3 -1
- package/dist/earning/bootstrap.js +138 -17
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +24 -0
- package/dist/earning/contracts.js +20 -1
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/faucet.d.ts +15 -0
- package/dist/earning/faucet.js +64 -0
- package/dist/earning/faucet.js.map +1 -0
- package/dist/earning/store.d.ts +5 -0
- package/dist/earning/store.js +7 -3
- package/dist/earning/store.js.map +1 -1
- package/dist/errors/unauthorized-account.d.ts +10 -0
- package/dist/errors/unauthorized-account.js +14 -0
- package/dist/errors/unauthorized-account.js.map +1 -0
- package/dist/main.js +128 -1
- package/dist/main.js.map +1 -1
- package/dist/mcp/operator-server.d.ts +34 -0
- package/dist/mcp/operator-server.js +219 -0
- package/dist/mcp/operator-server.js.map +1 -0
- package/dist/operator-errors.js +11 -0
- package/dist/operator-errors.js.map +1 -1
- package/dist/preflight/claude-auth.d.ts +68 -0
- package/dist/preflight/claude-auth.js +171 -0
- package/dist/preflight/claude-auth.js.map +1 -0
- package/dist/restorer/engine/canonical-json.d.ts +18 -0
- package/dist/restorer/engine/canonical-json.js +59 -0
- package/dist/restorer/engine/canonical-json.js.map +1 -0
- package/dist/restorer/engine/claim.d.ts +69 -0
- package/dist/restorer/engine/claim.js +104 -0
- package/dist/restorer/engine/claim.js.map +1 -0
- package/dist/restorer/engine/delivery.d.ts +52 -0
- package/dist/restorer/engine/delivery.js +63 -0
- package/dist/restorer/engine/delivery.js.map +1 -0
- package/dist/restorer/engine/engine.d.ts +203 -0
- package/dist/restorer/engine/engine.js +658 -0
- package/dist/restorer/engine/engine.js.map +1 -0
- package/dist/restorer/engine/manifest-assembly.d.ts +67 -0
- package/dist/restorer/engine/manifest-assembly.js +79 -0
- package/dist/restorer/engine/manifest-assembly.js.map +1 -0
- package/dist/restorer/engine/packaging.d.ts +87 -0
- package/dist/restorer/engine/packaging.js +350 -0
- package/dist/restorer/engine/packaging.js.map +1 -0
- package/dist/restorer/engine/persistence.d.ts +170 -0
- package/dist/restorer/engine/persistence.js +381 -0
- package/dist/restorer/engine/persistence.js.map +1 -0
- package/dist/restorer/engine/recovery.d.ts +22 -0
- package/dist/restorer/engine/recovery.js +24 -0
- package/dist/restorer/engine/recovery.js.map +1 -0
- package/dist/restorer/engine/registry.d.ts +62 -0
- package/dist/restorer/engine/registry.js +73 -0
- package/dist/restorer/engine/registry.js.map +1 -0
- package/dist/restorer/engine/signing.d.ts +30 -0
- package/dist/restorer/engine/signing.js +39 -0
- package/dist/restorer/engine/signing.js.map +1 -0
- package/dist/restorer/engine/state.d.ts +42 -0
- package/dist/restorer/engine/state.js +87 -0
- package/dist/restorer/engine/state.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js +96 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +88 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +560 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +137 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js +865 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.d.ts +74 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js +74 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +97 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +226 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
- package/dist/restorer/impls/legacy-claude/index.d.ts +42 -0
- package/dist/restorer/impls/legacy-claude/index.js +60 -0
- package/dist/restorer/impls/legacy-claude/index.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.d.ts +49 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js +91 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +43 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js +431 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.d.ts +21 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.js +32 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +32 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.js +8 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +26 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.js +82 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +8 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js +41 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.js +2 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js +66 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js +23 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js +13 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +7 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +74 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js +20 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +33 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.js +179 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.d.ts +8 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.js +15 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.js +2 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/types.d.ts +62 -0
- package/dist/restorer/types.js +7 -0
- package/dist/restorer/types.js.map +1 -0
- package/dist/runner/claude.js +15 -0
- package/dist/runner/claude.js.map +1 -1
- package/dist/store/store.d.ts +3 -1
- package/dist/store/store.js +8 -0
- package/dist/store/store.js.map +1 -1
- package/dist/tx-retry.js +11 -1
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/desired-state.d.ts +53 -0
- package/dist/types/desired-state.js +20 -0
- package/dist/types/desired-state.js.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/portfolio.d.ts +1000 -0
- package/dist/types/portfolio.js +168 -0
- package/dist/types/portfolio.js.map +1 -0
- package/dist/types/prediction.d.ts +751 -0
- package/dist/types/prediction.js +128 -0
- package/dist/types/prediction.js.map +1 -0
- package/dist/venues/chainlink/client.d.ts +99 -0
- package/dist/venues/chainlink/client.js +130 -0
- package/dist/venues/chainlink/client.js.map +1 -0
- package/dist/venues/chainlink/feeds.d.ts +8 -0
- package/dist/venues/chainlink/feeds.js +9 -0
- package/dist/venues/chainlink/feeds.js.map +1 -0
- package/dist/venues/hyperliquid/account-value.d.ts +30 -0
- package/dist/venues/hyperliquid/account-value.js +30 -0
- package/dist/venues/hyperliquid/account-value.js.map +1 -0
- package/dist/venues/hyperliquid/client.d.ts +63 -0
- package/dist/venues/hyperliquid/client.js +135 -0
- package/dist/venues/hyperliquid/client.js.map +1 -0
- package/dist/venues/hyperliquid/grid.d.ts +36 -0
- package/dist/venues/hyperliquid/grid.js +61 -0
- package/dist/venues/hyperliquid/grid.js.map +1 -0
- package/dist/venues/hyperliquid/types.d.ts +81 -0
- package/dist/venues/hyperliquid/types.js +8 -0
- package/dist/venues/hyperliquid/types.js.map +1 -0
- package/package.json +18 -3
- package/skills/jinn-operator/SKILL.md +213 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { isAbsolute, join } from 'node:path';
|
|
2
|
+
import { dirname, isAbsolute, join } from 'node:path';
|
|
3
3
|
import { parseArgs } from 'node:util';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { createPublicClient, http } from 'viem';
|
|
6
|
+
import { baseSepolia } from 'viem/chains';
|
|
4
7
|
import { COMMON_FLAGS } from '../command.js';
|
|
5
8
|
import { emitResult } from '../output.js';
|
|
6
9
|
import { emitEnvelope } from '../../errors/envelope.js';
|
|
7
10
|
import { checkClaudeBinary } from '../../preflight/claude-binary.js';
|
|
11
|
+
import { detectAuthContext, probeClaudeAuth } from '../../preflight/claude-auth.js';
|
|
8
12
|
import { getConfigPathFromArgs, loadConfig } from '../../config.js';
|
|
9
|
-
import { getChainConfig } from '../../earning/contracts.js';
|
|
13
|
+
import { getChainConfig, ERC20_ABI } from '../../earning/contracts.js';
|
|
14
|
+
import { runPortfolioV0DoctorChecks } from '../../api/portfolio-v0-doctor.js';
|
|
15
|
+
import { mnemonicKeystorePath } from '../../earning/store.js';
|
|
10
16
|
async function checkNodeVersion() {
|
|
11
17
|
const version = process.versions.node;
|
|
12
18
|
const major = parseInt(version.split('.')[0], 10);
|
|
@@ -18,19 +24,19 @@ async function checkNodeVersion() {
|
|
|
18
24
|
...(ok ? {} : { remedy: 'Upgrade to Node.js 20 or newer.' }),
|
|
19
25
|
};
|
|
20
26
|
}
|
|
21
|
-
|
|
22
|
-
const keystorePath =
|
|
27
|
+
function checkKeystorePresent(earningDir) {
|
|
28
|
+
const keystorePath = mnemonicKeystorePath(earningDir);
|
|
23
29
|
if (existsSync(keystorePath)) {
|
|
24
30
|
return {
|
|
25
|
-
name: '
|
|
31
|
+
name: 'keystore_present',
|
|
26
32
|
ok: true,
|
|
27
|
-
detail:
|
|
33
|
+
detail: `mnemonic keystore present at ${keystorePath}`,
|
|
28
34
|
};
|
|
29
35
|
}
|
|
30
36
|
return {
|
|
31
|
-
name: '
|
|
32
|
-
ok: true, // Missing is fine before `jinn init`;
|
|
33
|
-
detail: 'no keystore yet
|
|
37
|
+
name: 'keystore_present',
|
|
38
|
+
ok: true, // Missing is fine before `jinn init`; `jinn run` / `bootstrap` will create it.
|
|
39
|
+
detail: 'no keystore yet — run `jinn init` to create one',
|
|
34
40
|
};
|
|
35
41
|
}
|
|
36
42
|
async function checkDeploymentLoaded(config) {
|
|
@@ -83,6 +89,105 @@ function claudeBinaryCheckForDoctor(claudePath, result) {
|
|
|
83
89
|
}),
|
|
84
90
|
};
|
|
85
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Verify the daemon can spawn its HL MCP subprocess. The generated
|
|
94
|
+
* `hl-server.mjs` wrapper imports `mcp-tools.js` by absolute path and is
|
|
95
|
+
* loaded by plain Node — so the compiled artifact MUST exist on disk
|
|
96
|
+
* before `jinn run` spawns any Claude session. Without this check, the
|
|
97
|
+
* operator hits a silent "Claude didn't call any tools" symptom.
|
|
98
|
+
*/
|
|
99
|
+
function checkDaemonRuntimeReady() {
|
|
100
|
+
// doctor.ts compiles to dist/cli/commands/doctor.js → package root is 3 levels up.
|
|
101
|
+
// Under tsx (dev), __dirname is src/cli/commands; the check then looks for a sibling
|
|
102
|
+
// built artifact under dist/, which will only exist after `yarn build`.
|
|
103
|
+
const thisDir = dirname(fileURLToPath(import.meta.url));
|
|
104
|
+
const mcpToolsJsDist = join(thisDir, '..', '..', 'restorer', 'impls', 'claude-mcp-hyperliquid', 'mcp-tools.js');
|
|
105
|
+
if (existsSync(mcpToolsJsDist)) {
|
|
106
|
+
return {
|
|
107
|
+
name: 'daemon_runtime_ready',
|
|
108
|
+
ok: true,
|
|
109
|
+
detail: `compiled MCP tool module present at ${mcpToolsJsDist}`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
name: 'daemon_runtime_ready',
|
|
114
|
+
ok: false,
|
|
115
|
+
detail: `compiled MCP tool module missing (expected ${mcpToolsJsDist})`,
|
|
116
|
+
remedy: 'The daemon must run from a compiled build. Run `yarn build` before `yarn dev` / `node dist/bin/jinn.js run`, ' +
|
|
117
|
+
'or reinstall the npm package with `npm install -g @jinn-network/client@latest`.',
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* On testnet, warn if the stOLAS distributor pool is drained. Operators can
|
|
122
|
+
* neither fix this themselves nor bootstrap past it — the protocol team has
|
|
123
|
+
* to refill (see contracts/scripts/README-jinn-testnet-faucet.md). Emitted
|
|
124
|
+
* as a warning, not a hard failure, because a refill may be in-flight.
|
|
125
|
+
*/
|
|
126
|
+
async function checkDistributorReachable(config) {
|
|
127
|
+
if (config.network !== 'testnet')
|
|
128
|
+
return null;
|
|
129
|
+
try {
|
|
130
|
+
const cfg = getChainConfig('base-sepolia', {
|
|
131
|
+
testnetL2DeploymentPath: config.testnetL2DeploymentPath,
|
|
132
|
+
testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
|
|
133
|
+
testnetMechDeploymentPath: config.testnetMechDeploymentPath,
|
|
134
|
+
testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
|
|
135
|
+
});
|
|
136
|
+
if (!cfg.distributorAddress) {
|
|
137
|
+
return {
|
|
138
|
+
name: 'distributor_reachable',
|
|
139
|
+
ok: true,
|
|
140
|
+
detail: 'distributor address not configured (standard mode staking disabled)',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const client = createPublicClient({ chain: baseSepolia, transport: http(cfg.rpcUrl) });
|
|
144
|
+
const balance = await client.readContract({
|
|
145
|
+
address: cfg.olasToken,
|
|
146
|
+
abi: ERC20_ABI,
|
|
147
|
+
functionName: 'balanceOf',
|
|
148
|
+
args: [cfg.distributorAddress],
|
|
149
|
+
});
|
|
150
|
+
const floor = cfg.bondAmount * 2n;
|
|
151
|
+
const jinn = Number(balance) / 1e18;
|
|
152
|
+
const required = Number(floor) / 1e18;
|
|
153
|
+
if (balance < floor) {
|
|
154
|
+
return {
|
|
155
|
+
name: 'distributor_reachable',
|
|
156
|
+
ok: false,
|
|
157
|
+
detail: `testnet staking pool is drained — distributor holds ${jinn.toFixed(2)} JINN, need ≥${required.toFixed(2)} per service`,
|
|
158
|
+
remedy: 'Protocol-team action required (operators cannot fix this locally). ' +
|
|
159
|
+
'Report the outage to the Jinn testnet channel; bootstrap will keep failing with `Overflow` until the pool is topped up.',
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
name: 'distributor_reachable',
|
|
164
|
+
ok: true,
|
|
165
|
+
detail: `distributor holds ${jinn.toFixed(2)} JINN (${Math.floor(jinn / required)} services of runway)`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
return {
|
|
170
|
+
name: 'distributor_reachable',
|
|
171
|
+
ok: true, // Non-fatal — probe failure doesn't mean the pool is empty.
|
|
172
|
+
detail: `distributor probe failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async function checkClaudeAuth(config) {
|
|
177
|
+
const cwd = process.cwd();
|
|
178
|
+
const context = detectAuthContext({ cwd, configuredMode: config.runtimeMode });
|
|
179
|
+
const probe = probeClaudeAuth({ context, cwd });
|
|
180
|
+
return {
|
|
181
|
+
name: 'claude_auth',
|
|
182
|
+
ok: probe.authenticated,
|
|
183
|
+
detail: probe.authenticated
|
|
184
|
+
? `${probe.detail} (${context})`
|
|
185
|
+
: `Not authenticated (${context})`,
|
|
186
|
+
...(probe.authenticated
|
|
187
|
+
? {}
|
|
188
|
+
: { remedy: 'Run `jinn auth` to authenticate Claude.' }),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
86
191
|
async function run(ctx) {
|
|
87
192
|
let parsed;
|
|
88
193
|
try {
|
|
@@ -107,8 +212,20 @@ async function run(ctx) {
|
|
|
107
212
|
checks.push(await checkNodeVersion());
|
|
108
213
|
const claudeResult = await checkClaudeBinary(config.claudePath);
|
|
109
214
|
checks.push(claudeBinaryCheckForDoctor(config.claudePath, claudeResult));
|
|
110
|
-
checks.push(await
|
|
215
|
+
checks.push(await checkClaudeAuth(config));
|
|
216
|
+
checks.push(checkKeystorePresent(config.earningDir));
|
|
111
217
|
checks.push(await checkDeploymentLoaded(config));
|
|
218
|
+
checks.push(checkDaemonRuntimeReady());
|
|
219
|
+
const distributorCheck = await checkDistributorReachable(config);
|
|
220
|
+
if (distributorCheck)
|
|
221
|
+
checks.push(distributorCheck);
|
|
222
|
+
// portfolio.v0 checks — use the same implStateDirRoot that main.ts wires up.
|
|
223
|
+
// The daemon hardcodes /tmp/jinn-engine-impl-state; the per-impl dir appends
|
|
224
|
+
// the impl name (claude-mcp-hyperliquid).
|
|
225
|
+
const implStateDirRoot = '/tmp/jinn-engine-impl-state';
|
|
226
|
+
const hlImplStateDir = join(implStateDirRoot, 'claude-mcp-hyperliquid');
|
|
227
|
+
const portfolioChecks = runPortfolioV0DoctorChecks(hlImplStateDir);
|
|
228
|
+
checks.push(...portfolioChecks);
|
|
112
229
|
const blockingCount = checks.filter((c) => !c.ok).length;
|
|
113
230
|
const payload = {
|
|
114
231
|
schemaVersion: 1,
|
|
@@ -117,7 +234,7 @@ async function run(ctx) {
|
|
|
117
234
|
ok: blockingCount === 0,
|
|
118
235
|
blockingCount,
|
|
119
236
|
};
|
|
120
|
-
emitResult(payload, (v) =>
|
|
237
|
+
emitResult(payload, (v) => humanDoctor(v), {
|
|
121
238
|
json: Boolean(parsed.values.json),
|
|
122
239
|
human: Boolean(parsed.values.human),
|
|
123
240
|
writer: ctx.writer,
|
|
@@ -125,6 +242,19 @@ async function run(ctx) {
|
|
|
125
242
|
noColor: Boolean(ctx.env['NO_COLOR']),
|
|
126
243
|
});
|
|
127
244
|
}
|
|
245
|
+
function humanDoctor(payload) {
|
|
246
|
+
const lines = [];
|
|
247
|
+
for (const check of payload.checks) {
|
|
248
|
+
const mark = check.ok ? 'ok ' : 'fail';
|
|
249
|
+
lines.push(`[${mark}] ${check.name}: ${check.detail}`);
|
|
250
|
+
if (check.remedy)
|
|
251
|
+
lines.push(` remedy: ${check.remedy}`);
|
|
252
|
+
}
|
|
253
|
+
lines.push(payload.ok
|
|
254
|
+
? 'Summary: all checks passed.'
|
|
255
|
+
: `Summary: ${payload.blockingCount} blocking check(s) failed.`);
|
|
256
|
+
return lines.join('\n');
|
|
257
|
+
}
|
|
128
258
|
const command = {
|
|
129
259
|
name: 'doctor',
|
|
130
260
|
summary: 'Preflight checks: answers "would jinn run work?" without running it',
|
|
@@ -132,10 +262,13 @@ const command = {
|
|
|
132
262
|
|
|
133
263
|
Runs a set of non-mutating checks against the local environment and
|
|
134
264
|
configuration:
|
|
135
|
-
- node_version
|
|
136
|
-
- claude_binary
|
|
137
|
-
-
|
|
138
|
-
-
|
|
265
|
+
- node_version Node.js >= 20
|
|
266
|
+
- claude_binary claude CLI resolvable on PATH
|
|
267
|
+
- claude_auth Claude CLI authenticated
|
|
268
|
+
- keystore_present mnemonic keystore in configured earning directory (optional)
|
|
269
|
+
- deployment_loaded testnet/mainnet contract addresses resolved
|
|
270
|
+
- portfolio_impl_state_dir HL impl state directory present and readable
|
|
271
|
+
- hl_api_wallet HL API wallet generated and approved by operator
|
|
139
272
|
|
|
140
273
|
By default, emits a machine-readable JSON object with a checks array,
|
|
141
274
|
an overall ok flag, and a blockingCount. Exit code is 0 even when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,34 @@
|
|
|
1
|
+
import { createPublicClient, formatUnits, http } from 'viem';
|
|
2
|
+
import { base, baseSepolia } from 'viem/chains';
|
|
1
3
|
import { COMMON_FLAGS, parseCommandArgs } from '../command.js';
|
|
2
4
|
import { emitResult } from '../output.js';
|
|
3
5
|
import { emitEnvelope } from '../../errors/envelope.js';
|
|
4
6
|
import { loadConfig } from '../../config.js';
|
|
5
7
|
import { FleetBootstrapper } from '../../earning/bootstrap.js';
|
|
8
|
+
import { getChainConfig } from '../../earning/contracts.js';
|
|
6
9
|
import { resolveCliPassword } from '../password.js';
|
|
7
10
|
/** §6.2 — `stack` only when `JINN_DEBUG=1` (exact string). */
|
|
8
11
|
function envelopeDebug(env) {
|
|
9
12
|
return env['JINN_DEBUG'] === '1';
|
|
10
13
|
}
|
|
14
|
+
function formatAmount(wei, symbol) {
|
|
15
|
+
try {
|
|
16
|
+
// All three asset roles (native, bond, reward) use 18 decimals in Phase 1b.
|
|
17
|
+
return `${formatUnits(BigInt(wei), 18)} ${symbol}`;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return `${wei} wei (${symbol})`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
11
23
|
function humanFundRequirements(payload) {
|
|
12
24
|
if (payload.satisfied) {
|
|
13
25
|
return 'Funding requirements satisfied. Nothing needed right now.';
|
|
14
26
|
}
|
|
15
27
|
const lines = ['Funding required before bootstrap can advance:'];
|
|
16
28
|
for (const r of payload.requirements) {
|
|
17
|
-
|
|
29
|
+
const need = formatAmount(r.needWei, r.details.tokenSymbol);
|
|
30
|
+
const have = formatAmount(r.haveWei, r.details.tokenSymbol);
|
|
31
|
+
lines.push(`- ${r.role} @ ${r.address}: need ${need}, have ${have}`);
|
|
18
32
|
}
|
|
19
33
|
return lines.join('\n');
|
|
20
34
|
}
|
|
@@ -100,6 +114,60 @@ async function run(ctx) {
|
|
|
100
114
|
details: { tokenAddress: null, tokenSymbol: 'ETH' },
|
|
101
115
|
});
|
|
102
116
|
}
|
|
117
|
+
else {
|
|
118
|
+
// Bootstrap is satisfied. Still probe per-Safe native ETH: the daemon's
|
|
119
|
+
// balance-topup-loop auto-tops from master at runtime, but operators
|
|
120
|
+
// running in tooling contexts (acceptance gate, CI, bare `submit-intent`)
|
|
121
|
+
// hit the mech-fee path before any topup tick fires. A Safe that holds
|
|
122
|
+
// less than the per-service `minSafeEth` threshold will silently fail on
|
|
123
|
+
// `createEvaluationJob`, wrapped as `GS013` at the Safe layer — surface
|
|
124
|
+
// it here so ops see the gap before running.
|
|
125
|
+
const chainKey = config.network === 'testnet' ? 'base-sepolia' : 'base';
|
|
126
|
+
const chainCfg = getChainConfig(chainKey, {
|
|
127
|
+
testnetL2DeploymentPath: config.testnetL2DeploymentPath,
|
|
128
|
+
testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
|
|
129
|
+
testnetMechDeploymentPath: config.testnetMechDeploymentPath,
|
|
130
|
+
testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
|
|
131
|
+
});
|
|
132
|
+
const viemChain = chainKey === 'base' ? base : baseSepolia;
|
|
133
|
+
const publicClient = createPublicClient({
|
|
134
|
+
chain: viemChain,
|
|
135
|
+
transport: http(config.rpcUrl),
|
|
136
|
+
});
|
|
137
|
+
const probeRows = await Promise.all(result.fleet_state.services
|
|
138
|
+
.filter(svc => svc.step === 'complete' && svc.safe_address)
|
|
139
|
+
.map(async (svc) => {
|
|
140
|
+
const address = svc.safe_address;
|
|
141
|
+
try {
|
|
142
|
+
const bal = await publicClient.getBalance({ address: address });
|
|
143
|
+
if (bal >= chainCfg.minSafeEth)
|
|
144
|
+
return null;
|
|
145
|
+
return {
|
|
146
|
+
role: `service_${svc.index}_safe`,
|
|
147
|
+
address,
|
|
148
|
+
asset: 'native',
|
|
149
|
+
haveWei: bal.toString(),
|
|
150
|
+
needWei: (chainCfg.minSafeEth - bal).toString(),
|
|
151
|
+
reason: `Service ${svc.index} Safe needs native ETH to pay mech fees (each evaluation job sends 99 wei). ` +
|
|
152
|
+
`The daemon's balance-topup-loop auto-refills from master at runtime; funding it manually is ` +
|
|
153
|
+
`required only when running CLI verbs (submit-intent, acceptance gate) outside the daemon.`,
|
|
154
|
+
blocks: 'run',
|
|
155
|
+
details: { tokenAddress: null, tokenSymbol: 'ETH' },
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
// Probe failures are not a funding gap on their own; emit a warning
|
|
160
|
+
// so operators can distinguish "Safe OK" from "couldn't tell".
|
|
161
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
162
|
+
process.stderr.write(`[warn] fund-requirements: failed to probe Safe ${address} for service ${svc.index}: ${message}\n`);
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
}));
|
|
166
|
+
for (const row of probeRows) {
|
|
167
|
+
if (row)
|
|
168
|
+
requirements.push(row);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
103
171
|
const payload = {
|
|
104
172
|
schemaVersion: 1,
|
|
105
173
|
generatedAt: new Date().toISOString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fund-requirements.js","sourceRoot":"","sources":["../../../src/cli/commands/fund-requirements.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fund-requirements.js","sourceRoot":"","sources":["../../../src/cli/commands/fund-requirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/cli/commands/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,KAAK,UAAU,GAAG,CAAC,GAAmB;IACpC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;gBACxC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBACzC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/cli/commands/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,KAAK,UAAU,GAAG,CAAC,GAAmB;IACpC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;gBACxC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBACzC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B;YACD,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CACV;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACzD,UAAU,EAAE,yBAAyB;YACrC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5B,EACD,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CACvC,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE;QACrC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAA2B;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAA4B;KACnD,CAAC,CAAC;IACH,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACrD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAAkB;IAC7B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,8EAA8E;IACvF,QAAQ,EAAE;;;;;;;;;CASX;IACC,GAAG;CACJ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { parseArgs } from 'node:util';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { COMMON_FLAGS } from '../command.js';
|
|
3
4
|
import { emitResult } from '../output.js';
|
|
4
5
|
import { emitEnvelope } from '../../errors/envelope.js';
|
|
6
|
+
import { loadConfig, getConfigPathFromArgs } from '../../config.js';
|
|
5
7
|
import { FleetStateStore } from '../../earning/store.js';
|
|
6
8
|
import { generateMnemonic, encryptMnemonic, decryptMnemonic, deriveMasterAddress, } from '../../earning/wallet.js';
|
|
7
9
|
import { resolveCliPassword } from '../password.js';
|
|
@@ -10,11 +12,7 @@ async function run(ctx) {
|
|
|
10
12
|
try {
|
|
11
13
|
parsed = parseArgs({
|
|
12
14
|
args: ctx.argv,
|
|
13
|
-
options: {
|
|
14
|
-
json: { type: 'boolean', default: false },
|
|
15
|
-
human: { type: 'boolean', default: false },
|
|
16
|
-
'password-fd': { type: 'string' },
|
|
17
|
-
},
|
|
15
|
+
options: { ...COMMON_FLAGS },
|
|
18
16
|
allowPositionals: false,
|
|
19
17
|
});
|
|
20
18
|
}
|
|
@@ -37,7 +35,20 @@ async function run(ctx) {
|
|
|
37
35
|
}, { writer: ctx.writer, exit: ctx.exit });
|
|
38
36
|
return;
|
|
39
37
|
}
|
|
40
|
-
const
|
|
38
|
+
const configPath = getConfigPathFromArgs(ctx.argv) ?? getConfigPathFromArgs(process.argv.slice(2));
|
|
39
|
+
let configEarningDir;
|
|
40
|
+
let configNetwork;
|
|
41
|
+
try {
|
|
42
|
+
const cfg = loadConfig(configPath);
|
|
43
|
+
configEarningDir = cfg.earningDir;
|
|
44
|
+
configNetwork = cfg.network;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Config file is optional; fall back to env var / default below.
|
|
48
|
+
}
|
|
49
|
+
const earningDir = ctx.env['JINN_EARNING_DIR'] ??
|
|
50
|
+
configEarningDir ??
|
|
51
|
+
join(process.env['HOME'] ?? '.', '.jinn-client', 'earning');
|
|
41
52
|
const store = new FleetStateStore(earningDir);
|
|
42
53
|
if (!store.hasMnemonicKeystore() && store.hasLegacyKeystore()) {
|
|
43
54
|
await store.migrateLegacyFiles();
|
|
@@ -53,14 +64,27 @@ async function run(ctx) {
|
|
|
53
64
|
await store.saveMnemonicKeystore(keystore);
|
|
54
65
|
masterAddress = deriveMasterAddress(mnemonic);
|
|
55
66
|
}
|
|
67
|
+
// Persist master_address so downstream verbs (fund-requirements,
|
|
68
|
+
// bootstrap) hydrate from the existing wallet instead of rolling a
|
|
69
|
+
// fresh HD mnemonic.
|
|
70
|
+
const network = ctx.env['JINN_NETWORK'] ?? configNetwork ?? 'testnet';
|
|
71
|
+
const chain = network === 'mainnet' ? 'base' : 'base-sepolia';
|
|
72
|
+
await store.patchFleet({ master_address: masterAddress, chain });
|
|
56
73
|
emitResult({
|
|
57
74
|
schemaVersion: 1,
|
|
58
75
|
generatedAt: new Date().toISOString(),
|
|
59
76
|
master: masterAddress,
|
|
60
77
|
keystoreDir: earningDir,
|
|
78
|
+
nextStep: {
|
|
79
|
+
cli: 'jinn fund-requirements',
|
|
80
|
+
purpose: 'List addresses that need funding before bootstrap can advance.',
|
|
81
|
+
},
|
|
61
82
|
}, (v) => {
|
|
62
83
|
const value = v;
|
|
63
|
-
return `Keystore ready.\nMaster: ${value.master}\nDirectory: ${value.keystoreDir}
|
|
84
|
+
return (`Keystore ready.\nMaster: ${value.master}\nDirectory: ${value.keystoreDir}\n` +
|
|
85
|
+
`Next: ${value.nextStep.cli}\n` +
|
|
86
|
+
`Backup: your JINN_PASSWORD and the mnemonic in this keystore are the only way to recover this wallet. ` +
|
|
87
|
+
`Run \`jinn keys backup\` to export the mnemonic.`);
|
|
64
88
|
}, {
|
|
65
89
|
json: Boolean(parsed.values.json),
|
|
66
90
|
human: Boolean(parsed.values.human),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,KAAK,UAAU,GAAG,CAAC,GAAmB;IACpC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|