forgex-cli 1.0.59 → 1.0.61

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 (158) 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.js +82 -82
  40. package/dist/src/commands/trade/index.js.map +1 -1
  41. package/dist/src/commands/transfer/index.d.ts +8 -8
  42. package/dist/src/commands/transfer/index.js +106 -106
  43. package/dist/src/commands/transfer/index.js.map +1 -1
  44. package/dist/src/commands/wallet/index.d.ts +1 -1
  45. package/dist/src/commands/wallet/index.js +175 -175
  46. package/dist/src/commands/wallet/index.js.map +1 -1
  47. package/dist/src/config.d.ts +26 -26
  48. package/dist/src/config.d.ts.map +1 -1
  49. package/dist/src/config.js +28 -28
  50. package/dist/src/config.js.map +1 -1
  51. package/dist/src/const/index.js +1 -1
  52. package/dist/src/const/index.js.map +1 -1
  53. package/dist/src/data-source.d.ts +81 -81
  54. package/dist/src/data-source.d.ts.map +1 -1
  55. package/dist/src/data-source.js +149 -149
  56. package/dist/src/data-source.js.map +1 -1
  57. package/dist/src/data-store/index.d.ts +22 -22
  58. package/dist/src/data-store/index.d.ts.map +1 -1
  59. package/dist/src/data-store/index.js +46 -46
  60. package/dist/src/data-store/index.js.map +1 -1
  61. package/dist/src/data-store/types.d.ts +3 -3
  62. package/dist/src/data-store/types.js +3 -3
  63. package/dist/src/index.d.ts +2 -2
  64. package/dist/src/index.js +10 -10
  65. package/dist/src/index.js.map +1 -1
  66. package/dist/src/output.d.ts +18 -18
  67. package/dist/src/output.d.ts.map +1 -1
  68. package/dist/src/output.js +34 -34
  69. package/dist/src/output.js.map +1 -1
  70. package/dist/src/shims/store.d.ts +3 -2
  71. package/dist/src/shims/store.d.ts.map +1 -1
  72. package/dist/src/shims/store.js +6 -5
  73. package/dist/src/shims/store.js.map +1 -1
  74. package/dist/src/sol-sdk/batch/create.d.ts +4 -1
  75. package/dist/src/sol-sdk/batch/create.d.ts.map +1 -1
  76. package/dist/src/sol-sdk/batch/create.js +44 -44
  77. package/dist/src/sol-sdk/batch/create.js.map +1 -1
  78. package/dist/src/sol-sdk/batch/index.js +135 -135
  79. package/dist/src/sol-sdk/batch/index.js.map +1 -1
  80. package/dist/src/sol-sdk/calc.d.ts +63 -63
  81. package/dist/src/sol-sdk/calc.d.ts.map +1 -1
  82. package/dist/src/sol-sdk/calc.js +120 -120
  83. package/dist/src/sol-sdk/calc.js.map +1 -1
  84. package/dist/src/sol-sdk/jito/index.js +12 -12
  85. package/dist/src/sol-sdk/jito/index.js.map +1 -1
  86. package/dist/src/sol-sdk/launchlab/instructions/create.js +10 -10
  87. package/dist/src/sol-sdk/launchlab/instructions/create.js.map +1 -1
  88. package/dist/src/sol-sdk/meteora/index.d.ts +5 -5
  89. package/dist/src/sol-sdk/meteora/index.js +11 -11
  90. package/dist/src/sol-sdk/meteora/index.js.map +1 -1
  91. package/dist/src/sol-sdk/meteora/instructions/buy.js +8 -8
  92. package/dist/src/sol-sdk/meteora/instructions/buy.js.map +1 -1
  93. package/dist/src/sol-sdk/meteora/instructions/sell.js +6 -6
  94. package/dist/src/sol-sdk/meteora/instructions/sell.js.map +1 -1
  95. package/dist/src/sol-sdk/pump/index.js +3 -3
  96. package/dist/src/sol-sdk/pump/index.js.map +1 -1
  97. package/dist/src/sol-sdk/pump/instructions/buy.d.ts +12 -12
  98. package/dist/src/sol-sdk/pump/instructions/buy.d.ts.map +1 -1
  99. package/dist/src/sol-sdk/pump/instructions/buy.js +26 -26
  100. package/dist/src/sol-sdk/pump/instructions/buy.js.map +1 -1
  101. package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts +13 -13
  102. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js +17 -17
  103. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js.map +1 -1
  104. package/dist/src/sol-sdk/pump/instructions/sell.d.ts +2 -2
  105. package/dist/src/sol-sdk/pump/instructions/sell.d.ts.map +1 -1
  106. package/dist/src/sol-sdk/pump/instructions/sell.js +7 -7
  107. package/dist/src/sol-sdk/pump/instructions/sell.js.map +1 -1
  108. package/dist/src/sol-sdk/pumpswap/index.d.ts +4 -4
  109. package/dist/src/sol-sdk/pumpswap/index.js +5 -5
  110. package/dist/src/sol-sdk/pumpswap/index.js.map +1 -1
  111. package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts +8 -8
  112. package/dist/src/sol-sdk/pumpswap/instructions/buy.js +19 -19
  113. package/dist/src/sol-sdk/pumpswap/instructions/buy.js.map +1 -1
  114. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js +2 -2
  115. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js.map +1 -1
  116. package/dist/src/sol-sdk/pumpswap/instructions/sell.js +4 -4
  117. package/dist/src/sol-sdk/pumpswap/instructions/sell.js.map +1 -1
  118. package/dist/src/sol-sdk/pumpswap/rpc/index.js +1 -1
  119. package/dist/src/sol-sdk/pumpswap/rpc/index.js.map +1 -1
  120. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js +3 -3
  121. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js.map +1 -1
  122. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts +40 -8520
  123. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts.map +1 -1
  124. package/dist/src/sol-sdk/raydium/instructions/sell.js +6 -6
  125. package/dist/src/sol-sdk/raydium/instructions/sell.js.map +1 -1
  126. package/dist/src/sol-sdk/raydium/rpc/index.d.ts +4 -4
  127. package/dist/src/sol-sdk/rpc/index.d.ts +14 -14
  128. package/dist/src/sol-sdk/rpc/index.d.ts.map +1 -1
  129. package/dist/src/sol-sdk/rpc/index.js +17 -17
  130. package/dist/src/sol-sdk/rpc/index.js.map +1 -1
  131. package/dist/src/sol-sdk/transfer/index.js +5 -5
  132. package/dist/src/sol-sdk/transfer/index.js.map +1 -1
  133. package/dist/src/sol-sdk/turnover/index.d.ts +3 -3
  134. package/dist/src/sol-sdk/turnover/index.js +56 -56
  135. package/dist/src/sol-sdk/turnover/index.js.map +1 -1
  136. package/dist/src/telemetry.d.ts +8 -8
  137. package/dist/src/telemetry.d.ts.map +1 -1
  138. package/dist/src/telemetry.js +25 -25
  139. package/dist/src/telemetry.js.map +1 -1
  140. package/dist/src/tx-tracker/detail-adapter.d.ts +53 -53
  141. package/dist/src/tx-tracker/detail-adapter.d.ts.map +1 -1
  142. package/dist/src/tx-tracker/detail-adapter.js +68 -68
  143. package/dist/src/tx-tracker/detail-adapter.js.map +1 -1
  144. package/dist/src/tx-tracker/index.d.ts +67 -67
  145. package/dist/src/tx-tracker/index.d.ts.map +1 -1
  146. package/dist/src/tx-tracker/index.js +103 -103
  147. package/dist/src/tx-tracker/index.js.map +1 -1
  148. package/dist/src/types/index.d.ts +10 -10
  149. package/dist/src/types/index.d.ts.map +1 -1
  150. package/dist/src/types/websocket.js +1 -1
  151. package/dist/src/types/websocket.js.map +1 -1
  152. package/dist/src/utils/index.js +20 -20
  153. package/dist/src/utils/index.js.map +1 -1
  154. package/dist/src/wallet-store.d.ts +51 -51
  155. package/dist/src/wallet-store.d.ts.map +1 -1
  156. package/dist/src/wallet-store.js +104 -104
  157. package/dist/src/wallet-store.js.map +1 -1
  158. package/package.json +1 -1
@@ -1,15 +1,15 @@
1
1
  /**
2
- * 转账命令组 - 真实交易执行
2
+ * Transfer command group - real transaction execution
3
3
  *
4
4
  * forgex transfer in | out | many-to-many
5
5
  *
6
- * Phase 3 升级:
7
- * - 使用 DataSource 门面进行余额查询
8
- * - 集成 TxTracker 自动追踪转账结果
9
- * - 添加 ensurePasswordAndValidate 密码验证
10
- * - 添加 suppressConsole/restoreConsole 防止 JSON 输出污染
11
- * - 完善输入参数验证
12
- * - 添加余额预检查
6
+ * Phase 3 upgrade:
7
+ * - Use DataSource facade for balance queries
8
+ * - Integrate TxTracker for automatic transfer result tracking
9
+ * - Add ensurePasswordAndValidate for password verification
10
+ * - Add suppressConsole/restoreConsole to prevent JSON output pollution
11
+ * - Improve input parameter validation
12
+ * - Add balance pre-check
13
13
  */
14
14
  import { getGroup, getAllGroups, getDecryptedPrivateKey, ensurePasswordAndValidate } from '../../wallet-store.js';
15
15
  import { loadConfig } from '../../config.js';
@@ -19,54 +19,54 @@ import { getDataSource } from '../../data-source.js';
19
19
  export function registerTransferCommands(program) {
20
20
  const transferCmd = program
21
21
  .command('transfer')
22
- .description('转账操作');
22
+ .description('Transfer operations');
23
23
  // ============================================================
24
- // forgex transfer in - 真实批量收集
24
+ // forgex transfer in - real batch collect
25
25
  // ============================================================
26
26
  transferCmd
27
27
  .command('in')
28
- .description('批量收集(多个钱包汇集到一个地址)')
29
- .requiredOption('--to <address>', '目标地址')
30
- .requiredOption('--from-group <id>', '源钱包组 ID')
31
- .option('--token <token>', '代币: SOL 或合约地址', 'SOL')
32
- .option('--amount <type>', '金额类型: all | fixed | reserve', 'all')
33
- .option('--value <n>', '金额值 (SOL 或代币数量)')
34
- .option('--priority-fee <sol>', '优先费 (SOL)')
35
- .option('--dry-run', '仅模拟,不实际执行', false)
28
+ .description('Batch collect (multiple wallets to one address)')
29
+ .requiredOption('--to <address>', 'Target address')
30
+ .requiredOption('--from-group <id>', 'Source wallet group ID')
31
+ .option('--token <token>', 'Token: SOL or contract address', 'SOL')
32
+ .option('--amount <type>', 'Amount type: all | fixed | reserve', 'all')
33
+ .option('--value <n>', 'Amount value (SOL or token count)')
34
+ .option('--priority-fee <sol>', 'Priority fee (SOL)')
35
+ .option('--dry-run', 'Simulate only, do not execute', false)
36
36
  .action(async (options) => {
37
37
  try {
38
- // 密码验证
38
+ // Password verification
39
39
  await ensurePasswordAndValidate();
40
40
  const config = loadConfig();
41
41
  const groupId = Number(options.fromGroup);
42
- // 参数验证
42
+ // Parameter validation
43
43
  if (isNaN(groupId)) {
44
- error('--from-group 必须是有效数字');
44
+ error('--from-group must be a valid number');
45
45
  process.exit(1);
46
46
  }
47
47
  const group = getGroup(groupId);
48
48
  if (!group) {
49
- error(`钱包组 ${groupId} 不存在`);
49
+ error(`Wallet group ${groupId} does not exist`);
50
50
  process.exit(1);
51
51
  }
52
52
  if (group.wallets.length === 0) {
53
- error('钱包组中没有钱包');
53
+ error('Wallet group has no wallets');
54
54
  process.exit(1);
55
55
  }
56
- // --amount 校验
56
+ // --amount validation
57
57
  const validAmountTypes = ['all', 'fixed', 'reserve'];
58
58
  if (!validAmountTypes.includes(options.amount)) {
59
- error(`--amount 无效: "${options.amount}",必须是 all | fixed | reserve`);
59
+ error(`--amount invalid: "${options.amount}", must be all | fixed | reserve`);
60
60
  process.exit(1);
61
61
  }
62
62
  if ((options.amount === 'fixed' || options.amount === 'reserve') && !options.value) {
63
- error(`--amount ${options.amount} 模式需要 --value 参数`);
63
+ error(`--amount ${options.amount} mode requires --value parameter`);
64
64
  process.exit(1);
65
65
  }
66
66
  if (options.value) {
67
67
  const val = Number(options.value);
68
68
  if (isNaN(val) || val < 0) {
69
- error('--value 必须是非负数字');
69
+ error('--value must be a non-negative number');
70
70
  process.exit(1);
71
71
  }
72
72
  }
@@ -74,13 +74,13 @@ export function registerTransferCommands(program) {
74
74
  ? Number(options.priorityFee)
75
75
  : config.defaultPriorityFee;
76
76
  if (isNaN(priorityFee) || priorityFee < 0) {
77
- error('--priority-fee 必须是非负数字');
77
+ error('--priority-fee must be a non-negative number');
78
78
  process.exit(1);
79
79
  }
80
80
  const wallets = buildWalletList(group);
81
81
  const ds = getDataSource();
82
82
  if (options.dryRun) {
83
- // 查询余额 -- 通过 DataSource
83
+ // Query balance via DataSource
84
84
  const balances = [];
85
85
  for (const w of wallets) {
86
86
  const bal = await ds.getSolBalance(w.address);
@@ -92,15 +92,15 @@ export function registerTransferCommands(program) {
92
92
  walletCount: wallets.length,
93
93
  balances,
94
94
  totalBalance: balances.reduce((sum, b) => sum + b.balance, 0),
95
- message: '模拟成功',
95
+ message: 'Simulation successful',
96
96
  });
97
97
  return;
98
98
  }
99
- // JSON 模式下抑制 SDK console.log
99
+ // Suppress SDK console.log in JSON mode
100
100
  if (getOutputFormat() === 'json')
101
101
  suppressConsole();
102
102
  if (options.token === 'SOL') {
103
- info(`执行 SOL 收集: ${wallets.length} 个钱包 -> ${options.to}`);
103
+ info(`Executing SOL collect: ${wallets.length} wallets -> ${options.to}`);
104
104
  const results = await executeCollectSOL({
105
105
  wallets: wallets.map(w => ({
106
106
  privateKey: w.privateKey,
@@ -124,85 +124,85 @@ export function registerTransferCommands(program) {
124
124
  }
125
125
  else {
126
126
  restoreConsole();
127
- // SPL Token 收集 -- 通过 DataSource 查询 Token 余额
128
- info(`执行代币收集: ${options.token}`);
127
+ // SPL Token collect - query token balance via DataSource
128
+ info(`Executing token collect: ${options.token}`);
129
129
  output({
130
130
  success: false,
131
- error: '代币收集功能正在开发中,请先使用 SOL 收集',
131
+ error: 'Token collect feature is under development, please use SOL collect first',
132
132
  });
133
133
  }
134
134
  }
135
135
  catch (e) {
136
136
  restoreConsole();
137
- error('批量收集失败', e.message);
137
+ error('Batch collect failed', e.message);
138
138
  process.exit(1);
139
139
  }
140
140
  });
141
141
  // ============================================================
142
- // forgex transfer out - 真实批量分发
142
+ // forgex transfer out - real batch distribute
143
143
  // ============================================================
144
144
  transferCmd
145
145
  .command('out')
146
- .description('批量分发(一个地址分发到多个钱包)')
147
- .requiredOption('--from <address>', '源地址(需提供私钥的钱包组中)')
148
- .requiredOption('--to-group <id>', '目标钱包组 ID')
149
- .option('--token <token>', '代币: SOL 或合约地址', 'SOL')
150
- .option('--amount <type>', '金额类型: fixed | random', 'fixed')
151
- .requiredOption('--value <n>', '金额值 (SOL 或代币数量)')
152
- .option('--max <n>', '最大值(random 模式)')
153
- .option('--priority-fee <sol>', '优先费 (SOL)')
154
- .option('--batch-size <n>', '每批处理数量', '20')
155
- .option('--multi-hop', '启用多跳转账(通过6个临时中转钱包,仅支持SOL', false)
156
- .option('--hop-count <n>', '中转钱包数量(默认6', '6')
157
- .option('--dry-run', '仅模拟,不实际执行', false)
146
+ .description('Batch distribute (one address to multiple wallets)')
147
+ .requiredOption('--from <address>', 'Source address (must be in a wallet group with private key)')
148
+ .requiredOption('--to-group <id>', 'Target wallet group ID')
149
+ .option('--token <token>', 'Token: SOL or contract address', 'SOL')
150
+ .option('--amount <type>', 'Amount type: fixed | random', 'fixed')
151
+ .requiredOption('--value <n>', 'Amount value (SOL or token count)')
152
+ .option('--max <n>', 'Max value (random mode)')
153
+ .option('--priority-fee <sol>', 'Priority fee (SOL)')
154
+ .option('--batch-size <n>', 'Batch size', '20')
155
+ .option('--multi-hop', 'Enable multi-hop transfer (via 6 temp relay wallets, SOL only)', false)
156
+ .option('--hop-count <n>', 'Number of relay wallets (default 6)', '6')
157
+ .option('--dry-run', 'Simulate only, do not execute', false)
158
158
  .action(async (options) => {
159
159
  try {
160
- // 密码验证
160
+ // Password verification
161
161
  await ensurePasswordAndValidate();
162
162
  const config = loadConfig();
163
163
  const toGroupId = Number(options.toGroup);
164
164
  const valueNum = Number(options.value);
165
165
  const batchSize = Number(options.batchSize);
166
- // 参数验证
166
+ // Parameter validation
167
167
  if (isNaN(toGroupId)) {
168
- error('--to-group 必须是有效数字');
168
+ error('--to-group must be a valid number');
169
169
  process.exit(1);
170
170
  }
171
171
  if (isNaN(valueNum) || valueNum <= 0) {
172
- error('--value 必须是大于 0 的数字');
172
+ error('--value must be a number greater than 0');
173
173
  process.exit(1);
174
174
  }
175
175
  if (isNaN(batchSize) || batchSize <= 0) {
176
- error('--batch-size 必须是大于 0 的整数');
176
+ error('--batch-size must be an integer greater than 0');
177
177
  process.exit(1);
178
178
  }
179
- // --amount 校验
179
+ // --amount validation
180
180
  const validAmountTypes = ['fixed', 'random'];
181
181
  if (!validAmountTypes.includes(options.amount)) {
182
- error(`--amount 无效: "${options.amount}",必须是 fixed | random`);
182
+ error(`--amount invalid: "${options.amount}", must be fixed | random`);
183
183
  process.exit(1);
184
184
  }
185
185
  if (options.amount === 'random' && !options.max) {
186
- error('--amount random 模式需要 --max 参数');
186
+ error('--amount random mode requires --max parameter');
187
187
  process.exit(1);
188
188
  }
189
189
  const toGroup = getGroup(toGroupId);
190
190
  if (!toGroup) {
191
- error(`目标钱包组 ${toGroupId} 不存在`);
191
+ error(`Target wallet group ${toGroupId} does not exist`);
192
192
  process.exit(1);
193
193
  }
194
194
  if (toGroup.wallets.length === 0) {
195
- error('目标钱包组中没有钱包');
195
+ error('Target wallet group has no wallets');
196
196
  process.exit(1);
197
197
  }
198
198
  const priorityFee = options.priorityFee
199
199
  ? Number(options.priorityFee)
200
200
  : config.defaultPriorityFee;
201
201
  if (isNaN(priorityFee) || priorityFee < 0) {
202
- error('--priority-fee 必须是非负数字');
202
+ error('--priority-fee must be a non-negative number');
203
203
  process.exit(1);
204
204
  }
205
- // 查找发送者的私钥
205
+ // Find sender's private key
206
206
  let fromPrivateKey;
207
207
  let fromGroupId;
208
208
  const allGroups = getAllGroups();
@@ -215,12 +215,12 @@ export function registerTransferCommands(program) {
215
215
  }
216
216
  }
217
217
  if (!fromPrivateKey) {
218
- error(`无法找到地址 ${options.from} 的私钥,请确保该地址在某个钱包组中`);
218
+ error(`Cannot find private key for address ${options.from}, ensure it is in a wallet group`);
219
219
  process.exit(1);
220
220
  }
221
221
  const ds = getDataSource();
222
222
  if (options.dryRun) {
223
- // 余额预检查 -- 通过 DataSource
223
+ // Balance pre-check -- via DataSource
224
224
  const balance = await ds.getSolBalance(options.from);
225
225
  const totalNeeded = Number(options.value) * toGroup.wallets.length;
226
226
  output({
@@ -232,15 +232,15 @@ export function registerTransferCommands(program) {
232
232
  amountPerWallet: Number(options.value),
233
233
  totalNeeded,
234
234
  sufficient: balance >= totalNeeded,
235
- message: balance >= totalNeeded ? '模拟成功' : `余额不足: 需要 ${totalNeeded} SOL, 当前 ${balance} SOL`,
235
+ message: balance >= totalNeeded ? 'Simulation successful' : `Insufficient balance: need ${totalNeeded} SOL, current ${balance} SOL`,
236
236
  });
237
237
  return;
238
238
  }
239
- // JSON 模式下抑制 SDK console.log
239
+ // Suppress SDK console.log in JSON mode
240
240
  if (getOutputFormat() === 'json')
241
241
  suppressConsole();
242
242
  if (options.token === 'SOL') {
243
- // 余额预检查
243
+ // Balance pre-check
244
244
  const balance = await ds.getSolBalance(options.from);
245
245
  const targets = toGroup.wallets.map(w => {
246
246
  let amount = Number(options.value);
@@ -252,10 +252,10 @@ export function registerTransferCommands(program) {
252
252
  const totalNeeded = targets.reduce((sum, t) => sum + t.amountSOL, 0) + priorityFee * targets.length;
253
253
  if (balance < totalNeeded) {
254
254
  restoreConsole();
255
- error(`余额不足: 需要约 ${totalNeeded.toFixed(4)} SOL, 当前 ${balance.toFixed(4)} SOL`);
255
+ error(`Insufficient balance: need ~${totalNeeded.toFixed(4)} SOL, current ${balance.toFixed(4)} SOL`);
256
256
  process.exit(1);
257
257
  }
258
- info(`执行 SOL 分发: ${options.from} -> ${targets.length} 个钱包, 每个约 ${options.value} SOL${options.multiHop ? ' (多跳模式)' : ''}`);
258
+ info(`Executing SOL distribute: ${options.from} -> ${targets.length} wallets, ~${options.value} SOL each${options.multiHop ? ' (multi-hop mode)' : ''}`);
259
259
  const results = await executeBatchSOLTransfer({
260
260
  fromPrivateKey: fromPrivateKey,
261
261
  targets,
@@ -278,105 +278,105 @@ export function registerTransferCommands(program) {
278
278
  restoreConsole();
279
279
  output({
280
280
  success: false,
281
- error: '代币分发功能正在开发中,请先使用 SOL 分发',
281
+ error: 'Token distribute feature is under development, please use SOL distribute first',
282
282
  });
283
283
  }
284
284
  }
285
285
  catch (e) {
286
286
  restoreConsole();
287
- error('批量分发失败', e.message);
287
+ error('Batch distribute failed', e.message);
288
288
  process.exit(1);
289
289
  }
290
290
  });
291
291
  // ============================================================
292
- // forgex transfer many-to-many - 真实多对多转账
292
+ // forgex transfer many-to-many - real many-to-many transfer
293
293
  // ============================================================
294
294
  transferCmd
295
295
  .command('many-to-many')
296
- .description('多对多转账')
297
- .requiredOption('--from-group <id>', '源钱包组 ID')
298
- .requiredOption('--to-group <id>', '目标钱包组 ID')
299
- .option('--token <token>', '代币: SOL 或合约地址', 'SOL')
300
- .option('--amount <type>', '金额类型: all | fixed | reserve | random', 'all')
301
- .option('--value <n>', '金额值')
302
- .option('--max <n>', '最大值(random 模式)')
303
- .option('--interval <ms>', '转账间隔 (毫秒)', '500')
304
- .option('--priority-fee <sol>', '优先费 (SOL)')
305
- .option('--multi-hop', '启用多跳转账(通过6个临时中转钱包,仅支持SOL', false)
306
- .option('--hop-count <n>', '中转钱包数量(默认6', '6')
307
- .option('--dry-run', '仅模拟,不实际执行', false)
296
+ .description('Many-to-many transfer')
297
+ .requiredOption('--from-group <id>', 'Source wallet group ID')
298
+ .requiredOption('--to-group <id>', 'Target wallet group ID')
299
+ .option('--token <token>', 'Token: SOL or contract address', 'SOL')
300
+ .option('--amount <type>', 'Amount type: all | fixed | reserve | random', 'all')
301
+ .option('--value <n>', 'Amount value')
302
+ .option('--max <n>', 'Max value (random mode)')
303
+ .option('--interval <ms>', 'Transfer interval (ms)', '500')
304
+ .option('--priority-fee <sol>', 'Priority fee (SOL)')
305
+ .option('--multi-hop', 'Enable multi-hop transfer (via 6 temp relay wallets, SOL only)', false)
306
+ .option('--hop-count <n>', 'Number of relay wallets (default 6)', '6')
307
+ .option('--dry-run', 'Simulate only, do not execute', false)
308
308
  .action(async (options) => {
309
309
  try {
310
- // 密码验证
310
+ // Password verification
311
311
  await ensurePasswordAndValidate();
312
312
  const config = loadConfig();
313
313
  const fromGroupId = Number(options.fromGroup);
314
314
  const toGroupId = Number(options.toGroup);
315
- // 参数验证
315
+ // Parameter validation
316
316
  if (isNaN(fromGroupId)) {
317
- error('--from-group 必须是有效数字');
317
+ error('--from-group must be a valid number');
318
318
  process.exit(1);
319
319
  }
320
320
  if (isNaN(toGroupId)) {
321
- error('--to-group 必须是有效数字');
321
+ error('--to-group must be a valid number');
322
322
  process.exit(1);
323
323
  }
324
- // --amount 校验
324
+ // --amount validation
325
325
  const validAmountTypes = ['all', 'fixed', 'reserve', 'random'];
326
326
  if (!validAmountTypes.includes(options.amount)) {
327
- error(`--amount 无效: "${options.amount}",必须是 all | fixed | reserve | random`);
327
+ error(`--amount invalid: "${options.amount}", must be all | fixed | reserve | random`);
328
328
  process.exit(1);
329
329
  }
330
330
  if ((options.amount === 'fixed' || options.amount === 'reserve') && !options.value) {
331
- error(`--amount ${options.amount} 模式需要 --value 参数`);
331
+ error(`--amount ${options.amount} mode requires --value parameter`);
332
332
  process.exit(1);
333
333
  }
334
334
  if (options.amount === 'random') {
335
335
  if (!options.value) {
336
- error('--amount random 模式需要 --value 参数(最小值)');
336
+ error('--amount random mode requires --value parameter (min value)');
337
337
  process.exit(1);
338
338
  }
339
339
  if (!options.max) {
340
- error('--amount random 模式需要 --max 参数(最大值)');
340
+ error('--amount random mode requires --max parameter (max value)');
341
341
  process.exit(1);
342
342
  }
343
343
  }
344
344
  if (options.value) {
345
345
  const val = Number(options.value);
346
346
  if (isNaN(val) || val < 0) {
347
- error('--value 必须是非负数字');
347
+ error('--value must be a non-negative number');
348
348
  process.exit(1);
349
349
  }
350
350
  }
351
351
  const fromGroup = getGroup(fromGroupId);
352
352
  const toGroup = getGroup(toGroupId);
353
353
  if (!fromGroup) {
354
- error(`源钱包组 ${fromGroupId} 不存在`);
354
+ error(`Source wallet group ${fromGroupId} does not exist`);
355
355
  process.exit(1);
356
356
  }
357
357
  if (!toGroup) {
358
- error(`目标钱包组 ${toGroupId} 不存在`);
358
+ error(`Target wallet group ${toGroupId} does not exist`);
359
359
  process.exit(1);
360
360
  }
361
361
  if (fromGroup.wallets.length === 0) {
362
- error('源钱包组中没有钱包');
362
+ error('Source wallet group has no wallets');
363
363
  process.exit(1);
364
364
  }
365
365
  if (toGroup.wallets.length === 0) {
366
- error('目标钱包组中没有钱包');
366
+ error('Target wallet group has no wallets');
367
367
  process.exit(1);
368
368
  }
369
369
  const priorityFee = options.priorityFee
370
370
  ? Number(options.priorityFee)
371
371
  : config.defaultPriorityFee;
372
372
  if (isNaN(priorityFee) || priorityFee < 0) {
373
- error('--priority-fee 必须是非负数字');
373
+ error('--priority-fee must be a non-negative number');
374
374
  process.exit(1);
375
375
  }
376
376
  const ds = getDataSource();
377
377
  const pairCount = Math.min(fromGroup.wallets.length, toGroup.wallets.length);
378
378
  if (options.dryRun) {
379
- // 余额预检查 -- 通过 DataSource
379
+ // Balance pre-check -- via DataSource
380
380
  const balances = [];
381
381
  for (let i = 0; i < pairCount; i++) {
382
382
  const bal = await ds.getSolBalance(fromGroup.wallets[i].walletAddress);
@@ -394,20 +394,20 @@ export function registerTransferCommands(program) {
394
394
  toWallets: toGroup.wallets.length,
395
395
  pairs: pairCount,
396
396
  balances,
397
- message: '模拟成功',
397
+ message: 'Simulation successful',
398
398
  });
399
399
  return;
400
400
  }
401
- // JSON 模式下抑制 SDK console.log
401
+ // Suppress SDK console.log in JSON mode
402
402
  if (getOutputFormat() === 'json')
403
403
  suppressConsole();
404
404
  if (options.token === 'SOL') {
405
405
  const results = [];
406
- info(`执行多对多 SOL 转账: ${pairCount} 组配对${options.multiHop ? ' (多跳模式)' : ''}`);
406
+ info(`Executing many-to-many SOL transfer: ${pairCount} pairs${options.multiHop ? ' (multi-hop mode)' : ''}`);
407
407
  for (let i = 0; i < pairCount; i++) {
408
408
  const fromWallet = fromGroup.wallets[i];
409
409
  const toWallet = toGroup.wallets[i];
410
- // 计算转账金额 -- 使用 DataSource 查询余额
410
+ // Calculate transfer amount - query balance via DataSource
411
411
  let amountSOL;
412
412
  if (options.amount === 'all') {
413
413
  const bal = await ds.getSolBalance(fromWallet.walletAddress);
@@ -434,7 +434,7 @@ export function registerTransferCommands(program) {
434
434
  to: toWallet.walletAddress,
435
435
  amount: 0,
436
436
  success: false,
437
- error: '余额不足',
437
+ error: 'Insufficient balance',
438
438
  token: 'SOL',
439
439
  });
440
440
  continue;
@@ -466,13 +466,13 @@ export function registerTransferCommands(program) {
466
466
  restoreConsole();
467
467
  output({
468
468
  success: false,
469
- error: '代币多对多转账功能正在开发中,请先使用 SOL',
469
+ error: 'Token many-to-many transfer is under development, please use SOL first',
470
470
  });
471
471
  }
472
472
  }
473
473
  catch (e) {
474
474
  restoreConsole();
475
- error('多对多转账失败', e.message);
475
+ error('Many-to-many transfer failed', e.message);
476
476
  process.exit(1);
477
477
  }
478
478
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/transfer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/transfer/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 钱包组管理命令组
2
+ * Wallet group management command group
3
3
  *
4
4
  * forgex wallet create-group | list-groups | group-info | delete-group |
5
5
  * generate | add | remove | import | export |