@did-btcr2/cli 0.17.0 → 0.18.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 +33 -8
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/index.js +421 -177
- package/dist/esm/src/cli.js +2 -1
- package/dist/esm/src/cli.js.map +1 -1
- package/dist/esm/src/commands/create.js +4 -0
- package/dist/esm/src/commands/create.js.map +1 -1
- package/dist/esm/src/commands/deactivate.js +2 -0
- package/dist/esm/src/commands/deactivate.js.map +1 -1
- package/dist/esm/src/commands/index.js +1 -0
- package/dist/esm/src/commands/index.js.map +1 -1
- package/dist/esm/src/commands/init.js +87 -44
- package/dist/esm/src/commands/init.js.map +1 -1
- package/dist/esm/src/commands/keystore.js +61 -42
- package/dist/esm/src/commands/keystore.js.map +1 -1
- package/dist/esm/src/commands/quickstart.js +158 -0
- package/dist/esm/src/commands/quickstart.js.map +1 -0
- package/dist/esm/src/commands/update.js +2 -0
- package/dist/esm/src/commands/update.js.map +1 -1
- package/dist/esm/src/config.js +66 -0
- package/dist/esm/src/config.js.map +1 -1
- package/dist/esm/src/hints.js +54 -0
- package/dist/esm/src/hints.js.map +1 -0
- package/dist/types/src/cli.d.ts.map +1 -1
- package/dist/types/src/commands/create.d.ts.map +1 -1
- package/dist/types/src/commands/deactivate.d.ts.map +1 -1
- package/dist/types/src/commands/index.d.ts +1 -0
- package/dist/types/src/commands/index.d.ts.map +1 -1
- package/dist/types/src/commands/init.d.ts +52 -5
- package/dist/types/src/commands/init.d.ts.map +1 -1
- package/dist/types/src/commands/keystore.d.ts +37 -1
- package/dist/types/src/commands/keystore.d.ts.map +1 -1
- package/dist/types/src/commands/quickstart.d.ts +12 -0
- package/dist/types/src/commands/quickstart.d.ts.map +1 -0
- package/dist/types/src/commands/update.d.ts.map +1 -1
- package/dist/types/src/config.d.ts +35 -0
- package/dist/types/src/config.d.ts.map +1 -1
- package/dist/types/src/hints.d.ts +24 -0
- package/dist/types/src/hints.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +17 -0
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/cli.ts +2 -0
- package/src/commands/create.ts +4 -0
- package/src/commands/deactivate.ts +2 -0
- package/src/commands/index.ts +1 -0
- package/src/commands/init.ts +146 -54
- package/src/commands/keystore.ts +95 -55
- package/src/commands/quickstart.ts +209 -0
- package/src/commands/update.ts +2 -0
- package/src/config.ts +75 -0
- package/src/hints.ts +51 -0
- package/src/types.ts +12 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import type { GlobalOptions } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Registers the top-level `btcr2 quickstart` (ADR 083): a one-command onboarding
|
|
5
|
+
* that COMPOSES the existing primitives - the {@link runInit} scaffold, the
|
|
6
|
+
* network record, the optional {@link unlockSession} cache, and the advisory
|
|
7
|
+
* {@link runDoctor} probe - into a single step for a workshop follow-along.
|
|
8
|
+
* Reimplements nothing; the ADR 080/081 keystore and session guarantees hold by
|
|
9
|
+
* construction.
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerQuickstartCommand(program: Command, globals: () => GlobalOptions): void;
|
|
12
|
+
//# sourceMappingURL=quickstart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickstart.d.ts","sourceRoot":"","sources":["../../../../src/commands/quickstart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,OAAO,KAAK,EAAiB,aAAa,EAAiB,MAAM,aAAa,CAAC;AAU/E;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,GAAG,IAAI,CAmG9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAiG,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAiG,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAK9I,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAEvE,wBAAgB,qBAAqB,CACnC,OAAO,EAAG,OAAO,EACjB,OAAO,EAAG,UAAU,EACpB,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CA4GN"}
|
|
@@ -227,6 +227,41 @@ export declare function resolveActiveProfile(file: ConfigFile | undefined, overr
|
|
|
227
227
|
* identifier encodes.
|
|
228
228
|
*/
|
|
229
229
|
export declare function resolveDefaultNetwork(overrides?: ConnectionOverrides): NetworkOption;
|
|
230
|
+
/**
|
|
231
|
+
* The network recorded at `defaults.network` in the config file, validated, or
|
|
232
|
+
* `undefined` when the file is absent, malformed, or the value is unset/unknown.
|
|
233
|
+
* Unlike {@link resolveDefaultNetwork} this consults ONLY the raw
|
|
234
|
+
* `defaults.network` (no profile fallback, no regtest default), so `quickstart`
|
|
235
|
+
* can distinguish "the operator set a default" from "there is none yet" before
|
|
236
|
+
* it writes (ADR 083). Never throws: a malformed config is surfaced loudly by
|
|
237
|
+
* the write path, so this pre-write read stays quiet.
|
|
238
|
+
*/
|
|
239
|
+
export declare function readConfiguredDefaultNetwork(overrides?: ConnectionOverrides): NetworkOption | undefined;
|
|
240
|
+
/**
|
|
241
|
+
* Persists `defaults.network` idempotently and returns the resolved network,
|
|
242
|
+
* the shared network-recording step behind `btcr2 init -n` and `btcr2 quickstart`
|
|
243
|
+
* (ADR 083). Writes when `explicit` (an explicit `-n`) is given, or when a
|
|
244
|
+
* `fallback` is given and the raw config has no `defaults.network` yet. Keyed on
|
|
245
|
+
* the **raw** file value (not {@link resolveDefaultNetwork}, which never returns
|
|
246
|
+
* undefined), so a defaulted re-run never clobbers a network the operator set
|
|
247
|
+
* earlier. When neither condition writes, the existing default is returned
|
|
248
|
+
* unchanged. Assumes `configPath` names a parseable config (the caller has just
|
|
249
|
+
* scaffolded one, or an existing one that a malformed-JSON read surfaces loudly).
|
|
250
|
+
*/
|
|
251
|
+
export declare function persistDefaultNetwork(configPath: string, opts: {
|
|
252
|
+
explicit?: NetworkOption;
|
|
253
|
+
fallback?: NetworkOption;
|
|
254
|
+
overrides?: ConnectionOverrides;
|
|
255
|
+
}): {
|
|
256
|
+
network: NetworkOption;
|
|
257
|
+
wrote: boolean;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* Validates an explicit network string against {@link SUPPORTED_NETWORKS},
|
|
261
|
+
* returning it typed as a {@link NetworkOption} or throwing a {@link CLIError}.
|
|
262
|
+
* Shared by the `-n/--network` flags on `init` and `quickstart` (ADR 083).
|
|
263
|
+
*/
|
|
264
|
+
export declare function assertSupportedNetwork(value: string): NetworkOption;
|
|
230
265
|
/**
|
|
231
266
|
* Reports a coherence conflict between the network a `create` run is about to
|
|
232
267
|
* encode and the network the active profile declares, so the CLI can warn
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { GlobalOptions, NetworkOption } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Text-mode stderr hints derived from the per-network presets (ADR 082). All of
|
|
4
|
+
* these are suppressed under `--quiet` and `--output json` so machine output is
|
|
5
|
+
* never touched, and they never throw: a presentation hint must never break the
|
|
6
|
+
* command that produced the real result.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Prints a funding hint after a KEY `create` on a network with a public faucet:
|
|
10
|
+
* the derived initial P2WPKH beacon address next to the faucet and explorer
|
|
11
|
+
* links the operator would otherwise hand-copy. A no-op on a network without a
|
|
12
|
+
* faucet (regtest/mainnet), which also keeps mainnet from showing a fund-me
|
|
13
|
+
* affordance. The beacon address is derived from the DID string alone via
|
|
14
|
+
* {@link BeaconUtils.createBeaconService}, so it matches the resolver's
|
|
15
|
+
* `#initialP2WPKH` service rather than a divergent re-derivation.
|
|
16
|
+
*/
|
|
17
|
+
export declare function printCreateFundingHint(g: GlobalOptions, network: NetworkOption, did: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Prints a watch link after an `update`/`deactivate` broadcast: the
|
|
20
|
+
* block-explorer URL for the signal txid. A no-op on a network without an
|
|
21
|
+
* explorer (regtest).
|
|
22
|
+
*/
|
|
23
|
+
export declare function printWatchHint(g: GlobalOptions, network: NetworkOption, txid: string): void;
|
|
24
|
+
//# sourceMappingURL=hints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hints.d.ts","sourceRoot":"","sources":["../../../src/hints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAmBlG;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI3F"}
|
|
@@ -101,9 +101,26 @@ export type CommandResult = {
|
|
|
101
101
|
home: string;
|
|
102
102
|
config: string;
|
|
103
103
|
keystore: string;
|
|
104
|
+
network: NetworkOption;
|
|
104
105
|
created: string[];
|
|
105
106
|
protection: KeystoreProtectionLabel;
|
|
106
107
|
};
|
|
108
|
+
} | {
|
|
109
|
+
action: 'quickstart';
|
|
110
|
+
data: {
|
|
111
|
+
home: string;
|
|
112
|
+
config: string;
|
|
113
|
+
keystore: string;
|
|
114
|
+
network: NetworkOption;
|
|
115
|
+
created: string[];
|
|
116
|
+
protection: KeystoreProtectionLabel;
|
|
117
|
+
unlocked: boolean;
|
|
118
|
+
session?: {
|
|
119
|
+
expiresAt: number;
|
|
120
|
+
ttlSeconds: number;
|
|
121
|
+
};
|
|
122
|
+
doctor?: DoctorReport;
|
|
123
|
+
};
|
|
107
124
|
} | {
|
|
108
125
|
action: 'config-init';
|
|
109
126
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@did-btcr2/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CLI for interacting with did-btcr2-js, the JavaScript/TypeScript reference implementation of the did:btcr2 method. Exposes various parts of multiple packages in the did-btcr2-js monorepo.",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
"@scure/base": "^1.2.6",
|
|
62
62
|
"@web5/dids": "^1.2.0",
|
|
63
63
|
"commander": "^13.1.0",
|
|
64
|
-
"@did-btcr2/api": "^0.
|
|
64
|
+
"@did-btcr2/api": "^0.17.0",
|
|
65
65
|
"@did-btcr2/key-manager": "^0.7.0",
|
|
66
|
-
"@did-btcr2/
|
|
66
|
+
"@did-btcr2/keypair": "^0.13.1",
|
|
67
67
|
"@did-btcr2/method": "^0.54.1",
|
|
68
|
-
"@did-btcr2/
|
|
68
|
+
"@did-btcr2/common": "^9.1.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@eslint/js": "^9.21.0",
|
package/src/cli.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
registerKeyCommand,
|
|
10
10
|
registerKeystoreCommand,
|
|
11
11
|
registerProfileCommand,
|
|
12
|
+
registerQuickstartCommand,
|
|
12
13
|
registerResolveCommand,
|
|
13
14
|
registerUpdateCommand,
|
|
14
15
|
} from './commands/index.js';
|
|
@@ -77,6 +78,7 @@ export class DidBtcr2Cli {
|
|
|
77
78
|
});
|
|
78
79
|
|
|
79
80
|
registerInitCommand(this.program, globals);
|
|
81
|
+
registerQuickstartCommand(this.program, globals);
|
|
80
82
|
registerCreateCommand(this.program, factory, keystoreFactory, globals);
|
|
81
83
|
registerResolveCommand(this.program, factory, globals);
|
|
82
84
|
registerUpdateCommand(this.program, keystoreFactory, globals);
|
package/src/commands/create.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Command } from 'commander';
|
|
|
3
3
|
import type { ApiFactory, ConnectionOverrides } from '../config.js';
|
|
4
4
|
import { assertKeystoreAllowedForNetwork, profileNetworkMismatch, resolveDefaultNetwork } from '../config.js';
|
|
5
5
|
import { CLIError } from '../error.js';
|
|
6
|
+
import { printCreateFundingHint } from '../hints.js';
|
|
6
7
|
import { resolveKeyRef } from '../keystore/resolve-key-ref.js';
|
|
7
8
|
import { formatResult } from '../output.js';
|
|
8
9
|
import type { CommandResult, GlobalOptions, NetworkOption } from '../types.js';
|
|
@@ -115,6 +116,7 @@ export function registerCreateCommand(
|
|
|
115
116
|
const genesisBytes = parseGenesisBytes(options.bytes, 'k');
|
|
116
117
|
const did = factory().createDid('deterministic', genesisBytes, { network });
|
|
117
118
|
print({ action: 'create', data: did });
|
|
119
|
+
printCreateFundingHint(g, network, did);
|
|
118
120
|
return;
|
|
119
121
|
}
|
|
120
122
|
|
|
@@ -128,6 +130,7 @@ export function registerCreateCommand(
|
|
|
128
130
|
{ action: 'create', data: did, keyId, publicKey: bytesToHex(publicKey) },
|
|
129
131
|
`Using stored key ${keyId}.`,
|
|
130
132
|
);
|
|
133
|
+
printCreateFundingHint(g, network, did);
|
|
131
134
|
return;
|
|
132
135
|
}
|
|
133
136
|
|
|
@@ -141,6 +144,7 @@ export function registerCreateCommand(
|
|
|
141
144
|
{ action: 'create', data: did, keyId, publicKey },
|
|
142
145
|
`Generated and stored key ${keyId} (now the active key).`,
|
|
143
146
|
);
|
|
147
|
+
printCreateFundingHint(g, network, did);
|
|
144
148
|
});
|
|
145
149
|
}
|
|
146
150
|
|
|
@@ -3,6 +3,7 @@ import { KeyManagerSigner } from '@did-btcr2/key-manager';
|
|
|
3
3
|
import type { Command } from 'commander';
|
|
4
4
|
import { assertKeystoreAllowedForNetwork, deriveNetwork, resolveBroadcastOptions, resolveSigningKeyRef, type ApiFactory } from '../config.js';
|
|
5
5
|
import { CLIError } from '../error.js';
|
|
6
|
+
import { printWatchHint } from '../hints.js';
|
|
6
7
|
import { resolveKeyRef } from '../keystore/resolve-key-ref.js';
|
|
7
8
|
import { formatResult } from '../output.js';
|
|
8
9
|
import type { GlobalOptions, UpdateCommandOptions } from '../types.js';
|
|
@@ -117,6 +118,7 @@ export function registerDeactivateCommand(
|
|
|
117
118
|
...(broadcastOptions ? { broadcastOptions } : {}),
|
|
118
119
|
});
|
|
119
120
|
console.log(formatResult({ action: 'deactivate', data }, globals()));
|
|
121
|
+
printWatchHint(globals(), network, data.txid);
|
|
120
122
|
});
|
|
121
123
|
}
|
|
122
124
|
|
package/src/commands/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { registerInitCommand } from './init.js';
|
|
2
|
+
export { registerQuickstartCommand } from './quickstart.js';
|
|
2
3
|
export { registerCreateCommand } from './create.js';
|
|
3
4
|
export { registerResolveCommand } from './resolve.js';
|
|
4
5
|
export { registerUpdateCommand } from './update.js';
|
package/src/commands/init.ts
CHANGED
|
@@ -1,22 +1,142 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
assertSupportedNetwork,
|
|
5
|
+
defaultConfigPath,
|
|
6
|
+
persistDefaultNetwork,
|
|
7
|
+
resolveKeystorePath,
|
|
8
|
+
writeDefaultConfigFile,
|
|
9
|
+
} from '../config.js';
|
|
4
10
|
import { ensureDir } from '../keystore/atomic.js';
|
|
5
11
|
import { initKeystore, keystoreSummary } from '../keystore/file-key-store.js';
|
|
6
12
|
import { acquirePassphrase } from '../keystore/passphrase.js';
|
|
7
13
|
import { clearSession } from '../keystore/session.js';
|
|
8
14
|
import { formatResult } from '../output.js';
|
|
9
15
|
import { defaultSessionPath, resolveHome } from '../paths.js';
|
|
10
|
-
import type { CommandResult, GlobalOptions } from '../types.js';
|
|
16
|
+
import type { CommandResult, GlobalOptions, KeystoreProtectionLabel, NetworkOption } from '../types.js';
|
|
17
|
+
|
|
18
|
+
/** Options for the shared {@link runInit} scaffolding step. */
|
|
19
|
+
export interface RunInitOptions {
|
|
20
|
+
/** Establish an UNENCRYPTED dev keystore (plaintext keys, testnet only). */
|
|
21
|
+
dev? : boolean;
|
|
22
|
+
/** Re-scaffold the regenerable config even if it exists (never the keystore). */
|
|
23
|
+
force? : boolean;
|
|
24
|
+
/** Explicit network from `-n/--network`, already validated. Persisted to `defaults.network`. */
|
|
25
|
+
network? : NetworkOption;
|
|
26
|
+
/**
|
|
27
|
+
* Network to persist when `-n` is absent and `defaults.network` is unset: a
|
|
28
|
+
* command's opinionated default (mutinynet for `quickstart`). Omitted by plain
|
|
29
|
+
* `init`, which never persists a merely-defaulted network.
|
|
30
|
+
*/
|
|
31
|
+
fallbackNetwork? : NetworkOption;
|
|
32
|
+
/**
|
|
33
|
+
* Capture the establish-time confirmed passphrase so the caller can seed a
|
|
34
|
+
* session with no second prompt (`quickstart --unlock`). Only populated when a
|
|
35
|
+
* fresh ENCRYPTED keystore is established in this call. Never printed.
|
|
36
|
+
*/
|
|
37
|
+
captureEstablishedPassphrase? : boolean;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Result of the shared {@link runInit} scaffolding step. */
|
|
41
|
+
export interface RunInitResult {
|
|
42
|
+
home : string;
|
|
43
|
+
config : string;
|
|
44
|
+
keystore : string;
|
|
45
|
+
network : NetworkOption;
|
|
46
|
+
created : string[];
|
|
47
|
+
protection : KeystoreProtectionLabel;
|
|
48
|
+
/**
|
|
49
|
+
* The confirmed passphrase from a fresh ENCRYPTED establishment in this call,
|
|
50
|
+
* present only when {@link RunInitOptions.captureEstablishedPassphrase} was set
|
|
51
|
+
* and a keystore was established. Consumed to seed a session; never printed.
|
|
52
|
+
*/
|
|
53
|
+
establishedPassphrase? : string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The shared scaffolding step behind `btcr2 init` and `btcr2 quickstart` (ADR
|
|
58
|
+
* 079/080/083): create the home, a default config if none exists, and establish
|
|
59
|
+
* the keystore if none exists (encrypted by default, `--dev` for unencrypted).
|
|
60
|
+
* Idempotent: existing files are left untouched, and `--force` re-scaffolds only
|
|
61
|
+
* the regenerable config, never the keystore. Records `defaults.network` via
|
|
62
|
+
* {@link persistDefaultNetwork}. Returns the resolved paths, network, protection,
|
|
63
|
+
* and (when asked) the establish-time passphrase for session seeding.
|
|
64
|
+
*/
|
|
65
|
+
export function runInit(g: GlobalOptions, options: RunInitOptions = {}): RunInitResult {
|
|
66
|
+
const home = resolveHome(g);
|
|
67
|
+
const configPath = g.config ?? defaultConfigPath(g);
|
|
68
|
+
const keystorePath = resolveKeystorePath(g);
|
|
69
|
+
ensureDir(home, 0o700);
|
|
70
|
+
|
|
71
|
+
const created: string[] = [];
|
|
72
|
+
|
|
73
|
+
// The config is regenerable, so --force may re-scaffold it.
|
|
74
|
+
if (!existsSync(configPath) || options.force) {
|
|
75
|
+
writeDefaultConfigFile(configPath);
|
|
76
|
+
created.push('config');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// The keystore holds unrecoverable secret keys, so init never overwrites an
|
|
80
|
+
// existing one, even with --force: re-establishing a keystore is the explicit,
|
|
81
|
+
// deliberate `keystore init --force`. init only establishes when none exists.
|
|
82
|
+
const keystoreExists = existsSync(keystorePath);
|
|
83
|
+
if (keystoreExists && options.force && !g.quiet) {
|
|
84
|
+
process.stderr.write(
|
|
85
|
+
`note: a keystore already exists at ${keystorePath} and was left intact. `
|
|
86
|
+
+ 'To re-establish it (discarding its keys), run "btcr2 keystore init --force".\n',
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
let establishedPassphrase: string | undefined;
|
|
91
|
+
if (!keystoreExists) {
|
|
92
|
+
if (options.dev && !g.quiet) {
|
|
93
|
+
process.stderr.write(
|
|
94
|
+
'warning: establishing an UNENCRYPTED dev keystore. Keys are stored in plaintext. '
|
|
95
|
+
+ 'Use it only for disposable testnet material; mainnet operations will be refused.\n',
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
initKeystore(keystorePath, {
|
|
99
|
+
protection : options.dev ? 'none' : 'passphrase',
|
|
100
|
+
getPassphrase : (opts) => {
|
|
101
|
+
const passphrase = acquirePassphrase({
|
|
102
|
+
passphraseFile : g.passphraseFile,
|
|
103
|
+
confirm : opts?.confirm,
|
|
104
|
+
prompt : 'New keystore passphrase: ',
|
|
105
|
+
});
|
|
106
|
+
// Capture only a fresh ENCRYPTED establishment, for session seeding.
|
|
107
|
+
if (options.captureEstablishedPassphrase && !options.dev) establishedPassphrase = passphrase;
|
|
108
|
+
return passphrase;
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
// A freshly established keystore mints a new verifier (or none, for --dev), so
|
|
112
|
+
// any cached session holds a passphrase for a keystore that no longer exists.
|
|
113
|
+
// Drop it, matching `keystore init` / `change-passphrase` (ADR 081).
|
|
114
|
+
clearSession(defaultSessionPath(g));
|
|
115
|
+
created.push('keystore');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Record the network as defaults.network idempotently (ADR 083): an explicit
|
|
119
|
+
// -n always writes; a merely-defaulted network writes only when the raw config
|
|
120
|
+
// has none yet, so a re-run never clobbers an operator's earlier choice.
|
|
121
|
+
const { network } = persistDefaultNetwork(configPath, {
|
|
122
|
+
explicit : options.network,
|
|
123
|
+
fallback : options.fallbackNetwork,
|
|
124
|
+
overrides : g,
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
const protection = keystoreSummary(keystorePath).protection;
|
|
128
|
+
return { home, config: configPath, keystore: keystorePath, network, created, protection, establishedPassphrase };
|
|
129
|
+
}
|
|
11
130
|
|
|
12
131
|
/**
|
|
13
132
|
* Registers the top-level `btcr2 init`: the one-command entry point that creates
|
|
14
133
|
* the btcr2 home (ADR 079), writes a default config if none exists, and
|
|
15
134
|
* establishes the keystore if none exists (encrypted with a confirmed passphrase
|
|
16
|
-
* by default, or `--dev` for an unencrypted testnet keystore).
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
135
|
+
* by default, or `--dev` for an unencrypted testnet keystore). `-n/--network`
|
|
136
|
+
* records `defaults.network` so later commands can drop `-n` (ADR 083).
|
|
137
|
+
* Idempotent: existing files are left untouched unless `--force` is given.
|
|
138
|
+
* Establishing the passphrase here, up front and confirmed, is what keeps the
|
|
139
|
+
* first `key generate` off the accidental-first-seal path (ADR 080).
|
|
20
140
|
*/
|
|
21
141
|
export function registerInitCommand(program: Command, globals: () => GlobalOptions): void {
|
|
22
142
|
const print = (result: CommandResult): void => console.log(formatResult(result, globals()));
|
|
@@ -24,57 +144,29 @@ export function registerInitCommand(program: Command, globals: () => GlobalOptio
|
|
|
24
144
|
program
|
|
25
145
|
.command('init')
|
|
26
146
|
.description('Set up the btcr2 home: create the directory, a default config, and establish the keystore.')
|
|
147
|
+
.option(
|
|
148
|
+
'-n, --network <network>',
|
|
149
|
+
'Bitcoin network to record as defaults.network <bitcoin|testnet3|testnet4|signet|mutinynet|regtest>',
|
|
150
|
+
)
|
|
27
151
|
.option('--dev', 'Establish an UNENCRYPTED dev keystore: plaintext keys, no passphrase. Testnet only.', false)
|
|
28
|
-
.option('--force', 'Re-create the config
|
|
29
|
-
.action((options: { dev?: boolean; force?: boolean }) => {
|
|
152
|
+
.option('--force', 'Re-create the config even if it already exists (never the keystore).', false)
|
|
153
|
+
.action((options: { network?: string; dev?: boolean; force?: boolean }) => {
|
|
30
154
|
const g = globals();
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// The keystore holds unrecoverable secret keys, so `init` never overwrites
|
|
45
|
-
// an existing one, even with --force: re-establishing a keystore is the
|
|
46
|
-
// explicit, deliberate `keystore init --force`. `init` only establishes a
|
|
47
|
-
// keystore when none exists.
|
|
48
|
-
const keystoreExists = existsSync(keystorePath);
|
|
49
|
-
if (keystoreExists && options.force && !g.quiet) {
|
|
50
|
-
process.stderr.write(
|
|
51
|
-
`note: a keystore already exists at ${keystorePath} and was left intact. `
|
|
52
|
-
+ 'To re-establish it (discarding its keys), run "btcr2 keystore init --force".\n',
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
if (!keystoreExists) {
|
|
56
|
-
if (options.dev && !g.quiet) {
|
|
57
|
-
process.stderr.write(
|
|
58
|
-
'warning: establishing an UNENCRYPTED dev keystore. Keys are stored in plaintext. '
|
|
59
|
-
+ 'Use it only for disposable testnet material; mainnet operations will be refused.\n',
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
initKeystore(keystorePath, {
|
|
63
|
-
protection : options.dev ? 'none' : 'passphrase',
|
|
64
|
-
getPassphrase : (opts) => acquirePassphrase({ passphraseFile: g.passphraseFile, confirm: opts?.confirm, prompt: 'New keystore passphrase: ' }),
|
|
65
|
-
});
|
|
66
|
-
// A freshly established keystore mints a new verifier (or none, for --dev),
|
|
67
|
-
// so any cached session holds a passphrase for a keystore that no longer
|
|
68
|
-
// exists. Drop it, matching `keystore init` / `change-passphrase`, rather
|
|
69
|
-
// than leave a stale plaintext passphrase behind (ADR 081).
|
|
70
|
-
clearSession(defaultSessionPath(g));
|
|
71
|
-
created.push('keystore');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const protection = keystoreSummary(keystorePath).protection;
|
|
75
|
-
print({ action: 'init', data: { home, config: configPath, keystore: keystorePath, created, protection } });
|
|
155
|
+
const network = options.network ? assertSupportedNetwork(options.network) : undefined;
|
|
156
|
+
const result = runInit(g, { dev: options.dev, force: options.force, network });
|
|
157
|
+
print({
|
|
158
|
+
action : 'init',
|
|
159
|
+
data : {
|
|
160
|
+
home : result.home,
|
|
161
|
+
config : result.config,
|
|
162
|
+
keystore : result.keystore,
|
|
163
|
+
network : result.network,
|
|
164
|
+
created : result.created,
|
|
165
|
+
protection : result.protection,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
76
168
|
if (!g.quiet && g.output !== 'json') {
|
|
77
|
-
process.stderr.write(`btcr2 home ready at ${home}. Next: btcr2 key generate --set-active\n`);
|
|
169
|
+
process.stderr.write(`btcr2 home ready at ${result.home} on ${result.network}. Next: btcr2 key generate --set-active\n`);
|
|
78
170
|
}
|
|
79
171
|
});
|
|
80
172
|
}
|