@certen.io/cli 0.5.0 → 0.7.1

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.
Files changed (87) hide show
  1. package/CHANGELOG.md +431 -0
  2. package/README.md +232 -160
  3. package/dist/chains.d.ts +67 -0
  4. package/dist/chains.js +242 -0
  5. package/dist/chains.js.map +1 -0
  6. package/dist/commands/admin.js +49 -4
  7. package/dist/commands/admin.js.map +1 -1
  8. package/dist/commands/auth.js +145 -12
  9. package/dist/commands/auth.js.map +1 -1
  10. package/dist/commands/billing.js +648 -40
  11. package/dist/commands/billing.js.map +1 -1
  12. package/dist/commands/call.d.ts +2 -0
  13. package/dist/commands/call.js +168 -0
  14. package/dist/commands/call.js.map +1 -0
  15. package/dist/commands/chains.d.ts +2 -0
  16. package/dist/commands/chains.js +123 -0
  17. package/dist/commands/chains.js.map +1 -0
  18. package/dist/commands/doctor.d.ts +2 -0
  19. package/dist/commands/doctor.js +171 -0
  20. package/dist/commands/doctor.js.map +1 -0
  21. package/dist/commands/errors-catalogue.d.ts +2 -0
  22. package/dist/commands/errors-catalogue.js +83 -0
  23. package/dist/commands/errors-catalogue.js.map +1 -0
  24. package/dist/commands/identity.js +269 -19
  25. package/dist/commands/identity.js.map +1 -1
  26. package/dist/commands/init.d.ts +2 -0
  27. package/dist/commands/init.js +307 -0
  28. package/dist/commands/init.js.map +1 -0
  29. package/dist/commands/keys.js +2 -0
  30. package/dist/commands/keys.js.map +1 -1
  31. package/dist/commands/oauth-clients.d.ts +2 -0
  32. package/dist/commands/oauth-clients.js +131 -0
  33. package/dist/commands/oauth-clients.js.map +1 -0
  34. package/dist/commands/orgs.d.ts +2 -0
  35. package/dist/commands/orgs.js +117 -0
  36. package/dist/commands/orgs.js.map +1 -0
  37. package/dist/commands/pending.d.ts +19 -0
  38. package/dist/commands/pending.js +117 -15
  39. package/dist/commands/pending.js.map +1 -1
  40. package/dist/commands/portfolio.js +34 -1
  41. package/dist/commands/portfolio.js.map +1 -1
  42. package/dist/commands/proof.d.ts +2 -0
  43. package/dist/commands/proof.js +400 -0
  44. package/dist/commands/proof.js.map +1 -0
  45. package/dist/commands/signup.d.ts +14 -0
  46. package/dist/commands/signup.js +271 -0
  47. package/dist/commands/signup.js.map +1 -0
  48. package/dist/commands/transaction.js +139 -21
  49. package/dist/commands/transaction.js.map +1 -1
  50. package/dist/commands/webhooks.d.ts +2 -0
  51. package/dist/commands/webhooks.js +200 -0
  52. package/dist/commands/webhooks.js.map +1 -0
  53. package/dist/commands/whoami.d.ts +16 -0
  54. package/dist/commands/whoami.js +98 -0
  55. package/dist/commands/whoami.js.map +1 -0
  56. package/dist/config.d.ts +56 -0
  57. package/dist/config.js +51 -0
  58. package/dist/config.js.map +1 -1
  59. package/dist/errors.d.ts +14 -1
  60. package/dist/errors.js +15 -1
  61. package/dist/errors.js.map +1 -1
  62. package/dist/funding-guard.d.ts +40 -0
  63. package/dist/funding-guard.js +120 -0
  64. package/dist/funding-guard.js.map +1 -0
  65. package/dist/help-root.d.ts +2 -0
  66. package/dist/help-root.js +94 -0
  67. package/dist/help-root.js.map +1 -0
  68. package/dist/index.js +27 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/output.d.ts +23 -0
  71. package/dist/output.js +46 -0
  72. package/dist/output.js.map +1 -1
  73. package/dist/passphrase.d.ts +18 -0
  74. package/dist/passphrase.js +35 -3
  75. package/dist/passphrase.js.map +1 -1
  76. package/dist/payment-uri.d.ts +76 -0
  77. package/dist/payment-uri.js +135 -0
  78. package/dist/payment-uri.js.map +1 -0
  79. package/dist/signer.js +6 -3
  80. package/dist/signer.js.map +1 -1
  81. package/dist/solidity-args.d.ts +31 -0
  82. package/dist/solidity-args.js +111 -0
  83. package/dist/solidity-args.js.map +1 -0
  84. package/dist/wait.d.ts +79 -0
  85. package/dist/wait.js +168 -0
  86. package/dist/wait.js.map +1 -0
  87. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerCallCommands(program: Command): void;
@@ -0,0 +1,168 @@
1
+ import { Option } from 'commander';
2
+ import { CertenClient } from '@certen.io/sdk';
3
+ import { getApiKey, getApiUrl } from '../config.js';
4
+ import { printOutput, hint, human, isJsonMode } from '../output.js';
5
+ import { CliError, UsageError, EXIT } from '../errors.js';
6
+ import { resolveSigner } from '../signer.js';
7
+ import { assertChain, normalizeChain, chainIdFor } from '../chains.js';
8
+ import { parseSignature, checkArgs } from '../solidity-args.js';
9
+ import { resolveWait, parseWaitBudget, waitForTransaction, TX_WAIT } from '../wait.js';
10
+ import { assertFundedForValue } from '../funding-guard.js';
11
+ /**
12
+ * `certen call` — a proof-gated contract call, as one command.
13
+ *
14
+ * `execute.contractCall` is the headline flow in `llms.txt` and had no CLI equivalent: the only
15
+ * route was hand-authoring intent JSON and passing `--intent @file`. That put the hardest artifact
16
+ * in the product behind the least support.
17
+ *
18
+ * The part that earns this command its existence is not the flags — it is resolving `adiUrl` and
19
+ * `fromAddress` from the identity. Both are REQUIRED by the upstream native path, both are
20
+ * dereferenced without a null check, and omitting either produces a **bodyless 502** that reads as
21
+ * "the gateway is down" rather than "you left out a field". Nobody should have to know that. The
22
+ * CLI holds the identity id already; it can look the two up.
23
+ */
24
+ async function getClient() {
25
+ return new CertenClient({ apiKey: await getApiKey(), baseUrl: getApiUrl() });
26
+ }
27
+ /** The abstract account for a chain, from whichever spelling of `chain_id` the gateway used. */
28
+ function abstractAccountFor(identity, chain) {
29
+ const want = normalizeChain(chain);
30
+ return (identity.chain_accounts ?? [])
31
+ .find((account) => normalizeChain(account.chain_id) === want && account.address)?.address;
32
+ }
33
+ export function registerCallCommands(program) {
34
+ program
35
+ .command('call')
36
+ .description('Authorize a proof-gated contract call')
37
+ .requiredOption('--identity <uuid>', 'Identity that authorizes the call')
38
+ .requiredOption('--chain <chain>', 'Chain the call executes on, e.g. base-sepolia')
39
+ .requiredOption('--to <address>', 'Contract to call')
40
+ .requiredOption('--fn <signature>', 'Solidity function signature, e.g. \'confirm(bytes32)\'')
41
+ .option('--arg <value...>', 'Argument values, in order. Repeat or pass several after one --arg')
42
+ .option('--value <wei>', 'Native wei to forward with the call (string)', '0')
43
+ .option('--sign-with <key>', 'Local key to sign with (see `certen keys generate`)')
44
+ .option('--signer-key-page <url>', 'Which key page signs, e.g. acc://org.acme/book/2')
45
+ .addOption(new Option('--proof-class <class>', 'When the proof runs')
46
+ .choices(['on_demand', 'on_cadence']))
47
+ .option('--from <address>', 'Override the abstract account (derived from the identity by default)')
48
+ .option('--adi-url <url>', 'Override the ADI URL (derived from the identity by default)')
49
+ .option('--chain-id <n>', 'Numeric EVM chain id (derived from the registry by default)', parseInt)
50
+ .option('--idempotency-key <key>', 'Idempotency key (one is generated if omitted)')
51
+ .option('--dry-run', 'Print the intent that would be sent, and send nothing')
52
+ .option('--wait', 'Wait for the proof cycle (default off with --json)')
53
+ .option('--no-wait', 'Return as soon as the signature is submitted')
54
+ .option('--timeout <minutes>', `How long to wait (default ${TX_WAIT.timeoutMin})`)
55
+ .option('--poll-interval <seconds>', `How often to check (default ${TX_WAIT.intervalSec})`)
56
+ .option('--force', 'Submit even if the abstract account has no gas to execute with')
57
+ .action(async (opts) => {
58
+ // Everything checkable without the network is checked first, so a typo costs a message
59
+ // rather than a round trip — and, with --sign-with, rather than a passphrase prompt too.
60
+ const chain = assertChain(opts.chain);
61
+ const signature = parseSignature(opts.fn);
62
+ const args = checkArgs(signature, opts.arg ?? []);
63
+ const wait = resolveWait();
64
+ const budget = parseWaitBudget(opts.timeout, opts.pollInterval, TX_WAIT);
65
+ if (!/^0x[0-9a-fA-F]{40}$/.test(opts.to)) {
66
+ throw new UsageError(`--to "${opts.to}" is not a contract address. Expected 0x followed by 40 hex characters.`, 'INVALID_ADDRESS');
67
+ }
68
+ if (!/^\d+$/.test(opts.value)) {
69
+ // Wei, as a string, always. A JS number loses precision past 2^53 and this is the field
70
+ // where that would move real value.
71
+ throw new UsageError(`--value "${opts.value}" must be a whole number of wei, as digits.`, 'INVALID_VALUE');
72
+ }
73
+ const client = await getClient();
74
+ // Resolve the identity BEFORE unlocking the signer: if the identity cannot sign, prompting
75
+ // for a passphrase first would be asking for a secret in order to fail.
76
+ // The response IS the identity now — it is no longer nested under an `identity` key.
77
+ // Only `balances` — this command reads `can_sign`, `adi_url`, `chain_accounts` and the
78
+ // per-chain balances (for the unfunded-account guard), and never touches `governance` or
79
+ // `pending`. Both of those are live fetches on the critical path of the flagship command:
80
+ // governance is a network round trip, pending a database read, and neither answer was used.
81
+ const identity = await client.identity.get(opts.identity, { include: ['balances'] });
82
+ if (identity.can_sign === false) {
83
+ throw new CliError(`Identity ${identity.adi_url} cannot sign — its key page is not held by your key. `
84
+ + 'This call would fail at the signing step.', 'IDENTITY_CANNOT_SIGN', EXIT.FAILED);
85
+ }
86
+ const adiUrl = opts.adiUrl ?? identity.adi_url;
87
+ // Derived, not demanded: naming the chain already said which numeric id it has, and making
88
+ // the caller repeat it in another form is a step that can only be got wrong.
89
+ const chainId = opts.chainId ?? chainIdFor(chain);
90
+ const fromAddress = opts.from ?? abstractAccountFor(identity, chain);
91
+ if (!fromAddress) {
92
+ // Naming the fix precisely: the identity exists, it simply has no account on this chain.
93
+ throw new CliError(`Identity ${identity.adi_url} has no abstract account on ${chain}, so it has no `
94
+ + 'msg.sender there. Link the chain first:\n'
95
+ + ` certen identity link-chain ${identity.id} --chain ${chain}`, 'NO_ABSTRACT_ACCOUNT', EXIT.FAILED);
96
+ }
97
+ const contractCall = {
98
+ target: opts.to,
99
+ functionSignature: signature.name + `(${signature.types.join(',')})`,
100
+ args,
101
+ value: opts.value,
102
+ };
103
+ if (opts.dryRun) {
104
+ // Also the documented starting point for `--intent @file.json`: someone who needs a
105
+ // multi-leg intent can take this, edit it, and pass it to `tx create`.
106
+ printOutput({
107
+ identity_id: opts.identity,
108
+ adi_url: adiUrl,
109
+ chain,
110
+ chain_id: chainId ?? null,
111
+ from_address: fromAddress,
112
+ contract_call: contractCall,
113
+ proof_class: opts.proofClass ?? null,
114
+ });
115
+ if (!isJsonMode()) {
116
+ hint('');
117
+ hint('Nothing was sent. Drop --dry-run to authorize this call.');
118
+ }
119
+ return;
120
+ }
121
+ if (!opts.signWith) {
122
+ throw new UsageError('Nothing would sign this call. Pass --sign-with <key>, or --dry-run to see the intent. '
123
+ + 'To make a key: certen keys generate --name dev', 'MISSING_SIGNING_KEY');
124
+ }
125
+ // A payable call forwards value from the abstract account, so it needs gas there for the
126
+ // same reason a transfer does.
127
+ // The identity fetched above already carries per-chain balances, so this reuses them instead
128
+ // of reading the same numbers again from /v1/portfolio.
129
+ await assertFundedForValue(client, opts.identity, chain, { amount: opts.value }, Boolean(opts.force), identity.balances);
130
+ const signer = await resolveSigner(opts.signWith);
131
+ const opened = await client.execute.contractCall({
132
+ identityId: opts.identity,
133
+ adiUrl,
134
+ fromAddress,
135
+ chain,
136
+ chainId,
137
+ contractCall,
138
+ // `contract_addresses` is deliberately not exposed. It is an object keyed by role that
139
+ // names the CERTEN deployment, not the call target; passing an array once broke every
140
+ // contractCall. The gateway defaults it correctly, so the right move is to never send it.
141
+ publicKey: signer.publicKey,
142
+ signerKeyPage: opts.signerKeyPage,
143
+ proofClass: opts.proofClass,
144
+ idempotencyKey: opts.idempotencyKey,
145
+ sign: (hashHex) => signer.sign(hashHex),
146
+ // The SDK runs the same guard. It is skipped here because the check above already ran and
147
+ // produces the better refusal — it names the faucet for this chain and the --force flag —
148
+ // and letting both run would cost a second portfolio lookup for an answer already known.
149
+ skipFundingCheck: true,
150
+ });
151
+ if (!wait) {
152
+ printOutput(opened);
153
+ hint('');
154
+ hint(`The proof cycle runs now (60-110s). Follow it: certen tx status ${opened.intentId} --wait`);
155
+ return;
156
+ }
157
+ const final = await waitForTransaction(client, opened.intentId, budget);
158
+ printOutput(final);
159
+ if (isJsonMode())
160
+ return;
161
+ const status = String(final.status ?? '');
162
+ human('');
163
+ human(` Intent ${opened.intentId} is ${status}.`);
164
+ hint('');
165
+ hint(`Next: certen proof get ${opened.intentId}`);
166
+ });
167
+ }
168
+ //# sourceMappingURL=call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/commands/call.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerChainsCommands(program: Command): void;
@@ -0,0 +1,123 @@
1
+ import { CertenClient } from '@certen.io/sdk';
2
+ import { getApiUrl } from '../config.js';
3
+ import { printOutput, hint, human, isJsonMode } from '../output.js';
4
+ import { CliError, EXIT } from '../errors.js';
5
+ import { SUPPORTED_CHAINS, isSupportedChain, writeChainCache, readChainCache, chainCacheIsFresh, CHAIN_CACHE_FILE, } from '../chains.js';
6
+ import { faucetFor } from '../funding-guard.js';
7
+ /**
8
+ * `certen chains` — what CERTEN is deployed on, and where.
9
+ *
10
+ * Two commands required a chain name (`fund`, `quote`) while nothing in the CLI could tell you
11
+ * what a valid one looked like. The answer lived in prose documentation, which is the one place a
12
+ * developer already in a terminal is not looking.
13
+ *
14
+ * **No API key.** `GET /v1/chains` is public by design on the gateway side, and keeping that
15
+ * property here is what makes this the first useful command a new user can run — before signup,
16
+ * before login, before anything. It doubles as the cheapest possible reachability check.
17
+ */
18
+ /** Public endpoint, so the key is irrelevant — but the client requires the field. */
19
+ function publicClient() {
20
+ return new CertenClient({ apiKey: process.env.CERTEN_API_KEY ?? 'public', baseUrl: getApiUrl() });
21
+ }
22
+ function contractSummary(chain) {
23
+ const roles = Object.keys(chain.contracts ?? {});
24
+ if (roles.length === 0)
25
+ return '-';
26
+ const verified = roles.filter((r) => chain.contracts[r]?.verified).length;
27
+ return `${roles.length} (${verified} verified)`;
28
+ }
29
+ export function registerChainsCommands(program) {
30
+ const chains = program
31
+ .command('chains')
32
+ .description('Chains CERTEN is deployed on, with contract addresses (no API key needed)')
33
+ .argument('[id]', 'One chain by registry id (base-sepolia) or numeric chain id (84532)')
34
+ .option('--all', 'Show every chain the gateway serves, not just the ones this CLI targets')
35
+ .option('--refresh', 'Bypass the local cache and refetch from the gateway')
36
+ .action(async (id, opts) => {
37
+ const client = publicClient();
38
+ if (id) {
39
+ const { chain } = await client.chains.get(id).catch((err) => {
40
+ // A 404 here is a wrong argument, not a broken gateway, and the fix is one command away.
41
+ if (err.status === 404) {
42
+ throw new CliError(`The gateway has no chain "${id}". Run \`certen chains --all\` to see every one it serves.`, 'UNKNOWN_CHAIN', EXIT.FAILED);
43
+ }
44
+ throw err;
45
+ });
46
+ printOutput({
47
+ id: chain.id,
48
+ chain_id: chain.chainId ?? '-',
49
+ family: chain.family,
50
+ display_name: chain.displayName,
51
+ environment: chain.environment,
52
+ status: chain.status,
53
+ explorer: chain.explorer,
54
+ supported_by_cli: isSupportedChain(chain.id),
55
+ });
56
+ if (isJsonMode())
57
+ return;
58
+ const roles = Object.entries(chain.contracts ?? {});
59
+ if (roles.length > 0) {
60
+ human('');
61
+ human(' CERTEN contracts on this chain:');
62
+ for (const [role, contract] of roles) {
63
+ const mark = contract.verified ? 'verified' : 'unverified';
64
+ human(` ${role.padEnd(18)} ${contract.address} (${mark})`);
65
+ }
66
+ // Worth stating once rather than leaving as a footnote: unverified on a non-EVM chain
67
+ // means "not checkable by eth_getCode", not "suspect".
68
+ if (chain.family !== 'evm' && roles.some(([, c]) => !c.verified)) {
69
+ human('');
70
+ human(' Non-EVM addresses come from validator configuration and cannot be');
71
+ human(' independently verified the way EVM bytecode can.');
72
+ }
73
+ }
74
+ const faucet = faucetFor(chain.id);
75
+ if (faucet) {
76
+ human('');
77
+ human(` Testnet gas: ${faucet}`);
78
+ }
79
+ if (!isSupportedChain(chain.id)) {
80
+ hint('');
81
+ hint(`This CLI targets ${SUPPORTED_CHAINS.join(', ')}. Set CERTEN_ALLOW_ANY_CHAIN=1 to use others.`);
82
+ }
83
+ return;
84
+ }
85
+ const cache = readChainCache();
86
+ if (!opts.refresh && chainCacheIsFresh(cache)) {
87
+ // Cheap path: the list is static for hours and this is the command most likely to be run
88
+ // repeatedly while someone is finding their footing.
89
+ const ids = opts.all ? cache.ids : cache.ids.filter(isSupportedChain);
90
+ printOutput(ids.map((chainId) => ({ id: chainId, supported_by_cli: isSupportedChain(chainId) })));
91
+ if (isJsonMode())
92
+ return;
93
+ hint('');
94
+ hint(`From cache (${CHAIN_CACHE_FILE}). Refresh with: certen chains --refresh`);
95
+ return;
96
+ }
97
+ const result = await client.chains.list();
98
+ // Numeric ids are cached alongside the slugs so `normalizeChain` can resolve a numeric
99
+ // `chain_id` from the portfolio without another round trip.
100
+ writeChainCache(result.chains.map((c) => ({ id: c.id, chainId: c.chainId })));
101
+ const shown = opts.all ? result.chains : result.chains.filter((c) => isSupportedChain(c.id));
102
+ printOutput(shown.map((chain) => ({
103
+ id: chain.id,
104
+ chain_id: chain.chainId ?? '-',
105
+ family: chain.family,
106
+ status: chain.status,
107
+ contracts: contractSummary(chain),
108
+ })));
109
+ if (isJsonMode())
110
+ return;
111
+ if (!opts.all && result.chains.length > shown.length) {
112
+ hint('');
113
+ hint(`${result.chains.length - shown.length} more chain(s) are served by the gateway but are `
114
+ + 'outside what this CLI targets. See them with: certen chains --all');
115
+ }
116
+ hint('');
117
+ hint('Detail for one: certen chains base-sepolia');
118
+ });
119
+ chains.addHelpText('after', `
120
+ Registry version and Accumulate network are included in --json output.
121
+ This command needs no API key, so it also answers "is the gateway up".`);
122
+ }
123
+ //# sourceMappingURL=chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/commands/chains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerDoctorCommands(program: Command): void;
@@ -0,0 +1,171 @@
1
+ import { CertenClient, CREDENTIALLED_CHECKS } from '@certen.io/sdk';
2
+ import { getApiKey, getApiUrl, getPortalUrl } from '../config.js';
3
+ import { printOutput, hint, human, isJsonMode } from '../output.js';
4
+ import { CliError, EXIT } from '../errors.js';
5
+ import { listKeys } from '../keystore.js';
6
+ import { faucetFor } from '../funding-guard.js';
7
+ import { normalizeChain } from '../chains.js';
8
+ /**
9
+ * Replace the SDK's generic remedies with the command that performs them here.
10
+ *
11
+ * The SDK says "Add funds." because it has no idea what is driving it. A terminal can say the
12
+ * exact line to type, and a fix the reader can paste is worth more than a fix they have to
13
+ * translate.
14
+ */
15
+ function localizeFix(check, chainHint, apiUrl) {
16
+ // The URL belongs on this line whether it succeeded or failed: "am I even pointed at the right
17
+ // gateway" is one of the first things a stuck user needs to rule out, and the SDK cannot say it
18
+ // because it does not know what the caller configured.
19
+ if (check.name === 'gateway reachable') {
20
+ const detail = `${apiUrl} — ${check.detail}`;
21
+ return check.status === 'ok'
22
+ ? { ...check, detail }
23
+ : {
24
+ ...check,
25
+ detail: `${apiUrl} did not answer: ${check.detail}`,
26
+ fix: 'Check CERTEN_API_URL and your network. Nothing else can be diagnosed until this passes.',
27
+ };
28
+ }
29
+ if (check.status === 'ok' || !check.fix)
30
+ return check;
31
+ switch (check.name) {
32
+ case 'api key':
33
+ return check.status === 'fail'
34
+ ? { ...check, fix: `certen login (or mint one at ${getPortalUrl()})` }
35
+ : check;
36
+ case 'identity can sign':
37
+ return { ...check, fix: `certen init (or: certen identity create --name <name> --sign-with <key> --chains ${chainHint} --wait)` };
38
+ case 'abstract accounts funded': {
39
+ // Name the faucets for the chains actually affected, rather than a generic instruction.
40
+ const chains = [...check.detail.matchAll(/\b([a-z]+-[a-z]+)\b/g)].map((m) => normalizeChain(m[1]));
41
+ const faucets = [...new Set(chains.map((c) => faucetFor(c)).filter(Boolean))];
42
+ return { ...check, fix: faucets.length > 0 ? faucets.join(' ') : check.fix };
43
+ }
44
+ case 'billing balance':
45
+ case 'credit / trial':
46
+ return { ...check, fix: `certen fund <amount> --chain ${chainHint}` };
47
+ default:
48
+ return check;
49
+ }
50
+ }
51
+ export function registerDoctorCommands(program) {
52
+ program
53
+ .command('doctor')
54
+ .description('Diagnose the setup and name the one thing blocking you')
55
+ .option('--all', 'Show every check, not just the first problem')
56
+ .action(async (opts) => {
57
+ const apiUrl = getApiUrl();
58
+ const chainHint = 'base-sepolia';
59
+ // ── the credential, resolved from THIS machine ────────────────────────────────────────────
60
+ // The SDK is handed a key; only the CLI knows whether one is configured at all, and "no key"
61
+ // needs a different fix from "the gateway rejected this key".
62
+ let apiKey = null;
63
+ let keyMissing = false;
64
+ try {
65
+ apiKey = await getApiKey();
66
+ }
67
+ catch {
68
+ keyMissing = true;
69
+ }
70
+ const client = new CertenClient({ apiKey: apiKey ?? 'public', baseUrl: apiUrl });
71
+ const report = await client.doctor();
72
+ const checks = report.checks.map((c) => localizeFix(c, chainHint, apiUrl));
73
+ // The SDK probed with a placeholder key, so its verdict on a machine with no key at all is
74
+ // not the one to show. Replace it, and skip everything that depends on it.
75
+ if (keyMissing && !report.unreachable) {
76
+ const index = checks.findIndex((c) => c.name === 'api key');
77
+ checks[index] = {
78
+ name: 'api key',
79
+ status: 'fail',
80
+ detail: 'No API key configured on this machine.',
81
+ fix: `certen login (or mint one at ${getPortalUrl()})`,
82
+ };
83
+ for (const name of CREDENTIALLED_CHECKS) {
84
+ const at = checks.findIndex((c) => c.name === name);
85
+ if (at >= 0)
86
+ checks[at] = { name, status: 'skipped', detail: 'needs a working API key' };
87
+ }
88
+ }
89
+ // ── the local signing key, which the SDK cannot see ───────────────────────────────────────
90
+ // A question about this machine, so it is answered even when everything above failed.
91
+ const local = listKeys();
92
+ const localCheck = local.length > 0
93
+ ? {
94
+ name: 'local signing key',
95
+ status: 'ok',
96
+ detail: `${local.length} key(s): ${local.map((k) => k.name).join(', ')}`,
97
+ }
98
+ : {
99
+ name: 'local signing key',
100
+ status: 'fail',
101
+ detail: 'No signing keys on this machine. Nothing can be signed without one.',
102
+ fix: 'certen keys generate --name dev',
103
+ };
104
+ // Placed directly after the credential: both answer "can this machine act at all", and the
105
+ // identity checks below are only meaningful once both do.
106
+ const afterKey = checks.findIndex((c) => c.name === 'api key') + 1;
107
+ checks.splice(afterKey, 0, localCheck);
108
+ const failed = checks.filter((c) => c.status === 'fail');
109
+ const warned = checks.filter((c) => c.status === 'warn');
110
+ // Emitted only when nothing failed. A failing run carries the same checks under
111
+ // `error.details` instead, so the machine interface never has to choose between knowing that
112
+ // something is broken and knowing what.
113
+ //
114
+ // JSON only: the table renderer serialises the check array to one unreadable line, and the
115
+ // rendered summary below is the human answer. Table mode is not a contract.
116
+ if (failed.length === 0 && !report.unreachable && isJsonMode()) {
117
+ printOutput({ ok: true, checks });
118
+ }
119
+ if (!isJsonMode()) {
120
+ if (opts.all) {
121
+ human('');
122
+ for (const check of checks) {
123
+ const mark = { ok: ' ok ', fail: 'FAIL', warn: 'warn', skipped: ' -- ' }[check.status];
124
+ human(` [${mark}] ${check.name.padEnd(26)} ${check.detail}`);
125
+ if (check.fix && check.status !== 'ok')
126
+ human(` ${check.fix}`);
127
+ }
128
+ human('');
129
+ }
130
+ else if (failed.length > 0) {
131
+ // One problem, one fix. Everything after the first failure is either caused by it or
132
+ // cannot be evaluated until it is resolved.
133
+ const first = failed[0];
134
+ human('');
135
+ human(` ${first.name}: ${first.detail}`);
136
+ if (first.fix) {
137
+ human('');
138
+ human(` Fix: ${first.fix}`);
139
+ }
140
+ human('');
141
+ if (failed.length > 1)
142
+ hint(`${failed.length - 1} further problem(s). See them all: certen doctor --all`);
143
+ }
144
+ else if (warned.length > 0) {
145
+ human('');
146
+ human(' Everything essential is working. Worth knowing:');
147
+ for (const warn of warned) {
148
+ human(` ${warn.name}: ${warn.detail}`);
149
+ if (warn.fix)
150
+ human(` ${warn.fix}`);
151
+ }
152
+ human('');
153
+ }
154
+ else {
155
+ human('');
156
+ human(' Everything checks out.');
157
+ human('');
158
+ hint('Next: certen call --identity <id> --chain base-sepolia --to <addr> --fn \'f()\' --sign-with <key> --wait');
159
+ }
160
+ }
161
+ if (report.unreachable) {
162
+ // Exit 3, not 1: nothing was submitted and a retry is worth attempting. That is the same
163
+ // promise every other command makes for an unreachable gateway.
164
+ throw new CliError(`The gateway at ${apiUrl} could not be reached.`, 'NETWORK_ERROR', EXIT.UNREACHABLE, true, { checks });
165
+ }
166
+ if (failed.length > 0) {
167
+ throw new CliError(`${failed.length} check(s) failed: ${failed.map((f) => f.name).join(', ')}`, 'DOCTOR_CHECKS_FAILED', EXIT.FAILED, false, { checks });
168
+ }
169
+ });
170
+ }
171
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAoB,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAqB9C;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,KAAY,EAAE,SAAiB,EAAE,MAAc;IAClE,+FAA+F;IAC/F,gGAAgG;IAChG,uDAAuD;IACvD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI;YAC1B,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE;YACtB,CAAC,CAAC;gBACA,GAAG,KAAK;gBACR,MAAM,EAAE,GAAG,MAAM,oBAAoB,KAAK,CAAC,MAAM,EAAE;gBACnD,GAAG,EAAE,yFAAyF;aAC/F,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACtD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM;gBAC5B,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,kCAAkC,YAAY,EAAE,GAAG,EAAE;gBACxE,CAAC,CAAC,KAAK,CAAC;QACZ,KAAK,mBAAmB;YACtB,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,sFAAsF,SAAS,UAAU,EAAE,CAAC;QACtI,KAAK,0BAA0B,CAAC,CAAC,CAAC;YAChC,wFAAwF;YACxF,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnG,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9E,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAChF,CAAC;QACD,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB;YACnB,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,gCAAgC,SAAS,EAAE,EAAE,CAAC;QACxE;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,OAAO,EAAE,8CAA8C,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,IAAuB,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,cAAc,CAAC;QAEjC,6FAA6F;QAC7F,6FAA6F;QAC7F,8DAA8D;QAC9D,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,MAAM,GAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpF,2FAA2F;QAC3F,2EAA2E;QAC3E,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAC5D,MAAM,CAAC,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,wCAAwC;gBAChD,GAAG,EAAE,kCAAkC,YAAY,EAAE,GAAG;aACzD,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;gBACxC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBACpD,IAAI,EAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;YAC3F,CAAC;QACH,CAAC;QAED,6FAA6F;QAC7F,sFAAsF;QACtF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,UAAU,GAAU,KAAK,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC;gBACA,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACzE;YACD,CAAC,CAAC;gBACA,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,qEAAqE;gBAC7E,GAAG,EAAE,iCAAiC;aACvC,CAAC;QAEJ,2FAA2F;QAC3F,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAEzD,gFAAgF;QAChF,6FAA6F;QAC7F,wCAAwC;QACxC,EAAE;QACF,2FAA2F;QAC3F,4EAA4E;QAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,UAAU,EAAE,EAAE,CAAC;YAC/D,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAwC,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACvF,KAAK,CAAC,MAAM,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC9D,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;wBAAE,KAAK,CAAC,cAAc,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBACD,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,qFAAqF;gBACrF,4CAA4C;gBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBACd,KAAK,CAAC,EAAE,CAAC,CAAC;oBACV,KAAK,CAAC,WAAW,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChC,CAAC;gBACD,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,wDAAwD,CAAC,CAAC;YAC5G,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBAC3D,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;oBAC1B,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1C,IAAI,IAAI,CAAC,GAAG;wBAAE,KAAK,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAClC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACV,IAAI,CAAC,0GAA0G,CAAC,CAAC;YACnH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,yFAAyF;YACzF,gEAAgE;YAChE,MAAM,IAAI,QAAQ,CAChB,kBAAkB,MAAM,wBAAwB,EAChD,eAAe,EACf,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,QAAQ,CAChB,GAAG,MAAM,CAAC,MAAM,qBAAqB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3E,sBAAsB,EACtB,IAAI,CAAC,MAAM,EACX,KAAK,EACL,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerErrorsCommands(program: Command): void;