forgex-cli 1.0.59 → 1.0.62

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 (159) hide show
  1. package/README.md +375 -368
  2. package/dist/bin/forgex.d.ts +5 -5
  3. package/dist/bin/forgex.js +14 -14
  4. package/dist/bin/forgex.js.map +1 -1
  5. package/dist/src/adapters/codex-adapter.d.ts +90 -90
  6. package/dist/src/adapters/codex-adapter.d.ts.map +1 -1
  7. package/dist/src/adapters/codex-adapter.js +76 -76
  8. package/dist/src/adapters/codex-adapter.js.map +1 -1
  9. package/dist/src/adapters/connection.d.ts +6 -6
  10. package/dist/src/adapters/connection.js +8 -8
  11. package/dist/src/adapters/connection.js.map +1 -1
  12. package/dist/src/adapters/ipfs.d.ts +3 -3
  13. package/dist/src/adapters/ipfs.js +3 -3
  14. package/dist/src/adapters/jito-adapter.d.ts +85 -85
  15. package/dist/src/adapters/jito-adapter.d.ts.map +1 -1
  16. package/dist/src/adapters/jito-adapter.js +111 -111
  17. package/dist/src/adapters/jito-adapter.js.map +1 -1
  18. package/dist/src/adapters/rpc-adapter.d.ts +53 -53
  19. package/dist/src/adapters/rpc-adapter.d.ts.map +1 -1
  20. package/dist/src/adapters/rpc-adapter.js +69 -69
  21. package/dist/src/adapters/rpc-adapter.js.map +1 -1
  22. package/dist/src/adapters/sdk-adapter.d.ts +21 -21
  23. package/dist/src/adapters/sdk-adapter.d.ts.map +1 -1
  24. package/dist/src/adapters/sdk-adapter.js +79 -79
  25. package/dist/src/adapters/sdk-adapter.js.map +1 -1
  26. package/dist/src/commands/config/index.d.ts +1 -1
  27. package/dist/src/commands/config/index.js +15 -15
  28. package/dist/src/commands/config/index.js.map +1 -1
  29. package/dist/src/commands/query/index.d.ts +2 -2
  30. package/dist/src/commands/query/index.js +82 -82
  31. package/dist/src/commands/query/index.js.map +1 -1
  32. package/dist/src/commands/token/index.d.ts +8 -8
  33. package/dist/src/commands/token/index.js +73 -73
  34. package/dist/src/commands/token/index.js.map +1 -1
  35. package/dist/src/commands/tools/index.d.ts +9 -9
  36. package/dist/src/commands/tools/index.js +137 -137
  37. package/dist/src/commands/tools/index.js.map +1 -1
  38. package/dist/src/commands/trade/index.d.ts +2 -2
  39. package/dist/src/commands/trade/index.d.ts.map +1 -1
  40. package/dist/src/commands/trade/index.js +120 -82
  41. package/dist/src/commands/trade/index.js.map +1 -1
  42. package/dist/src/commands/transfer/index.d.ts +8 -8
  43. package/dist/src/commands/transfer/index.js +106 -106
  44. package/dist/src/commands/transfer/index.js.map +1 -1
  45. package/dist/src/commands/wallet/index.d.ts +1 -1
  46. package/dist/src/commands/wallet/index.js +175 -175
  47. package/dist/src/commands/wallet/index.js.map +1 -1
  48. package/dist/src/config.d.ts +26 -26
  49. package/dist/src/config.d.ts.map +1 -1
  50. package/dist/src/config.js +28 -28
  51. package/dist/src/config.js.map +1 -1
  52. package/dist/src/const/index.js +1 -1
  53. package/dist/src/const/index.js.map +1 -1
  54. package/dist/src/data-source.d.ts +81 -81
  55. package/dist/src/data-source.d.ts.map +1 -1
  56. package/dist/src/data-source.js +149 -149
  57. package/dist/src/data-source.js.map +1 -1
  58. package/dist/src/data-store/index.d.ts +22 -22
  59. package/dist/src/data-store/index.d.ts.map +1 -1
  60. package/dist/src/data-store/index.js +46 -46
  61. package/dist/src/data-store/index.js.map +1 -1
  62. package/dist/src/data-store/types.d.ts +3 -3
  63. package/dist/src/data-store/types.js +3 -3
  64. package/dist/src/index.d.ts +2 -2
  65. package/dist/src/index.js +10 -10
  66. package/dist/src/index.js.map +1 -1
  67. package/dist/src/output.d.ts +18 -18
  68. package/dist/src/output.d.ts.map +1 -1
  69. package/dist/src/output.js +34 -34
  70. package/dist/src/output.js.map +1 -1
  71. package/dist/src/shims/store.d.ts +3 -2
  72. package/dist/src/shims/store.d.ts.map +1 -1
  73. package/dist/src/shims/store.js +6 -5
  74. package/dist/src/shims/store.js.map +1 -1
  75. package/dist/src/sol-sdk/batch/create.d.ts +4 -1
  76. package/dist/src/sol-sdk/batch/create.d.ts.map +1 -1
  77. package/dist/src/sol-sdk/batch/create.js +44 -44
  78. package/dist/src/sol-sdk/batch/create.js.map +1 -1
  79. package/dist/src/sol-sdk/batch/index.js +135 -135
  80. package/dist/src/sol-sdk/batch/index.js.map +1 -1
  81. package/dist/src/sol-sdk/calc.d.ts +63 -63
  82. package/dist/src/sol-sdk/calc.d.ts.map +1 -1
  83. package/dist/src/sol-sdk/calc.js +120 -120
  84. package/dist/src/sol-sdk/calc.js.map +1 -1
  85. package/dist/src/sol-sdk/jito/index.js +12 -12
  86. package/dist/src/sol-sdk/jito/index.js.map +1 -1
  87. package/dist/src/sol-sdk/launchlab/instructions/create.js +10 -10
  88. package/dist/src/sol-sdk/launchlab/instructions/create.js.map +1 -1
  89. package/dist/src/sol-sdk/meteora/index.d.ts +5 -5
  90. package/dist/src/sol-sdk/meteora/index.js +11 -11
  91. package/dist/src/sol-sdk/meteora/index.js.map +1 -1
  92. package/dist/src/sol-sdk/meteora/instructions/buy.js +8 -8
  93. package/dist/src/sol-sdk/meteora/instructions/buy.js.map +1 -1
  94. package/dist/src/sol-sdk/meteora/instructions/sell.js +6 -6
  95. package/dist/src/sol-sdk/meteora/instructions/sell.js.map +1 -1
  96. package/dist/src/sol-sdk/pump/index.js +3 -3
  97. package/dist/src/sol-sdk/pump/index.js.map +1 -1
  98. package/dist/src/sol-sdk/pump/instructions/buy.d.ts +12 -12
  99. package/dist/src/sol-sdk/pump/instructions/buy.d.ts.map +1 -1
  100. package/dist/src/sol-sdk/pump/instructions/buy.js +26 -26
  101. package/dist/src/sol-sdk/pump/instructions/buy.js.map +1 -1
  102. package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts +13 -13
  103. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js +17 -17
  104. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js.map +1 -1
  105. package/dist/src/sol-sdk/pump/instructions/sell.d.ts +2 -2
  106. package/dist/src/sol-sdk/pump/instructions/sell.d.ts.map +1 -1
  107. package/dist/src/sol-sdk/pump/instructions/sell.js +7 -7
  108. package/dist/src/sol-sdk/pump/instructions/sell.js.map +1 -1
  109. package/dist/src/sol-sdk/pumpswap/index.d.ts +4 -4
  110. package/dist/src/sol-sdk/pumpswap/index.js +5 -5
  111. package/dist/src/sol-sdk/pumpswap/index.js.map +1 -1
  112. package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts +8 -8
  113. package/dist/src/sol-sdk/pumpswap/instructions/buy.js +19 -19
  114. package/dist/src/sol-sdk/pumpswap/instructions/buy.js.map +1 -1
  115. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js +2 -2
  116. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js.map +1 -1
  117. package/dist/src/sol-sdk/pumpswap/instructions/sell.js +4 -4
  118. package/dist/src/sol-sdk/pumpswap/instructions/sell.js.map +1 -1
  119. package/dist/src/sol-sdk/pumpswap/rpc/index.js +1 -1
  120. package/dist/src/sol-sdk/pumpswap/rpc/index.js.map +1 -1
  121. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js +3 -3
  122. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js.map +1 -1
  123. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts +40 -8520
  124. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts.map +1 -1
  125. package/dist/src/sol-sdk/raydium/instructions/sell.js +6 -6
  126. package/dist/src/sol-sdk/raydium/instructions/sell.js.map +1 -1
  127. package/dist/src/sol-sdk/raydium/rpc/index.d.ts +4 -4
  128. package/dist/src/sol-sdk/rpc/index.d.ts +14 -14
  129. package/dist/src/sol-sdk/rpc/index.d.ts.map +1 -1
  130. package/dist/src/sol-sdk/rpc/index.js +17 -17
  131. package/dist/src/sol-sdk/rpc/index.js.map +1 -1
  132. package/dist/src/sol-sdk/transfer/index.js +5 -5
  133. package/dist/src/sol-sdk/transfer/index.js.map +1 -1
  134. package/dist/src/sol-sdk/turnover/index.d.ts +3 -3
  135. package/dist/src/sol-sdk/turnover/index.js +56 -56
  136. package/dist/src/sol-sdk/turnover/index.js.map +1 -1
  137. package/dist/src/telemetry.d.ts +8 -8
  138. package/dist/src/telemetry.d.ts.map +1 -1
  139. package/dist/src/telemetry.js +25 -25
  140. package/dist/src/telemetry.js.map +1 -1
  141. package/dist/src/tx-tracker/detail-adapter.d.ts +53 -53
  142. package/dist/src/tx-tracker/detail-adapter.d.ts.map +1 -1
  143. package/dist/src/tx-tracker/detail-adapter.js +68 -68
  144. package/dist/src/tx-tracker/detail-adapter.js.map +1 -1
  145. package/dist/src/tx-tracker/index.d.ts +67 -67
  146. package/dist/src/tx-tracker/index.d.ts.map +1 -1
  147. package/dist/src/tx-tracker/index.js +103 -103
  148. package/dist/src/tx-tracker/index.js.map +1 -1
  149. package/dist/src/types/index.d.ts +10 -10
  150. package/dist/src/types/index.d.ts.map +1 -1
  151. package/dist/src/types/websocket.js +1 -1
  152. package/dist/src/types/websocket.js.map +1 -1
  153. package/dist/src/utils/index.js +20 -20
  154. package/dist/src/utils/index.js.map +1 -1
  155. package/dist/src/wallet-store.d.ts +51 -51
  156. package/dist/src/wallet-store.d.ts.map +1 -1
  157. package/dist/src/wallet-store.js +104 -104
  158. package/dist/src/wallet-store.js.map +1 -1
  159. package/package.json +1 -1
@@ -1,14 +1,14 @@
1
1
  /**
2
- * ForgeX CLI 钱包存储
2
+ * ForgeX CLI Wallet Store
3
3
  *
4
- * 本地加密存储钱包组数据,替代前端的 IndexedDB 持久化方案。
5
- * 使用 AES 加密私钥(静态加密),支持 KDF v3 格式导入/导出。
4
+ * Locally encrypted wallet group storage, replacing the frontend IndexedDB persistence.
5
+ * Uses AES encryption for private keys (encryption at rest), supports KDF v3 format import/export.
6
6
  *
7
- * 加密方案:
8
- * - 每个 WalletInfo.privateKey 字段使用 CryptoJS AES 加密存储
9
- * - master password 通过 FORGEX_PASSWORD 环境变量或 inquirer 交互输入
10
- * - WalletStoreData.encrypted 标记区分加密格式和旧明文格式
11
- * - 旧格式自动迁移到加密格式
7
+ * Encryption scheme:
8
+ * - Each WalletInfo.privateKey field is stored encrypted with CryptoJS AES
9
+ * - Master password via FORGEX_PASSWORD env var or inquirer interactive prompt
10
+ * - WalletStoreData.encrypted flag distinguishes encrypted format from legacy plaintext
11
+ * - Legacy format auto-migrates to encrypted format
12
12
  */
13
13
  import fs from 'fs';
14
14
  import path from 'path';
@@ -17,27 +17,27 @@ import { Keypair } from '@solana/web3.js';
17
17
  import bs58 from 'bs58';
18
18
  import { WALLETS_DIR, ensureConfigDir } from './config.js';
19
19
  // ============================================================
20
- // 常量
20
+ // Constants
21
21
  // ============================================================
22
22
  const STORE_FILE = 'wallet-store.json';
23
23
  const ENCRYPTED_STORE_FILE = 'wallet-store.enc';
24
- /** 用于密码校验的已知明文标记 */
24
+ /** Known plaintext marker for password verification */
25
25
  const PASSWORD_CHECK_PLAINTEXT = 'FORGEX_PASSWORD_OK';
26
26
  // ============================================================
27
- // Master Password 管理
27
+ // Master Password Management
28
28
  // ============================================================
29
- /** 运行时内存中的 master password(进程生命周期内有效) */
29
+ /** Runtime in-memory master password (valid for process lifetime) */
30
30
  let _masterPassword = null;
31
31
  /**
32
- * 设置 master password(供 CLI 入口调用)
33
- * 密码将保存在内存中,仅在当前进程生命周期内有效。
32
+ * Set master password (called from CLI entry point)
33
+ * Password is saved in memory, only valid for current process lifetime.
34
34
  */
35
35
  export function setMasterPassword(password) {
36
36
  _masterPassword = password;
37
37
  }
38
38
  /**
39
- * 获取当前 master password
40
- * 优先级:内存中的密码 > 环境变量 FORGEX_PASSWORD
39
+ * Get current master password
40
+ * Priority: in-memory password > FORGEX_PASSWORD env var
41
41
  */
42
42
  export function getMasterPassword() {
43
43
  if (_masterPassword)
@@ -50,84 +50,84 @@ export function getMasterPassword() {
50
50
  return null;
51
51
  }
52
52
  /**
53
- * 确保 master password 已设置。
54
- * 如果未设置,尝试从环境变量读取;如果仍未获取到,通过 inquirer 交互提示输入。
55
- * 此函数为异步函数,因为可能需要等待用户输入。
53
+ * Ensure master password is set.
54
+ * If not set, tries env var; if still not available, prompts via inquirer interactive input.
55
+ * This function is async because it may need to wait for user input.
56
56
  */
57
57
  export async function ensureMasterPassword() {
58
58
  const existing = getMasterPassword();
59
59
  if (existing)
60
60
  return existing;
61
- // 动态导入 inquirer 以避免在不需要时加载
61
+ // Dynamically import inquirer to avoid loading when not needed
62
62
  const { password: passwordPrompt } = await import('@inquirer/prompts');
63
63
  const pwd = await passwordPrompt({
64
- message: '请输入钱包加密密码 (master password):',
64
+ message: 'Enter wallet encryption password (master password):',
65
65
  mask: '*',
66
66
  });
67
67
  if (!pwd || pwd.trim().length === 0) {
68
- throw new Error('密码不能为空');
68
+ throw new Error('Password cannot be empty');
69
69
  }
70
70
  _masterPassword = pwd;
71
71
  return pwd;
72
72
  }
73
73
  // ============================================================
74
- // 私钥加解密
74
+ // Private Key Encryption/Decryption
75
75
  // ============================================================
76
- /** 使用 master password 加密一个私钥 */
76
+ /** Encrypt a private key with master password */
77
77
  function encryptPrivateKey(plainPrivateKey, password) {
78
78
  return CryptoJS.AES.encrypt(plainPrivateKey, password).toString();
79
79
  }
80
- /** 使用 master password 解密一个私钥 */
80
+ /** Decrypt a private key with master password */
81
81
  function decryptPrivateKey(encryptedPrivateKey, password) {
82
82
  const bytes = CryptoJS.AES.decrypt(encryptedPrivateKey, password);
83
83
  const result = bytes.toString(CryptoJS.enc.Utf8);
84
84
  if (!result) {
85
- throw new Error('私钥解密失败:密码错误或数据已损坏');
85
+ throw new Error('Private key decryption failed: wrong password or corrupted data');
86
86
  }
87
87
  return result;
88
88
  }
89
89
  /**
90
- * 解密单个 WalletInfo 的私钥(供 SDK 和命令调用)
90
+ * Decrypt a single WalletInfo private key (for SDK and command use)
91
91
  *
92
- * 如果存储未加密(旧格式),直接返回原始 privateKey
93
- * 如果已加密,使用 master password 解密后返回 Base58 明文私钥。
92
+ * If storage is unencrypted (legacy format), returns original privateKey directly.
93
+ * If encrypted, decrypts with master password and returns Base58 plaintext private key.
94
94
  */
95
95
  export function getDecryptedPrivateKey(walletInfo) {
96
96
  const password = getMasterPassword();
97
- // 如果没有设置密码,假定为未加密格式,直接返回
97
+ // If no password set, assume unencrypted format, return directly
98
98
  if (!password) {
99
99
  return walletInfo.privateKey;
100
100
  }
101
- // 尝试解密
101
+ // Try to decrypt
102
102
  try {
103
103
  const decrypted = decryptPrivateKey(walletInfo.privateKey, password);
104
- // 验证解密结果是否为有效的 Base58 私钥
104
+ // Verify decrypted result is a valid Base58 private key
105
105
  bs58.decode(decrypted);
106
106
  return decrypted;
107
107
  }
108
108
  catch {
109
- // 如果解密失败,可能是未加密的明文私钥(向后兼容)
109
+ // If decryption fails, may be unencrypted plaintext private key (backward compatible)
110
110
  try {
111
111
  bs58.decode(walletInfo.privateKey);
112
112
  return walletInfo.privateKey;
113
113
  }
114
114
  catch {
115
- throw new Error(`私钥解密失败:密码错误或私钥数据已损坏 (钱包: ${walletInfo.walletAddress})`);
115
+ throw new Error(`Private key decryption failed: wrong password or corrupted key data (wallet: ${walletInfo.walletAddress})`);
116
116
  }
117
117
  }
118
118
  }
119
119
  /**
120
- * 异步版本的解密函数,会自动确保密码已设置
120
+ * Async version of decryption function, auto-ensures password is set
121
121
  */
122
122
  export async function getDecryptedPrivateKeyAsync(walletInfo) {
123
123
  await ensureMasterPassword();
124
124
  return getDecryptedPrivateKey(walletInfo);
125
125
  }
126
- /** 生成密码校验值 */
126
+ /** Generate password checksum */
127
127
  function generatePasswordCheck(password) {
128
128
  return CryptoJS.AES.encrypt(PASSWORD_CHECK_PLAINTEXT, password).toString();
129
129
  }
130
- /** 验证密码是否正确 */
130
+ /** Verify if password is correct */
131
131
  function verifyPassword(password, checkValue) {
132
132
  try {
133
133
  const bytes = CryptoJS.AES.decrypt(checkValue, password);
@@ -139,7 +139,7 @@ function verifyPassword(password, checkValue) {
139
139
  }
140
140
  }
141
141
  // ============================================================
142
- // 工具函数
142
+ // Utility Functions
143
143
  // ============================================================
144
144
  function getStorePath() {
145
145
  ensureConfigDir();
@@ -150,9 +150,9 @@ function getEncryptedStorePath() {
150
150
  return path.join(WALLETS_DIR, ENCRYPTED_STORE_FILE);
151
151
  }
152
152
  // ============================================================
153
- // 存储操作
153
+ // Storage Operations
154
154
  // ============================================================
155
- /** 加载钱包存储数据(原始格式,不解密私钥) */
155
+ /** Load wallet store data (raw format, does not decrypt private keys) */
156
156
  export function loadWalletStore() {
157
157
  const storePath = getStorePath();
158
158
  if (!fs.existsSync(storePath)) {
@@ -163,62 +163,62 @@ export function loadWalletStore() {
163
163
  return JSON.parse(raw);
164
164
  }
165
165
  catch (err) {
166
- // 文件损坏:备份损坏文件并警告用户
166
+ // File corrupted: backup corrupted file and warn user
167
167
  const bakPath = `${storePath}.bak`;
168
168
  try {
169
169
  fs.renameSync(storePath, bakPath);
170
- console.warn(`警告: 钱包存储文件已损坏,已备份至 ${bakPath}。将使用空数据继续运行。`);
170
+ console.warn(`Warning: wallet store file is corrupted, backed up to ${bakPath}. Will continue with empty data.`);
171
171
  }
172
172
  catch {
173
- console.warn(`警告: 钱包存储文件已损坏且无法创建备份。将使用空数据继续运行。`);
173
+ console.warn(`Warning: wallet store file is corrupted and backup failed. Will continue with empty data.`);
174
174
  }
175
175
  return { groups: {}, notes: {}, devWallets: {} };
176
176
  }
177
177
  }
178
- /** 保存钱包存储数据 */
178
+ /** Save wallet store data */
179
179
  export function saveWalletStore(data) {
180
180
  ensureConfigDir();
181
181
  const storePath = getStorePath();
182
182
  fs.writeFileSync(storePath, JSON.stringify(data, null, 2), { encoding: 'utf-8', mode: 0o600 });
183
183
  }
184
184
  // ============================================================
185
- // 加密迁移
185
+ // Encryption Migration
186
186
  // ============================================================
187
187
  /**
188
- * 检测存储是否为旧格式(未加密),如果是则提示并执行迁移。
188
+ * Detect if storage is legacy format (unencrypted), prompt and execute migration if so.
189
189
  *
190
- * 此函数应在 CLI 入口处调用。迁移过程:
191
- * 1. 读取明文存储
192
- * 2. 确保用户设置了 master password
193
- * 3. 加密所有 privateKey 字段
194
- * 4. 添加 encrypted 标记和密码校验值
195
- * 5. 保存加密后的存储
190
+ * This function should be called at CLI entry. Migration process:
191
+ * 1. Read plaintext storage
192
+ * 2. Ensure user has set master password
193
+ * 3. Encrypt all privateKey fields
194
+ * 4. Add encrypted flag and password checksum
195
+ * 5. Save encrypted storage
196
196
  */
197
197
  export async function migrateToEncryptedStore() {
198
198
  const store = loadWalletStore();
199
- // 如果没有数据或已加密,跳过
199
+ // Skip if no data or already encrypted
200
200
  if (Object.keys(store.groups).length === 0)
201
201
  return;
202
202
  if (store.encrypted === true)
203
203
  return;
204
- // 检查是否有需要加密的私钥
204
+ // Check if there are private keys to encrypt
205
205
  const hasPrivateKeys = Object.values(store.groups).some(g => g.wallets.some(w => w.privateKey && w.privateKey.length > 0));
206
206
  if (!hasPrivateKeys)
207
207
  return;
208
- console.warn('检测到钱包存储使用旧格式(明文私钥),需要迁移到加密格式。');
208
+ console.warn('Detected wallet store using legacy format (plaintext private keys), migration to encrypted format required.');
209
209
  const password = await ensureMasterPassword();
210
- // 备份原始文件
210
+ // Backup original file
211
211
  const storePath = getStorePath();
212
212
  const bakPath = `${storePath}.pre-encryption.bak`;
213
213
  try {
214
214
  fs.copyFileSync(storePath, bakPath);
215
215
  fs.chmodSync(bakPath, 0o600);
216
- console.warn(`已备份原始文件至 ${bakPath}`);
216
+ console.warn(`Original file backed up to ${bakPath}`);
217
217
  }
218
218
  catch {
219
- console.warn('警告: 无法创建备份文件,继续迁移...');
219
+ console.warn('Warning: unable to create backup file, continuing migration...');
220
220
  }
221
- // 加密所有私钥
221
+ // Encrypt all private keys
222
222
  for (const group of Object.values(store.groups)) {
223
223
  for (const wallet of group.wallets) {
224
224
  if (wallet.privateKey) {
@@ -229,56 +229,56 @@ export async function migrateToEncryptedStore() {
229
229
  store.encrypted = true;
230
230
  store.passwordCheck = generatePasswordCheck(password);
231
231
  saveWalletStore(store);
232
- console.warn('钱包存储已成功迁移到加密格式。');
232
+ console.warn('Wallet store successfully migrated to encrypted format.');
233
233
  }
234
234
  /**
235
- * 验证当前 master password 是否与存储中的密码校验值匹配。
236
- * 如果存储未加密,返回 true
235
+ * Verify if current master password matches the stored password checksum.
236
+ * Returns true if storage is unencrypted.
237
237
  */
238
238
  export function validateMasterPassword() {
239
239
  const store = loadWalletStore();
240
240
  if (!store.encrypted)
241
241
  return true;
242
242
  if (!store.passwordCheck)
243
- return true; // 没有校验值时跳过
243
+ return true; // Skip when no checksum
244
244
  const password = getMasterPassword();
245
245
  if (!password)
246
246
  return false;
247
247
  return verifyPassword(password, store.passwordCheck);
248
248
  }
249
249
  /**
250
- * 确保密码已设置且正确。供 CLI 入口在执行需要私钥的命令前调用。
250
+ * Ensure password is set and correct. Called by CLI entry before commands requiring private keys.
251
251
  */
252
252
  export async function ensurePasswordAndValidate() {
253
253
  const store = loadWalletStore();
254
254
  if (!store.encrypted)
255
- return; // 未加密存储不需要密码
255
+ return; // Unencrypted storage does not need password
256
256
  const password = await ensureMasterPassword();
257
257
  if (store.passwordCheck && !verifyPassword(password, store.passwordCheck)) {
258
- _masterPassword = null; // 清除错误密码
259
- throw new Error('密码错误:无法解密钱包存储。请检查密码是否正确。');
258
+ _masterPassword = null; // Clear incorrect password
259
+ throw new Error('Wrong password: unable to decrypt wallet store. Please check your password.');
260
260
  }
261
261
  }
262
262
  // ============================================================
263
- // 钱包组操作
263
+ // Wallet Group Operations
264
264
  // ============================================================
265
- /** 获取所有钱包组 */
265
+ /** Get all wallet groups */
266
266
  export function getAllGroups() {
267
267
  const store = loadWalletStore();
268
268
  return Object.values(store.groups);
269
269
  }
270
- /** 获取单个钱包组 */
270
+ /** Get a single wallet group */
271
271
  export function getGroup(groupId) {
272
272
  const store = loadWalletStore();
273
273
  return store.groups[groupId];
274
274
  }
275
- /** 保存钱包组(新增或更新) */
275
+ /** Save wallet group (create or update) */
276
276
  export function saveGroup(group) {
277
277
  const store = loadWalletStore();
278
278
  store.groups[group.groupId] = group;
279
279
  saveWalletStore(store);
280
280
  }
281
- /** 删除钱包组 */
281
+ /** Delete wallet group */
282
282
  export function removeGroup(groupId) {
283
283
  const store = loadWalletStore();
284
284
  if (!store.groups[groupId])
@@ -287,20 +287,20 @@ export function removeGroup(groupId) {
287
287
  saveWalletStore(store);
288
288
  return true;
289
289
  }
290
- /** 向钱包组添加钱包(私钥将根据存储状态自动加密) */
290
+ /** Add wallets to group (private keys auto-encrypted based on storage state) */
291
291
  export function addWalletsToGroup(groupId, wallets) {
292
292
  const store = loadWalletStore();
293
293
  const group = store.groups[groupId];
294
294
  if (!group)
295
295
  return false;
296
- // 去重检查
296
+ // Deduplication check
297
297
  const existingAddresses = new Set(group.wallets.map(w => w.walletAddress));
298
298
  const newWallets = wallets.filter(w => !existingAddresses.has(w.walletAddress));
299
- // 如果存储已加密,加密新钱包的私钥
299
+ // If storage is encrypted, encrypt new wallet private keys
300
300
  if (store.encrypted) {
301
301
  const password = getMasterPassword();
302
302
  if (!password) {
303
- throw new Error('存储已加密但未设置密码,请先调用 ensureMasterPassword()');
303
+ throw new Error('Storage is encrypted but no password set, call ensureMasterPassword() first');
304
304
  }
305
305
  for (const w of newWallets) {
306
306
  w.privateKey = encryptPrivateKey(w.privateKey, password);
@@ -310,7 +310,7 @@ export function addWalletsToGroup(groupId, wallets) {
310
310
  saveWalletStore(store);
311
311
  return true;
312
312
  }
313
- /** 从钱包组移除钱包 */
313
+ /** Remove wallet from group */
314
314
  export function removeWalletsFromGroup(groupId, addresses) {
315
315
  const store = loadWalletStore();
316
316
  const group = store.groups[groupId];
@@ -322,9 +322,9 @@ export function removeWalletsFromGroup(groupId, addresses) {
322
322
  return true;
323
323
  }
324
324
  // ============================================================
325
- // 钱包生成
325
+ // Wallet Generation
326
326
  // ============================================================
327
- /** 生成新钱包(返回明文私钥,存储时由 addWalletsToGroup 负责加密) */
327
+ /** Generate new wallets (returns plaintext private keys, encryption handled by addWalletsToGroup) */
328
328
  export function generateWallets(count) {
329
329
  const wallets = [];
330
330
  for (let i = 0; i < count; i++) {
@@ -337,7 +337,7 @@ export function generateWallets(count) {
337
337
  }
338
338
  return wallets;
339
339
  }
340
- /** 从私钥恢复钱包信息 */
340
+ /** Restore wallet info from private key */
341
341
  export function walletFromPrivateKey(privateKey, note = '') {
342
342
  const keypair = Keypair.fromSecretKey(bs58.decode(privateKey));
343
343
  return {
@@ -347,12 +347,12 @@ export function walletFromPrivateKey(privateKey, note = '') {
347
347
  };
348
348
  }
349
349
  // ============================================================
350
- // 加密 / 导出(导出时解密,导入时加密)
350
+ // Encryption / Export (decrypt on export, encrypt on import)
351
351
  // ============================================================
352
- /** 加密导出钱包存储(整体加密,用于备份) */
352
+ /** Encrypted export of wallet store (whole-file encryption, for backup) */
353
353
  export function encryptWalletStore(password) {
354
354
  const store = loadWalletStore();
355
- // 如果存储已加密,先解密私钥再整体加密
355
+ // If storage is encrypted, decrypt private keys first then encrypt whole
356
356
  if (store.encrypted) {
357
357
  const masterPwd = getMasterPassword();
358
358
  if (masterPwd) {
@@ -363,21 +363,21 @@ export function encryptWalletStore(password) {
363
363
  wallet.privateKey = decryptPrivateKey(wallet.privateKey, masterPwd);
364
364
  }
365
365
  catch {
366
- // 如果解密失败,保持原样
366
+ // If decryption fails, keep as-is
367
367
  }
368
368
  }
369
369
  }
370
370
  }
371
371
  }
372
372
  }
373
- // 移除加密标记(导出的是明文数据的整体加密)
373
+ // Remove encrypted flag (export is whole-file encryption of plaintext data)
374
374
  const exportData = { ...store };
375
375
  delete exportData.encrypted;
376
376
  delete exportData.passwordCheck;
377
377
  const json = JSON.stringify(exportData);
378
378
  return CryptoJS.AES.encrypt(json, password).toString();
379
379
  }
380
- /** 解密导入钱包存储 */
380
+ /** Decrypt and import wallet store */
381
381
  export function decryptWalletStore(encrypted, password) {
382
382
  try {
383
383
  const bytes = CryptoJS.AES.decrypt(encrypted, password);
@@ -390,7 +390,7 @@ export function decryptWalletStore(encrypted, password) {
390
390
  return null;
391
391
  }
392
392
  }
393
- /** 导出钱包组为 CSV(自动解密私钥) */
393
+ /** Export wallet group as CSV (auto-decrypts private keys) */
394
394
  export function exportGroupToCsv(groupId) {
395
395
  const group = getGroup(groupId);
396
396
  if (!group)
@@ -401,24 +401,24 @@ export function exportGroupToCsv(groupId) {
401
401
  for (const w of group.wallets) {
402
402
  const note = w.note.replace(/,/g, '\\,').replace(/\n/g, '\\n');
403
403
  let pk = w.privateKey;
404
- // 如果存储已加密,解密私钥用于导出
404
+ // If storage is encrypted, decrypt private keys for export
405
405
  if (store.encrypted && password) {
406
406
  try {
407
407
  pk = decryptPrivateKey(pk, password);
408
408
  }
409
409
  catch {
410
- // 解密失败时保持原样
410
+ // Keep as-is on decryption failure
411
411
  }
412
412
  }
413
413
  lines.push(`${w.walletAddress},${pk},${note}`);
414
414
  }
415
415
  return lines.join('\n');
416
416
  }
417
- /** CSV 导入钱包 */
417
+ /** Import wallets from CSV */
418
418
  export function importWalletsFromCsv(csvContent) {
419
419
  const lines = csvContent.trim().split('\n');
420
420
  const wallets = [];
421
- // 跳过表头
421
+ // Skip header
422
422
  const startIndex = lines[0]?.toLowerCase().includes('walletaddress') ? 1 : 0;
423
423
  for (let i = startIndex; i < lines.length; i++) {
424
424
  const line = lines[i].trim();
@@ -430,12 +430,12 @@ export function importWalletsFromCsv(csvContent) {
430
430
  const address = parts[0].trim();
431
431
  const privateKey = parts[1].trim();
432
432
  const note = (parts[2] || '').trim().replace(/\\,/g, ',').replace(/\\n/g, '\n');
433
- // 验证私钥
433
+ // Validate private key
434
434
  try {
435
435
  const keypair = Keypair.fromSecretKey(bs58.decode(privateKey));
436
436
  const derivedAddress = keypair.publicKey.toBase58();
437
437
  if (address && derivedAddress !== address) {
438
- console.warn(`警告: 地址不匹配 ( ${i + 1}): ${address} != ${derivedAddress}`);
438
+ console.warn(`Warning: address mismatch (line ${i + 1}): ${address} != ${derivedAddress}`);
439
439
  }
440
440
  wallets.push({
441
441
  walletAddress: derivedAddress,
@@ -444,17 +444,17 @@ export function importWalletsFromCsv(csvContent) {
444
444
  });
445
445
  }
446
446
  catch {
447
- console.warn(`跳过无效私钥 ( ${i + 1})`);
447
+ console.warn(`Skipping invalid private key (line ${i + 1})`);
448
448
  }
449
449
  }
450
450
  return wallets;
451
451
  }
452
- /** 导出所有钱包组为 JSON(兼容前端导入格式,自动解密私钥) */
452
+ /** Export all wallet groups as JSON (compatible with frontend import format, auto-decrypts private keys) */
453
453
  export function exportAllGroupsJson() {
454
454
  const groups = getAllGroups();
455
455
  const store = loadWalletStore();
456
456
  const password = getMasterPassword();
457
- // 如果存储已加密,解密私钥用于导出
457
+ // If storage is encrypted, decrypt private keys for export
458
458
  if (store.encrypted && password) {
459
459
  for (const group of groups) {
460
460
  for (const wallet of group.wallets) {
@@ -463,7 +463,7 @@ export function exportAllGroupsJson() {
463
463
  wallet.privateKey = decryptPrivateKey(wallet.privateKey, password);
464
464
  }
465
465
  catch {
466
- // 解密失败时保持原样
466
+ // Keep as-is on decryption failure
467
467
  }
468
468
  }
469
469
  }
@@ -471,15 +471,15 @@ export function exportAllGroupsJson() {
471
471
  }
472
472
  return JSON.stringify(groups, null, 2);
473
473
  }
474
- /** 导出加密的钱包组 JSON */
474
+ /** Export encrypted wallet groups JSON */
475
475
  export function exportEncryptedGroupsJson(password) {
476
476
  const json = exportAllGroupsJson();
477
477
  return CryptoJS.AES.encrypt(json, password).toString();
478
478
  }
479
- /** 导入钱包组 JSON */
479
+ /** Import wallet groups JSON */
480
480
  export function importGroupsFromJson(jsonContent, password) {
481
481
  let content = jsonContent;
482
- // 尝试解密
482
+ // Try to decrypt
483
483
  if (password) {
484
484
  try {
485
485
  const bytes = CryptoJS.AES.decrypt(content, password);
@@ -503,20 +503,20 @@ export function importGroupsFromJson(jsonContent, password) {
503
503
  }
504
504
  }
505
505
  // ============================================================
506
- // 备注管理
506
+ // Note Management
507
507
  // ============================================================
508
- /** 获取钱包备注 */
508
+ /** Get wallet note */
509
509
  export function getNote(address) {
510
510
  const store = loadWalletStore();
511
511
  return store.notes[address] || '';
512
512
  }
513
- /** 设置钱包备注 */
513
+ /** Set wallet note */
514
514
  export function setNote(address, note) {
515
515
  const store = loadWalletStore();
516
516
  store.notes[address] = note;
517
517
  saveWalletStore(store);
518
518
  }
519
- /** 获取所有备注 */
519
+ /** Get all notes */
520
520
  export function getAllNotes() {
521
521
  const store = loadWalletStore();
522
522
  return store.notes;
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-store.js","sourceRoot":"","sources":["../../src/wallet-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-store.js","sourceRoot":"","sources":["../../src/wallet-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forgex-cli",
3
- "version": "1.0.59",
3
+ "version": "1.0.62",
4
4
  "description": "ForgeX CLI - Solana on-chain market making system command-line tool",
5
5
  "type": "module",
6
6
  "author": "cat",