httpcat-cli 0.0.22 → 0.0.25

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/dist/config.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import Conf from "conf";
2
2
  import { createInterface } from "readline";
3
3
  import chalk from "chalk";
4
+ import { decryptData, encryptData, seedPhraseToPrivateKey, getAddressFromPrivateKey } from "./utils/wallet.js";
4
5
  const DEFAULT_ENVIRONMENTS = {
5
6
  local: {
6
7
  name: "local",
@@ -28,11 +29,14 @@ const DEFAULT_CONFIG = {
28
29
  };
29
30
  export class ConfigManager {
30
31
  store;
32
+ session = null;
31
33
  constructor() {
32
34
  this.store = new Conf({
33
35
  projectName: "httpcat",
34
36
  defaults: DEFAULT_CONFIG,
35
37
  });
38
+ // Migrate old privateKey format on first access
39
+ this.migrateLegacyPrivateKey();
36
40
  }
37
41
  get(key) {
38
42
  return this.store.get(key);
@@ -56,8 +60,52 @@ export class ConfigManager {
56
60
  return this.store.path;
57
61
  }
58
62
  isConfigured() {
63
+ // Check new format first
64
+ const accounts = this.get("accounts");
65
+ if (accounts && accounts.length > 0) {
66
+ return true;
67
+ }
68
+ // Check legacy format
59
69
  return this.has("privateKey") && !!this.get("privateKey");
60
70
  }
71
+ /**
72
+ * Migrate legacy privateKey to new account format
73
+ */
74
+ migrateLegacyPrivateKey() {
75
+ const legacyKey = this.get("privateKey");
76
+ if (legacyKey && !this.get("accounts")) {
77
+ // Migrate to Account 0
78
+ const address = getAddressFromPrivateKey(legacyKey);
79
+ const accounts = [
80
+ {
81
+ type: "custom",
82
+ index: 0,
83
+ address,
84
+ },
85
+ ];
86
+ this.set("accounts", accounts);
87
+ this.set("activeAccountIndex", 0);
88
+ // Encrypt and store if password is set
89
+ const password = this.get("password");
90
+ if (password) {
91
+ try {
92
+ const encrypted = encryptData(legacyKey, password);
93
+ this.set("encryptedPrivateKey", encrypted);
94
+ // Remove plain private key
95
+ this.delete("privateKey");
96
+ }
97
+ catch (error) {
98
+ // If encryption fails, keep plain key (password might be invalid)
99
+ console.warn("Failed to encrypt legacy private key during migration");
100
+ }
101
+ }
102
+ else {
103
+ // Store as encrypted with empty password (no encryption)
104
+ this.set("encryptedPrivateKey", legacyKey);
105
+ this.delete("privateKey");
106
+ }
107
+ }
108
+ }
61
109
  async runSetupWizard(options = {}) {
62
110
  console.log(chalk.cyan("=".repeat(80)));
63
111
  console.log(chalk.cyan.bold("🐱 httpcat Configuration Setup"));
@@ -120,8 +168,11 @@ export class ConfigManager {
120
168
  });
121
169
  });
122
170
  }
123
- getPrivateKey() {
124
- // Check environment variable first
171
+ /**
172
+ * Get private key for a specific account index (or active account)
173
+ */
174
+ getPrivateKey(accountIndex) {
175
+ // Check environment variable first (highest priority)
125
176
  const envKey = process.env.HTTPCAT_PRIVATE_KEY;
126
177
  if (envKey) {
127
178
  if (!envKey.startsWith("0x") || envKey.length !== 66) {
@@ -129,12 +180,249 @@ export class ConfigManager {
129
180
  }
130
181
  return envKey;
131
182
  }
132
- // Fall back to config
133
- const configKey = this.get("privateKey");
134
- if (!configKey) {
135
- throw new Error('No private key configured. Run "httpcat config" or set HTTPCAT_PRIVATE_KEY environment variable.');
183
+ // Use new account system
184
+ const index = accountIndex !== undefined ? accountIndex : this.getActiveAccountIndex();
185
+ return this.getAccountPrivateKey(index);
186
+ }
187
+ /**
188
+ * Get private key for a specific account index
189
+ */
190
+ getAccountPrivateKey(accountIndex) {
191
+ const accounts = this.get("accounts") || [];
192
+ const account = accounts.find((acc) => acc.index === accountIndex);
193
+ if (!account) {
194
+ throw new Error(`Account at index ${accountIndex} not found. Use "httpcat account list" to see available accounts.`);
195
+ }
196
+ // Ensure session is valid
197
+ this.ensureSessionValid();
198
+ if (account.type === "custom") {
199
+ // Account 0 - use encrypted private key
200
+ const encrypted = this.get("encryptedPrivateKey");
201
+ if (!encrypted) {
202
+ throw new Error("Account 0 private key not found");
203
+ }
204
+ const password = this.get("password") || "";
205
+ if (password) {
206
+ // Decrypt using session
207
+ if (!this.session?.decryptedPrivateKey) {
208
+ throw new Error("Session expired. Please unlock your wallet.");
209
+ }
210
+ return this.session.decryptedPrivateKey;
211
+ }
212
+ else {
213
+ // No password - stored as plain (but in encryptedPrivateKey field)
214
+ return encrypted;
215
+ }
216
+ }
217
+ else {
218
+ // Seed-derived account
219
+ const encrypted = this.get("encryptedSeedPhrase");
220
+ if (!encrypted) {
221
+ throw new Error("Seed phrase not found");
222
+ }
223
+ const password = this.get("password") || "";
224
+ let seedPhrase;
225
+ if (password) {
226
+ // Decrypt using session
227
+ if (!this.session?.decryptedSeedPhrase) {
228
+ throw new Error("Session expired. Please unlock your wallet.");
229
+ }
230
+ seedPhrase = this.session.decryptedSeedPhrase;
231
+ }
232
+ else {
233
+ // No password - stored as plain
234
+ seedPhrase = encrypted;
235
+ }
236
+ // Derive private key from seed phrase
237
+ // Account index 1 = seed index 0, Account index 2 = seed index 1, etc.
238
+ const seedIndex = accountIndex - 1;
239
+ return seedPhraseToPrivateKey(seedPhrase, seedIndex);
240
+ }
241
+ }
242
+ /**
243
+ * Get active account index
244
+ */
245
+ getActiveAccountIndex() {
246
+ const active = this.get("activeAccountIndex");
247
+ if (active !== undefined) {
248
+ return active;
249
+ }
250
+ // Default to 0 if accounts exist, otherwise throw
251
+ const accounts = this.get("accounts") || [];
252
+ if (accounts.length > 0) {
253
+ return 0;
254
+ }
255
+ throw new Error("No accounts configured");
256
+ }
257
+ /**
258
+ * Set active account index
259
+ */
260
+ setActiveAccount(index) {
261
+ const accounts = this.get("accounts") || [];
262
+ const account = accounts.find((acc) => acc.index === index);
263
+ if (!account) {
264
+ throw new Error(`Account at index ${index} not found`);
265
+ }
266
+ this.set("activeAccountIndex", index);
267
+ }
268
+ /**
269
+ * Get active account info
270
+ */
271
+ getActiveAccount() {
272
+ const index = this.getActiveAccountIndex();
273
+ const accounts = this.get("accounts") || [];
274
+ return accounts.find((acc) => acc.index === index) || null;
275
+ }
276
+ /**
277
+ * Get all accounts
278
+ */
279
+ getAllAccounts() {
280
+ return this.get("accounts") || [];
281
+ }
282
+ /**
283
+ * Add an account
284
+ */
285
+ addAccount(account) {
286
+ const accounts = this.get("accounts") || [];
287
+ if (accounts.find((acc) => acc.index === account.index)) {
288
+ throw new Error(`Account at index ${account.index} already exists`);
289
+ }
290
+ accounts.push(account);
291
+ // Sort by index
292
+ accounts.sort((a, b) => a.index - b.index);
293
+ this.set("accounts", accounts);
294
+ }
295
+ /**
296
+ * Password management
297
+ */
298
+ setPassword(password) {
299
+ this.set("password", password);
300
+ // Clear session when password changes
301
+ this.clearSession();
302
+ }
303
+ getPassword() {
304
+ return this.get("password") || "";
305
+ }
306
+ setPasswordTimeout(minutes) {
307
+ this.set("passwordTimeoutMinutes", minutes);
308
+ }
309
+ getPasswordTimeout() {
310
+ return this.get("passwordTimeoutMinutes") || 15;
311
+ }
312
+ /**
313
+ * Session management
314
+ */
315
+ async unlockSession(password) {
316
+ const storedPassword = this.getPassword();
317
+ // If no password is set, session is always valid
318
+ if (!storedPassword) {
319
+ this.session = {
320
+ expiresAt: Date.now() + 365 * 24 * 60 * 60 * 1000, // 1 year (effectively never expires)
321
+ };
322
+ return;
323
+ }
324
+ // If password provided, validate it
325
+ if (password !== undefined) {
326
+ // Try to decrypt to validate password
327
+ const encryptedSeed = this.get("encryptedSeedPhrase");
328
+ const encryptedKey = this.get("encryptedPrivateKey");
329
+ try {
330
+ if (encryptedSeed) {
331
+ decryptData(encryptedSeed, password);
332
+ }
333
+ if (encryptedKey) {
334
+ decryptData(encryptedKey, password);
335
+ }
336
+ }
337
+ catch (error) {
338
+ throw new Error("Invalid password");
339
+ }
340
+ }
341
+ else {
342
+ // No password provided, check if we need to prompt
343
+ if (!this.isSessionValid()) {
344
+ throw new Error("Session expired. Password required.");
345
+ }
346
+ return;
347
+ }
348
+ // Decrypt and cache
349
+ const timeout = this.getPasswordTimeout();
350
+ const expiresAt = Date.now() + timeout * 60 * 1000;
351
+ const decryptedSeed = this.get("encryptedSeedPhrase")
352
+ ? decryptData(this.get("encryptedSeedPhrase"), password)
353
+ : undefined;
354
+ const decryptedKey = this.get("encryptedPrivateKey")
355
+ ? decryptData(this.get("encryptedPrivateKey"), password)
356
+ : undefined;
357
+ this.session = {
358
+ decryptedSeedPhrase: decryptedSeed,
359
+ decryptedPrivateKey: decryptedKey,
360
+ expiresAt,
361
+ };
362
+ }
363
+ isSessionValid() {
364
+ if (!this.session) {
365
+ return false;
366
+ }
367
+ if (Date.now() >= this.session.expiresAt) {
368
+ this.clearSession();
369
+ return false;
370
+ }
371
+ return true;
372
+ }
373
+ ensureSessionValid() {
374
+ const password = this.getPassword();
375
+ if (!password) {
376
+ // No password required
377
+ if (!this.session) {
378
+ this.session = {
379
+ expiresAt: Date.now() + 365 * 24 * 60 * 60 * 1000,
380
+ };
381
+ }
382
+ return;
383
+ }
384
+ if (!this.isSessionValid()) {
385
+ throw new Error("Session expired. Please unlock your wallet.");
386
+ }
387
+ }
388
+ clearSession() {
389
+ // Clear sensitive data from memory
390
+ if (this.session) {
391
+ if (this.session.decryptedSeedPhrase) {
392
+ // Overwrite with zeros (best effort)
393
+ this.session.decryptedSeedPhrase = "";
394
+ }
395
+ if (this.session.decryptedPrivateKey) {
396
+ this.session.decryptedPrivateKey = undefined;
397
+ }
398
+ }
399
+ this.session = null;
400
+ }
401
+ /**
402
+ * Store encrypted seed phrase
403
+ */
404
+ setEncryptedSeedPhrase(seedPhrase, password) {
405
+ if (password) {
406
+ const encrypted = encryptData(seedPhrase, password);
407
+ this.set("encryptedSeedPhrase", encrypted);
408
+ }
409
+ else {
410
+ // No password - store as plain (but in encryptedSeedPhrase field)
411
+ this.set("encryptedSeedPhrase", seedPhrase);
412
+ }
413
+ }
414
+ /**
415
+ * Store encrypted private key
416
+ */
417
+ setEncryptedPrivateKey(privateKey, password) {
418
+ if (password) {
419
+ const encrypted = encryptData(privateKey, password);
420
+ this.set("encryptedPrivateKey", encrypted);
421
+ }
422
+ else {
423
+ // No password - store as plain (but in encryptedPrivateKey field)
424
+ this.set("encryptedPrivateKey", privateKey);
136
425
  }
137
- return configKey;
138
426
  }
139
427
  // Environment management methods
140
428
  getEnvironments() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}