forgex-cli 1.0.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.
Files changed (275) hide show
  1. package/README.md +479 -0
  2. package/dist/bin/forgex.d.ts +12 -0
  3. package/dist/bin/forgex.d.ts.map +1 -0
  4. package/dist/bin/forgex.js +23 -0
  5. package/dist/bin/forgex.js.map +1 -0
  6. package/dist/src/adapters/codex-adapter.d.ts +238 -0
  7. package/dist/src/adapters/codex-adapter.d.ts.map +1 -0
  8. package/dist/src/adapters/codex-adapter.js +524 -0
  9. package/dist/src/adapters/codex-adapter.js.map +1 -0
  10. package/dist/src/adapters/connection.d.ts +20 -0
  11. package/dist/src/adapters/connection.d.ts.map +1 -0
  12. package/dist/src/adapters/connection.js +43 -0
  13. package/dist/src/adapters/connection.js.map +1 -0
  14. package/dist/src/adapters/ipfs.d.ts +17 -0
  15. package/dist/src/adapters/ipfs.d.ts.map +1 -0
  16. package/dist/src/adapters/ipfs.js +30 -0
  17. package/dist/src/adapters/ipfs.js.map +1 -0
  18. package/dist/src/adapters/jito-adapter.d.ts +194 -0
  19. package/dist/src/adapters/jito-adapter.d.ts.map +1 -0
  20. package/dist/src/adapters/jito-adapter.js +474 -0
  21. package/dist/src/adapters/jito-adapter.js.map +1 -0
  22. package/dist/src/adapters/rpc-adapter.d.ts +148 -0
  23. package/dist/src/adapters/rpc-adapter.d.ts.map +1 -0
  24. package/dist/src/adapters/rpc-adapter.js +410 -0
  25. package/dist/src/adapters/rpc-adapter.js.map +1 -0
  26. package/dist/src/adapters/sdk-adapter.d.ts +148 -0
  27. package/dist/src/adapters/sdk-adapter.d.ts.map +1 -0
  28. package/dist/src/adapters/sdk-adapter.js +554 -0
  29. package/dist/src/adapters/sdk-adapter.js.map +1 -0
  30. package/dist/src/commands/config/index.d.ts +8 -0
  31. package/dist/src/commands/config/index.d.ts.map +1 -0
  32. package/dist/src/commands/config/index.js +91 -0
  33. package/dist/src/commands/config/index.js.map +1 -0
  34. package/dist/src/commands/query/index.d.ts +10 -0
  35. package/dist/src/commands/query/index.d.ts.map +1 -0
  36. package/dist/src/commands/query/index.js +376 -0
  37. package/dist/src/commands/query/index.js.map +1 -0
  38. package/dist/src/commands/sniper/index.d.ts +16 -0
  39. package/dist/src/commands/sniper/index.d.ts.map +1 -0
  40. package/dist/src/commands/sniper/index.js +292 -0
  41. package/dist/src/commands/sniper/index.js.map +1 -0
  42. package/dist/src/commands/token/index.d.ts +16 -0
  43. package/dist/src/commands/token/index.d.ts.map +1 -0
  44. package/dist/src/commands/token/index.js +295 -0
  45. package/dist/src/commands/token/index.js.map +1 -0
  46. package/dist/src/commands/tools/index.d.ts +17 -0
  47. package/dist/src/commands/tools/index.d.ts.map +1 -0
  48. package/dist/src/commands/tools/index.js +626 -0
  49. package/dist/src/commands/tools/index.js.map +1 -0
  50. package/dist/src/commands/trade/index.d.ts +8 -0
  51. package/dist/src/commands/trade/index.d.ts.map +1 -0
  52. package/dist/src/commands/trade/index.js +531 -0
  53. package/dist/src/commands/trade/index.js.map +1 -0
  54. package/dist/src/commands/transfer/index.d.ts +16 -0
  55. package/dist/src/commands/transfer/index.d.ts.map +1 -0
  56. package/dist/src/commands/transfer/index.js +509 -0
  57. package/dist/src/commands/transfer/index.js.map +1 -0
  58. package/dist/src/commands/wallet/index.d.ts +10 -0
  59. package/dist/src/commands/wallet/index.d.ts.map +1 -0
  60. package/dist/src/commands/wallet/index.js +828 -0
  61. package/dist/src/commands/wallet/index.js.map +1 -0
  62. package/dist/src/config.d.ts +74 -0
  63. package/dist/src/config.d.ts.map +1 -0
  64. package/dist/src/config.js +190 -0
  65. package/dist/src/config.js.map +1 -0
  66. package/dist/src/const/IDL/index.d.ts +4 -0
  67. package/dist/src/const/IDL/index.d.ts.map +1 -0
  68. package/dist/src/const/IDL/index.js +2 -0
  69. package/dist/src/const/IDL/index.js.map +1 -0
  70. package/dist/src/const/IDL/meteora-DLMM.d.ts +10249 -0
  71. package/dist/src/const/IDL/meteora-DLMM.d.ts.map +1 -0
  72. package/dist/src/const/IDL/meteora-DLMM.js +4177 -0
  73. package/dist/src/const/IDL/meteora-DLMM.js.map +1 -0
  74. package/dist/src/const/IDL/pump-fun.d.ts +4811 -0
  75. package/dist/src/const/IDL/pump-fun.d.ts.map +1 -0
  76. package/dist/src/const/IDL/pump-fun.js +2954 -0
  77. package/dist/src/const/IDL/pump-fun.js.map +1 -0
  78. package/dist/src/const/IDL/pump-swap-IDL.d.ts +3119 -0
  79. package/dist/src/const/IDL/pump-swap-IDL.d.ts.map +1 -0
  80. package/dist/src/const/IDL/pump-swap-IDL.js +2095 -0
  81. package/dist/src/const/IDL/pump-swap-IDL.js.map +1 -0
  82. package/dist/src/const/IDL/raydium-launchlab-IDL.d.ts +4031 -0
  83. package/dist/src/const/IDL/raydium-launchlab-IDL.d.ts.map +1 -0
  84. package/dist/src/const/IDL/raydium-launchlab-IDL.js +2110 -0
  85. package/dist/src/const/IDL/raydium-launchlab-IDL.js.map +1 -0
  86. package/dist/src/const/index.d.ts +40 -0
  87. package/dist/src/const/index.d.ts.map +1 -0
  88. package/dist/src/const/index.js +57 -0
  89. package/dist/src/const/index.js.map +1 -0
  90. package/dist/src/data-source.d.ts +270 -0
  91. package/dist/src/data-source.d.ts.map +1 -0
  92. package/dist/src/data-source.js +628 -0
  93. package/dist/src/data-source.js.map +1 -0
  94. package/dist/src/data-store/index.d.ts +87 -0
  95. package/dist/src/data-store/index.d.ts.map +1 -0
  96. package/dist/src/data-store/index.js +561 -0
  97. package/dist/src/data-store/index.js.map +1 -0
  98. package/dist/src/data-store/types.d.ts +91 -0
  99. package/dist/src/data-store/types.d.ts.map +1 -0
  100. package/dist/src/data-store/types.js +8 -0
  101. package/dist/src/data-store/types.js.map +1 -0
  102. package/dist/src/index.d.ts +8 -0
  103. package/dist/src/index.d.ts.map +1 -0
  104. package/dist/src/index.js +36 -0
  105. package/dist/src/index.js.map +1 -0
  106. package/dist/src/output.d.ts +52 -0
  107. package/dist/src/output.d.ts.map +1 -0
  108. package/dist/src/output.js +218 -0
  109. package/dist/src/output.js.map +1 -0
  110. package/dist/src/shims/store.d.ts +58 -0
  111. package/dist/src/shims/store.d.ts.map +1 -0
  112. package/dist/src/shims/store.js +55 -0
  113. package/dist/src/shims/store.js.map +1 -0
  114. package/dist/src/sol-sdk/account/index.d.ts +13 -0
  115. package/dist/src/sol-sdk/account/index.d.ts.map +1 -0
  116. package/dist/src/sol-sdk/account/index.js +174 -0
  117. package/dist/src/sol-sdk/account/index.js.map +1 -0
  118. package/dist/src/sol-sdk/account/lookupTable.d.ts +24 -0
  119. package/dist/src/sol-sdk/account/lookupTable.d.ts.map +1 -0
  120. package/dist/src/sol-sdk/account/lookupTable.js +103 -0
  121. package/dist/src/sol-sdk/account/lookupTable.js.map +1 -0
  122. package/dist/src/sol-sdk/batch/create.d.ts +23 -0
  123. package/dist/src/sol-sdk/batch/create.d.ts.map +1 -0
  124. package/dist/src/sol-sdk/batch/create.js +580 -0
  125. package/dist/src/sol-sdk/batch/create.js.map +1 -0
  126. package/dist/src/sol-sdk/batch/external-sniper.d.ts +31 -0
  127. package/dist/src/sol-sdk/batch/external-sniper.d.ts.map +1 -0
  128. package/dist/src/sol-sdk/batch/external-sniper.js +163 -0
  129. package/dist/src/sol-sdk/batch/external-sniper.js.map +1 -0
  130. package/dist/src/sol-sdk/batch/index.d.ts +144 -0
  131. package/dist/src/sol-sdk/batch/index.d.ts.map +1 -0
  132. package/dist/src/sol-sdk/batch/index.js +1573 -0
  133. package/dist/src/sol-sdk/batch/index.js.map +1 -0
  134. package/dist/src/sol-sdk/calc.d.ts +277 -0
  135. package/dist/src/sol-sdk/calc.d.ts.map +1 -0
  136. package/dist/src/sol-sdk/calc.js +590 -0
  137. package/dist/src/sol-sdk/calc.js.map +1 -0
  138. package/dist/src/sol-sdk/index.d.ts +1 -0
  139. package/dist/src/sol-sdk/index.d.ts.map +1 -0
  140. package/dist/src/sol-sdk/index.js +1 -0
  141. package/dist/src/sol-sdk/index.js.map +1 -0
  142. package/dist/src/sol-sdk/jito/index.d.ts +50 -0
  143. package/dist/src/sol-sdk/jito/index.d.ts.map +1 -0
  144. package/dist/src/sol-sdk/jito/index.js +225 -0
  145. package/dist/src/sol-sdk/jito/index.js.map +1 -0
  146. package/dist/src/sol-sdk/launchlab/index.d.ts +32 -0
  147. package/dist/src/sol-sdk/launchlab/index.d.ts.map +1 -0
  148. package/dist/src/sol-sdk/launchlab/index.js +78 -0
  149. package/dist/src/sol-sdk/launchlab/index.js.map +1 -0
  150. package/dist/src/sol-sdk/launchlab/instructions/buy.d.ts +27 -0
  151. package/dist/src/sol-sdk/launchlab/instructions/buy.d.ts.map +1 -0
  152. package/dist/src/sol-sdk/launchlab/instructions/buy.js +124 -0
  153. package/dist/src/sol-sdk/launchlab/instructions/buy.js.map +1 -0
  154. package/dist/src/sol-sdk/launchlab/instructions/create.d.ts +27 -0
  155. package/dist/src/sol-sdk/launchlab/instructions/create.d.ts.map +1 -0
  156. package/dist/src/sol-sdk/launchlab/instructions/create.js +125 -0
  157. package/dist/src/sol-sdk/launchlab/instructions/create.js.map +1 -0
  158. package/dist/src/sol-sdk/launchlab/instructions/sell.d.ts +15 -0
  159. package/dist/src/sol-sdk/launchlab/instructions/sell.d.ts.map +1 -0
  160. package/dist/src/sol-sdk/launchlab/instructions/sell.js +65 -0
  161. package/dist/src/sol-sdk/launchlab/instructions/sell.js.map +1 -0
  162. package/dist/src/sol-sdk/meteora/index.d.ts +32 -0
  163. package/dist/src/sol-sdk/meteora/index.d.ts.map +1 -0
  164. package/dist/src/sol-sdk/meteora/index.js +72 -0
  165. package/dist/src/sol-sdk/meteora/index.js.map +1 -0
  166. package/dist/src/sol-sdk/meteora/instructions/buy.d.ts +46 -0
  167. package/dist/src/sol-sdk/meteora/instructions/buy.d.ts.map +1 -0
  168. package/dist/src/sol-sdk/meteora/instructions/buy.js +153 -0
  169. package/dist/src/sol-sdk/meteora/instructions/buy.js.map +1 -0
  170. package/dist/src/sol-sdk/meteora/instructions/sell.d.ts +24 -0
  171. package/dist/src/sol-sdk/meteora/instructions/sell.d.ts.map +1 -0
  172. package/dist/src/sol-sdk/meteora/instructions/sell.js +98 -0
  173. package/dist/src/sol-sdk/meteora/instructions/sell.js.map +1 -0
  174. package/dist/src/sol-sdk/pump/index.d.ts +22 -0
  175. package/dist/src/sol-sdk/pump/index.d.ts.map +1 -0
  176. package/dist/src/sol-sdk/pump/index.js +101 -0
  177. package/dist/src/sol-sdk/pump/index.js.map +1 -0
  178. package/dist/src/sol-sdk/pump/instructions/buy.d.ts +29 -0
  179. package/dist/src/sol-sdk/pump/instructions/buy.d.ts.map +1 -0
  180. package/dist/src/sol-sdk/pump/instructions/buy.js +131 -0
  181. package/dist/src/sol-sdk/pump/instructions/buy.js.map +1 -0
  182. package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts +36 -0
  183. package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts.map +1 -0
  184. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js +77 -0
  185. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js.map +1 -0
  186. package/dist/src/sol-sdk/pump/instructions/sell.d.ts +7 -0
  187. package/dist/src/sol-sdk/pump/instructions/sell.d.ts.map +1 -0
  188. package/dist/src/sol-sdk/pump/instructions/sell.js +38 -0
  189. package/dist/src/sol-sdk/pump/instructions/sell.js.map +1 -0
  190. package/dist/src/sol-sdk/pumpswap/index.d.ts +9 -0
  191. package/dist/src/sol-sdk/pumpswap/index.d.ts.map +1 -0
  192. package/dist/src/sol-sdk/pumpswap/index.js +27 -0
  193. package/dist/src/sol-sdk/pumpswap/index.js.map +1 -0
  194. package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts +61 -0
  195. package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts.map +1 -0
  196. package/dist/src/sol-sdk/pumpswap/instructions/buy.js +215 -0
  197. package/dist/src/sol-sdk/pumpswap/instructions/buy.js.map +1 -0
  198. package/dist/src/sol-sdk/pumpswap/instructions/migrate.d.ts +3 -0
  199. package/dist/src/sol-sdk/pumpswap/instructions/migrate.d.ts.map +1 -0
  200. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js +33 -0
  201. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js.map +1 -0
  202. package/dist/src/sol-sdk/pumpswap/instructions/sell.d.ts +20 -0
  203. package/dist/src/sol-sdk/pumpswap/instructions/sell.d.ts.map +1 -0
  204. package/dist/src/sol-sdk/pumpswap/instructions/sell.js +107 -0
  205. package/dist/src/sol-sdk/pumpswap/instructions/sell.js.map +1 -0
  206. package/dist/src/sol-sdk/pumpswap/rpc/index.d.ts +28 -0
  207. package/dist/src/sol-sdk/pumpswap/rpc/index.d.ts.map +1 -0
  208. package/dist/src/sol-sdk/pumpswap/rpc/index.js +63 -0
  209. package/dist/src/sol-sdk/pumpswap/rpc/index.js.map +1 -0
  210. package/dist/src/sol-sdk/raydium/index.d.ts +16 -0
  211. package/dist/src/sol-sdk/raydium/index.d.ts.map +1 -0
  212. package/dist/src/sol-sdk/raydium/index.js +47 -0
  213. package/dist/src/sol-sdk/raydium/index.js.map +1 -0
  214. package/dist/src/sol-sdk/raydium/instructions/buy.d.ts +29 -0
  215. package/dist/src/sol-sdk/raydium/instructions/buy.d.ts.map +1 -0
  216. package/dist/src/sol-sdk/raydium/instructions/buy.js +106 -0
  217. package/dist/src/sol-sdk/raydium/instructions/buy.js.map +1 -0
  218. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.d.ts +29 -0
  219. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.d.ts.map +1 -0
  220. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.js +80 -0
  221. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.js.map +1 -0
  222. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.d.ts +17 -0
  223. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.d.ts.map +1 -0
  224. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js +56 -0
  225. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js.map +1 -0
  226. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts +8558 -0
  227. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts.map +1 -0
  228. package/dist/src/sol-sdk/raydium/instructions/sell.js +70 -0
  229. package/dist/src/sol-sdk/raydium/instructions/sell.js.map +1 -0
  230. package/dist/src/sol-sdk/raydium/rpc/index.d.ts +39 -0
  231. package/dist/src/sol-sdk/raydium/rpc/index.d.ts.map +1 -0
  232. package/dist/src/sol-sdk/raydium/rpc/index.js +82 -0
  233. package/dist/src/sol-sdk/raydium/rpc/index.js.map +1 -0
  234. package/dist/src/sol-sdk/raydium/rpc/raydium.d.ts +5 -0
  235. package/dist/src/sol-sdk/raydium/rpc/raydium.d.ts.map +1 -0
  236. package/dist/src/sol-sdk/raydium/rpc/raydium.js +18 -0
  237. package/dist/src/sol-sdk/raydium/rpc/raydium.js.map +1 -0
  238. package/dist/src/sol-sdk/rpc/index.d.ts +33 -0
  239. package/dist/src/sol-sdk/rpc/index.d.ts.map +1 -0
  240. package/dist/src/sol-sdk/rpc/index.js +128 -0
  241. package/dist/src/sol-sdk/rpc/index.js.map +1 -0
  242. package/dist/src/sol-sdk/transfer/index.d.ts +24 -0
  243. package/dist/src/sol-sdk/transfer/index.d.ts.map +1 -0
  244. package/dist/src/sol-sdk/transfer/index.js +65 -0
  245. package/dist/src/sol-sdk/transfer/index.js.map +1 -0
  246. package/dist/src/sol-sdk/turnover/index.d.ts +84 -0
  247. package/dist/src/sol-sdk/turnover/index.d.ts.map +1 -0
  248. package/dist/src/sol-sdk/turnover/index.js +569 -0
  249. package/dist/src/sol-sdk/turnover/index.js.map +1 -0
  250. package/dist/src/tx-tracker/detail-adapter.d.ts +100 -0
  251. package/dist/src/tx-tracker/detail-adapter.d.ts.map +1 -0
  252. package/dist/src/tx-tracker/detail-adapter.js +215 -0
  253. package/dist/src/tx-tracker/detail-adapter.js.map +1 -0
  254. package/dist/src/tx-tracker/index.d.ts +142 -0
  255. package/dist/src/tx-tracker/index.d.ts.map +1 -0
  256. package/dist/src/tx-tracker/index.js +447 -0
  257. package/dist/src/tx-tracker/index.js.map +1 -0
  258. package/dist/src/types/index.d.ts +76 -0
  259. package/dist/src/types/index.d.ts.map +1 -0
  260. package/dist/src/types/index.js +69 -0
  261. package/dist/src/types/index.js.map +1 -0
  262. package/dist/src/types/websocket.d.ts +15 -0
  263. package/dist/src/types/websocket.d.ts.map +1 -0
  264. package/dist/src/types/websocket.js +18 -0
  265. package/dist/src/types/websocket.js.map +1 -0
  266. package/dist/src/utils/index.d.ts +13 -0
  267. package/dist/src/utils/index.d.ts.map +1 -0
  268. package/dist/src/utils/index.js +174 -0
  269. package/dist/src/utils/index.js.map +1 -0
  270. package/dist/src/wallet-store.d.ts +124 -0
  271. package/dist/src/wallet-store.d.ts.map +1 -0
  272. package/dist/src/wallet-store.js +524 -0
  273. package/dist/src/wallet-store.js.map +1 -0
  274. package/package.json +86 -0
  275. package/scripts/postinstall.js +88 -0
@@ -0,0 +1,447 @@
1
+ /**
2
+ * ForgeX CLI TxTracker -- 交易追踪系统
3
+ *
4
+ * 在每次交易发起后:
5
+ * 1. 通过 RPC 或 Jito API 轮询检查交易状态
6
+ * 2. 确认后获取完整交易详情
7
+ * 3. 通过 TxDetailAdapter 将链上原始数据映射为 CLI 数据结构
8
+ * 4. 自动写入 DataStore (交易记录、持仓、余额)
9
+ *
10
+ * 支持:
11
+ * - 普通交易追踪 (trackTransaction)
12
+ * - Jito Bundle 追踪 (trackBundle)
13
+ * - 批量交易追踪 (trackBatch)
14
+ * - 进度回调 (onProgress)
15
+ * - 可配置的轮询间隔和超时
16
+ *
17
+ * 设计参考: ARCH-DESIGN-v2.md Section 3.2 ~ 3.6
18
+ */
19
+ import { getRpcAdapter } from '../adapters/rpc-adapter.js';
20
+ import { getJitoAdapter } from '../adapters/jito-adapter.js';
21
+ import { getDataStore } from '../data-store/index.js';
22
+ import { TxDetailAdapter } from './detail-adapter.js';
23
+ // Re-export types for consumers
24
+ export { TxDetailAdapter } from './detail-adapter.js';
25
+ // ============================================================
26
+ // 默认配置
27
+ // ============================================================
28
+ const DEFAULT_OPTIONS = {
29
+ pollIntervalMs: 2000,
30
+ timeoutMs: 60000,
31
+ maxRetries: 3,
32
+ };
33
+ // ============================================================
34
+ // TxTracker 实现
35
+ // ============================================================
36
+ export class TxTracker {
37
+ rpc;
38
+ jito;
39
+ store;
40
+ adapter;
41
+ constructor(rpc, jito, store) {
42
+ this.rpc = rpc || getRpcAdapter();
43
+ this.jito = jito || getJitoAdapter();
44
+ this.store = store || getDataStore();
45
+ this.adapter = new TxDetailAdapter();
46
+ }
47
+ // ============================================================
48
+ // 公开 API
49
+ // ============================================================
50
+ /**
51
+ * 追踪单笔普通交易。
52
+ *
53
+ * 流程:
54
+ * 1. 轮询 RPC 直到交易确认 / 失败 / 超时
55
+ * 2. 确认后获取交易详情
56
+ * 3. 通过 TxDetailAdapter 适配为 TransactionRecord
57
+ * 4. 写入 DataStore (交易记录 + 持仓 + 余额)
58
+ *
59
+ * @param txHash 交易签名
60
+ * @param context 追踪上下文
61
+ * @param options 追踪选项 (可选)
62
+ * @returns 追踪结果
63
+ */
64
+ async trackTransaction(txHash, context, options) {
65
+ const opts = this.resolveOptions(options);
66
+ opts.onProgress?.('polling', txHash);
67
+ // Step 1: 轮询确认状态
68
+ const confirmStatus = await this.pollUntilConfirmed(txHash, opts);
69
+ if (confirmStatus === 'timeout') {
70
+ opts.onProgress?.('timeout', txHash);
71
+ // 超时也记录为 pending 交易
72
+ const pendingRecord = this.createPendingRecord(txHash, context);
73
+ await this.persistTransaction(pendingRecord, context);
74
+ return {
75
+ txHash,
76
+ status: 'timeout',
77
+ error: `交易确认超时 (${opts.timeoutMs}ms)`,
78
+ };
79
+ }
80
+ if (confirmStatus === 'failed') {
81
+ opts.onProgress?.('failed', txHash);
82
+ // 失败交易也记录
83
+ const failedRecord = this.createFailedRecord(txHash, context);
84
+ await this.persistTransaction(failedRecord, context);
85
+ return {
86
+ txHash,
87
+ status: 'failed',
88
+ record: failedRecord,
89
+ error: '交易执行失败',
90
+ };
91
+ }
92
+ // Step 2: 确认成功,获取交易详情
93
+ opts.onProgress?.('fetching_detail', txHash);
94
+ const detail = await this.fetchDetailWithRetry(txHash, opts.maxRetries);
95
+ if (!detail) {
96
+ // 极端情况: 确认了但获取不到详情
97
+ const partialRecord = this.createConfirmedPartialRecord(txHash, context);
98
+ await this.persistTransaction(partialRecord, context);
99
+ return {
100
+ txHash,
101
+ status: 'confirmed',
102
+ record: partialRecord,
103
+ error: '交易已确认但无法获取详情',
104
+ };
105
+ }
106
+ // Step 3: 适配为 TransactionRecord
107
+ const record = this.adapter.adaptToTransactionRecord(txHash, detail, context);
108
+ // Step 4: 写入 DataStore
109
+ opts.onProgress?.('persisting', txHash);
110
+ await this.persistTransaction(record, context);
111
+ await this.updateHoldingFromRecord(record, context);
112
+ await this.updateBalanceFromRecord(record, context);
113
+ opts.onProgress?.('done', txHash);
114
+ return {
115
+ txHash,
116
+ status: record.status === 'failed' ? 'failed' : 'confirmed',
117
+ record,
118
+ };
119
+ }
120
+ /**
121
+ * 追踪 Jito Bundle。
122
+ *
123
+ * 流程:
124
+ * 1. 通过 JitoAdapter 等待 Bundle 确认
125
+ * 2. Bundle 确认后,逐个获取内部交易详情
126
+ * 3. 适配并写入 DataStore
127
+ *
128
+ * @param bundleId Jito Bundle ID
129
+ * @param txHashes Bundle 中包含的交易签名列表
130
+ * @param context 追踪上下文
131
+ * @param options 追踪选项 (可选)
132
+ * @returns 每笔交易的追踪结果
133
+ */
134
+ async trackBundle(bundleId, txHashes, context, options) {
135
+ const opts = this.resolveOptions(options);
136
+ // 将 bundleId 注入 context
137
+ const bundleContext = {
138
+ ...context,
139
+ jitoBundle: bundleId,
140
+ };
141
+ opts.onProgress?.('waiting_bundle', bundleId);
142
+ // Step 1: 等待 Bundle 确认
143
+ const bundleResult = await this.jito.waitForBundleConfirmation(bundleId, {
144
+ timeoutMs: opts.timeoutMs,
145
+ intervalMs: opts.pollIntervalMs,
146
+ });
147
+ if (!bundleResult.success) {
148
+ opts.onProgress?.('bundle_failed', bundleId);
149
+ // Bundle 失败: 为每笔交易生成失败记录
150
+ const results = txHashes.map((txHash) => {
151
+ const failedRecord = this.createFailedRecord(txHash, bundleContext);
152
+ // fire-and-forget 持久化
153
+ this.persistTransaction(failedRecord, bundleContext).catch(() => { });
154
+ return {
155
+ txHash,
156
+ status: 'failed',
157
+ record: failedRecord,
158
+ error: bundleResult.error || `Bundle ${bundleResult.status}`,
159
+ };
160
+ });
161
+ return results;
162
+ }
163
+ // Step 2: Bundle 确认成功,使用 Bundle 返回的交易列表 (如果有的话)
164
+ const actualTxHashes = bundleResult.transactions?.length
165
+ ? bundleResult.transactions
166
+ : txHashes;
167
+ opts.onProgress?.('bundle_confirmed', bundleId);
168
+ // Step 3: 逐个获取交易详情并处理
169
+ const results = [];
170
+ for (const txHash of actualTxHashes) {
171
+ // 为 bundle 中的每笔交易确定其对应的钱包
172
+ // 如果 txHashes 和 context.wallets 一一对应,使用对应的钱包
173
+ const txIndex = txHashes.indexOf(txHash);
174
+ const txContext = {
175
+ ...bundleContext,
176
+ wallets: txIndex >= 0 && txIndex < context.wallets.length
177
+ ? [context.wallets[txIndex]]
178
+ : context.wallets,
179
+ };
180
+ const result = await this.processConfirmedTransaction(txHash, txContext, opts);
181
+ results.push(result);
182
+ }
183
+ return results;
184
+ }
185
+ /**
186
+ * 批量追踪多笔独立交易。
187
+ * 并发追踪所有交易,每笔交易独立处理。
188
+ *
189
+ * @param entries 交易列表 (txHash + context)
190
+ * @param options 追踪选项 (可选)
191
+ * @returns 每笔交易的追踪结果
192
+ */
193
+ async trackBatch(entries, options) {
194
+ if (entries.length === 0)
195
+ return [];
196
+ const opts = this.resolveOptions(options);
197
+ // 并发追踪所有交易
198
+ const promises = entries.map(({ txHash, context }) => this.trackTransaction(txHash, context, opts).catch((err) => ({
199
+ txHash,
200
+ status: 'failed',
201
+ error: err?.message || '追踪过程中发生未知错误',
202
+ })));
203
+ return Promise.all(promises);
204
+ }
205
+ // ============================================================
206
+ // 内部方法 -- 轮询
207
+ // ============================================================
208
+ /**
209
+ * 轮询 RPC 直到交易确认、失败或超时。
210
+ *
211
+ * 策略:
212
+ * - 每隔 pollIntervalMs 查询一次交易状态
213
+ * - confirmed / finalized -> 返回 'confirmed'
214
+ * - failed -> 返回 'failed'
215
+ * - not_found -> 继续等待
216
+ * - RPC 请求错误 -> 计入重试次数,超限后抛出
217
+ * - 超时 -> 返回 'timeout'
218
+ */
219
+ async pollUntilConfirmed(txHash, opts) {
220
+ const start = Date.now();
221
+ let consecutiveErrors = 0;
222
+ while (Date.now() - start < opts.timeoutMs) {
223
+ try {
224
+ const status = await this.rpc.getTransactionStatus(txHash);
225
+ if (status === 'confirmed' || status === 'finalized') {
226
+ return 'confirmed';
227
+ }
228
+ if (status === 'failed') {
229
+ return 'failed';
230
+ }
231
+ // not_found: 继续等待
232
+ consecutiveErrors = 0; // 成功的 RPC 请求重置错误计数
233
+ }
234
+ catch (err) {
235
+ consecutiveErrors++;
236
+ if (consecutiveErrors >= opts.maxRetries) {
237
+ // 连续多次 RPC 请求失败,视为超时
238
+ return 'timeout';
239
+ }
240
+ }
241
+ await sleep(opts.pollIntervalMs);
242
+ }
243
+ return 'timeout';
244
+ }
245
+ // ============================================================
246
+ // 内部方法 -- 交易详情获取
247
+ // ============================================================
248
+ /**
249
+ * 带重试的交易详情获取。
250
+ * 交易刚确认时,详情可能还没有被索引,需要多次尝试。
251
+ */
252
+ async fetchDetailWithRetry(txHash, maxRetries) {
253
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
254
+ try {
255
+ const detail = await this.rpc.getTransactionDetail(txHash);
256
+ if (detail)
257
+ return detail;
258
+ }
259
+ catch {
260
+ // 继续重试
261
+ }
262
+ // 等待后重试 (指数退避)
263
+ if (attempt < maxRetries - 1) {
264
+ await sleep(1000 * (attempt + 1));
265
+ }
266
+ }
267
+ return null;
268
+ }
269
+ // ============================================================
270
+ // 内部方法 -- 处理已确认交易
271
+ // ============================================================
272
+ /**
273
+ * 处理已确认的单笔交易: 获取详情 -> 适配 -> 持久化
274
+ */
275
+ async processConfirmedTransaction(txHash, context, opts) {
276
+ opts.onProgress?.('fetching_detail', txHash);
277
+ const detail = await this.fetchDetailWithRetry(txHash, opts.maxRetries);
278
+ if (!detail) {
279
+ const partialRecord = this.createConfirmedPartialRecord(txHash, context);
280
+ await this.persistTransaction(partialRecord, context);
281
+ return {
282
+ txHash,
283
+ status: 'confirmed',
284
+ record: partialRecord,
285
+ error: '交易已确认但无法获取详情',
286
+ };
287
+ }
288
+ const record = this.adapter.adaptToTransactionRecord(txHash, detail, context);
289
+ opts.onProgress?.('persisting', txHash);
290
+ await this.persistTransaction(record, context);
291
+ await this.updateHoldingFromRecord(record, context);
292
+ await this.updateBalanceFromRecord(record, context);
293
+ opts.onProgress?.('done', txHash);
294
+ return {
295
+ txHash,
296
+ status: record.status === 'failed' ? 'failed' : 'confirmed',
297
+ record,
298
+ };
299
+ }
300
+ // ============================================================
301
+ // 内部方法 -- DataStore 持久化
302
+ // ============================================================
303
+ /**
304
+ * 将交易记录写入 DataStore
305
+ */
306
+ async persistTransaction(record, context) {
307
+ try {
308
+ await this.store.appendTransaction(context.ca, context.groupId, record);
309
+ }
310
+ catch (err) {
311
+ console.error(`TxTracker: 写入交易记录失败 [${record.txHash}]:`, err);
312
+ }
313
+ }
314
+ /**
315
+ * 根据交易记录更新持仓数据
316
+ */
317
+ async updateHoldingFromRecord(record, context) {
318
+ // 只有确认成功的交易才更新持仓
319
+ if (record.status !== 'confirmed')
320
+ return;
321
+ try {
322
+ // 读取当前持仓
323
+ const holdingsFile = this.store.getHoldings(context.ca, context.groupId);
324
+ const currentHolding = holdingsFile?.wallets.find((w) => w.walletAddress === record.walletAddress) ||
325
+ this.adapter.createEmptyHolding(record.walletAddress);
326
+ // 计算更新后的持仓
327
+ const updatedHolding = this.adapter.updateHoldingFromTx(currentHolding, record);
328
+ // 写入
329
+ await this.store.updateHolding(context.ca, context.groupId, record.walletAddress, updatedHolding);
330
+ }
331
+ catch (err) {
332
+ console.error(`TxTracker: 更新持仓失败 [${record.walletAddress}]:`, err);
333
+ }
334
+ }
335
+ /**
336
+ * 根据交易记录更新余额快照
337
+ */
338
+ async updateBalanceFromRecord(record, context) {
339
+ // 只有确认成功的交易才更新余额
340
+ if (record.status !== 'confirmed')
341
+ return;
342
+ try {
343
+ // 从 RPC 获取最新的实际余额
344
+ const [solBalance, tokenBalance] = await Promise.all([
345
+ this.rpc.getSolBalance(record.walletAddress).catch(() => 0),
346
+ this.rpc.getTokenBalance(record.walletAddress, context.ca).catch(() => 0),
347
+ ]);
348
+ await this.store.updateBalance(context.ca, context.groupId, record.walletAddress, {
349
+ walletAddress: record.walletAddress,
350
+ solBalance,
351
+ tokenBalance,
352
+ updatedAt: Date.now(),
353
+ });
354
+ }
355
+ catch (err) {
356
+ console.error(`TxTracker: 更新余额失败 [${record.walletAddress}]:`, err);
357
+ }
358
+ }
359
+ // ============================================================
360
+ // 内部方法 -- 记录工厂
361
+ // ============================================================
362
+ /** 创建 pending (超时) 状态的交易记录 */
363
+ createPendingRecord(txHash, context) {
364
+ return {
365
+ txHash,
366
+ txType: context.txType,
367
+ walletAddress: context.wallets[0] || '',
368
+ tokenCA: context.ca,
369
+ amountSol: 0,
370
+ amountToken: 0,
371
+ pricePerToken: 0,
372
+ fee: 0,
373
+ slot: 0,
374
+ blockTime: Math.floor(Date.now() / 1000),
375
+ status: 'pending',
376
+ jitoBundle: context.jitoBundle,
377
+ };
378
+ }
379
+ /** 创建 failed 状态的交易记录 */
380
+ createFailedRecord(txHash, context) {
381
+ return {
382
+ txHash,
383
+ txType: context.txType,
384
+ walletAddress: context.wallets[0] || '',
385
+ tokenCA: context.ca,
386
+ amountSol: 0,
387
+ amountToken: 0,
388
+ pricePerToken: 0,
389
+ fee: 0,
390
+ slot: 0,
391
+ blockTime: Math.floor(Date.now() / 1000),
392
+ status: 'failed',
393
+ jitoBundle: context.jitoBundle,
394
+ };
395
+ }
396
+ /** 创建已确认但无详情的交易记录 */
397
+ createConfirmedPartialRecord(txHash, context) {
398
+ return {
399
+ txHash,
400
+ txType: context.txType,
401
+ walletAddress: context.wallets[0] || '',
402
+ tokenCA: context.ca,
403
+ amountSol: context.expectedAmountSol ? -context.expectedAmountSol : 0,
404
+ amountToken: 0,
405
+ pricePerToken: 0,
406
+ fee: 0,
407
+ slot: 0,
408
+ blockTime: Math.floor(Date.now() / 1000),
409
+ status: 'confirmed',
410
+ jitoBundle: context.jitoBundle,
411
+ };
412
+ }
413
+ // ============================================================
414
+ // 内部方法 -- 选项解析
415
+ // ============================================================
416
+ /** 合并用户选项和默认选项 */
417
+ resolveOptions(options) {
418
+ return {
419
+ pollIntervalMs: options?.pollIntervalMs ?? DEFAULT_OPTIONS.pollIntervalMs,
420
+ timeoutMs: options?.timeoutMs ?? DEFAULT_OPTIONS.timeoutMs,
421
+ maxRetries: options?.maxRetries ?? DEFAULT_OPTIONS.maxRetries,
422
+ onProgress: options?.onProgress,
423
+ };
424
+ }
425
+ }
426
+ // ============================================================
427
+ // 单例管理
428
+ // ============================================================
429
+ let _instance = null;
430
+ /** 获取 TxTracker 全局单例 */
431
+ export function getTxTracker() {
432
+ if (!_instance) {
433
+ _instance = new TxTracker();
434
+ }
435
+ return _instance;
436
+ }
437
+ /** 重置单例 (用于测试或配置变更) */
438
+ export function resetTxTracker() {
439
+ _instance = null;
440
+ }
441
+ // ============================================================
442
+ // 工具函数
443
+ // ============================================================
444
+ function sleep(ms) {
445
+ return new Promise((resolve) => setTimeout(resolve, ms));
446
+ }
447
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tx-tracker/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ export declare enum ExternalOrderStatus {
2
+ NONE = "none",// 未打开
3
+ WAITING = "waiting",// 等待抢筹
4
+ SUCCESS = "success",// 抢筹成功
5
+ FAILED = "failed"
6
+ }
7
+ export declare enum UserWalletType {
8
+ LOGIN = "login",
9
+ GROUP = "group"
10
+ }
11
+ export declare enum TransactionStatus {
12
+ PENDING = "pending",
13
+ SUCCESS = "success",
14
+ FAILED = "failed"
15
+ }
16
+ export declare enum GroupType {
17
+ LOCAL = "local",
18
+ MONITOR = "monitor"
19
+ }
20
+ export declare enum ClientMonitorType {
21
+ NORMAL = "normal",
22
+ TOP100 = "top100",
23
+ RETAIL = "retail"
24
+ }
25
+ export declare enum ServerMonitorType {
26
+ normal = 1,
27
+ top100 = 2,
28
+ retail = 3
29
+ }
30
+ export declare enum ServerGroupType {
31
+ own = "own",
32
+ monitor = "monitor"
33
+ }
34
+ export declare enum BundleBuyTime {
35
+ T0 = "T0",
36
+ T1_T5 = "T1-T5"
37
+ }
38
+ export declare enum VolumeType {
39
+ ONE_BUY_ONE_SELL = "one_buy_one_sell",
40
+ ONE_BUY_TWO_SELL = "one_buy_two_sell",
41
+ ONE_BUY_THREE_SELL = "one_buy_three_sell",
42
+ TWO_BUY_ONE_SELL = "two_buy_one_sell",
43
+ THREE_BUY_ONE_SELL = "three_buy_one_sell"
44
+ }
45
+ export declare enum StepStatus {
46
+ WAITING = "waiting",// 等待中(灰色loading)
47
+ PROCESSING = "processing",// 进行中(蓝色loading)
48
+ COMPLETED = "completed",// 已完成(绿色勾选)
49
+ FAILED = "failed"
50
+ }
51
+ export declare enum AccountLevel {
52
+ NORMAL = 0,// 普通用户
53
+ SILVER = 1,// 白银会员
54
+ GOLD = 2,// 黄金会员
55
+ PLATINUM = 3,// 铂金会员
56
+ DIAMOND = 4
57
+ }
58
+ export interface CreateStep {
59
+ id: string;
60
+ name: string;
61
+ status: StepStatus;
62
+ walletAddress?: string;
63
+ error?: string;
64
+ }
65
+ export interface CreateCoinResult {
66
+ success: boolean;
67
+ steps: CreateStep[];
68
+ bundleIds: {
69
+ devBundle?: string;
70
+ sniperBundle?: string;
71
+ };
72
+ mintAddress?: string;
73
+ error?: string;
74
+ }
75
+ export type CreateStatusCallback = (stepId: string, status: StepStatus, error?: string) => void;
76
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,IAAI,SAAS,CAAE,MAAM;IACrB,OAAO,YAAY,CAAE,OAAO;IAC5B,OAAO,YAAY,CAAE,OAAO;IAC5B,MAAM,WAAW;CAClB;AAED,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,iBAAiB;IAC3B,MAAM,IAAI;IACV,MAAM,IAAI;IACV,MAAM,IAAI;CACX;AAED,oBAAY,eAAe;IACzB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,oBAAY,aAAa;IACvB,EAAE,OAAO;IACT,KAAK,UAAU;CAChB;AAED,oBAAY,UAAU;IACpB,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;CAC1C;AAED,oBAAY,UAAU;IACpB,OAAO,YAAY,CAAE,iBAAiB;IACtC,UAAU,eAAe,CAAE,iBAAiB;IAC5C,SAAS,cAAc,CAAE,YAAY;IACrC,MAAM,WAAW;CAClB;AAED,oBAAY,YAAY;IACtB,MAAM,IAAI,CAAE,OAAO;IACnB,MAAM,IAAI,CAAE,OAAO;IACnB,IAAI,IAAI,CAAE,OAAO;IACjB,QAAQ,IAAI,CAAE,OAAO;IACrB,OAAO,IAAI;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC"}
@@ -0,0 +1,69 @@
1
+ export var ExternalOrderStatus;
2
+ (function (ExternalOrderStatus) {
3
+ ExternalOrderStatus["NONE"] = "none";
4
+ ExternalOrderStatus["WAITING"] = "waiting";
5
+ ExternalOrderStatus["SUCCESS"] = "success";
6
+ ExternalOrderStatus["FAILED"] = "failed";
7
+ })(ExternalOrderStatus || (ExternalOrderStatus = {}));
8
+ export var UserWalletType;
9
+ (function (UserWalletType) {
10
+ UserWalletType["LOGIN"] = "login";
11
+ UserWalletType["GROUP"] = "group";
12
+ })(UserWalletType || (UserWalletType = {}));
13
+ export var TransactionStatus;
14
+ (function (TransactionStatus) {
15
+ TransactionStatus["PENDING"] = "pending";
16
+ TransactionStatus["SUCCESS"] = "success";
17
+ TransactionStatus["FAILED"] = "failed";
18
+ })(TransactionStatus || (TransactionStatus = {}));
19
+ export var GroupType;
20
+ (function (GroupType) {
21
+ GroupType["LOCAL"] = "local";
22
+ GroupType["MONITOR"] = "monitor";
23
+ })(GroupType || (GroupType = {}));
24
+ export var ClientMonitorType;
25
+ (function (ClientMonitorType) {
26
+ ClientMonitorType["NORMAL"] = "normal";
27
+ ClientMonitorType["TOP100"] = "top100";
28
+ ClientMonitorType["RETAIL"] = "retail";
29
+ })(ClientMonitorType || (ClientMonitorType = {}));
30
+ export var ServerMonitorType;
31
+ (function (ServerMonitorType) {
32
+ ServerMonitorType[ServerMonitorType["normal"] = 1] = "normal";
33
+ ServerMonitorType[ServerMonitorType["top100"] = 2] = "top100";
34
+ ServerMonitorType[ServerMonitorType["retail"] = 3] = "retail";
35
+ })(ServerMonitorType || (ServerMonitorType = {}));
36
+ export var ServerGroupType;
37
+ (function (ServerGroupType) {
38
+ ServerGroupType["own"] = "own";
39
+ ServerGroupType["monitor"] = "monitor";
40
+ })(ServerGroupType || (ServerGroupType = {}));
41
+ export var BundleBuyTime;
42
+ (function (BundleBuyTime) {
43
+ BundleBuyTime["T0"] = "T0";
44
+ BundleBuyTime["T1_T5"] = "T1-T5";
45
+ })(BundleBuyTime || (BundleBuyTime = {}));
46
+ export var VolumeType;
47
+ (function (VolumeType) {
48
+ VolumeType["ONE_BUY_ONE_SELL"] = "one_buy_one_sell";
49
+ VolumeType["ONE_BUY_TWO_SELL"] = "one_buy_two_sell";
50
+ VolumeType["ONE_BUY_THREE_SELL"] = "one_buy_three_sell";
51
+ VolumeType["TWO_BUY_ONE_SELL"] = "two_buy_one_sell";
52
+ VolumeType["THREE_BUY_ONE_SELL"] = "three_buy_one_sell";
53
+ })(VolumeType || (VolumeType = {}));
54
+ export var StepStatus;
55
+ (function (StepStatus) {
56
+ StepStatus["WAITING"] = "waiting";
57
+ StepStatus["PROCESSING"] = "processing";
58
+ StepStatus["COMPLETED"] = "completed";
59
+ StepStatus["FAILED"] = "failed";
60
+ })(StepStatus || (StepStatus = {}));
61
+ export var AccountLevel;
62
+ (function (AccountLevel) {
63
+ AccountLevel[AccountLevel["NORMAL"] = 0] = "NORMAL";
64
+ AccountLevel[AccountLevel["SILVER"] = 1] = "SILVER";
65
+ AccountLevel[AccountLevel["GOLD"] = 2] = "GOLD";
66
+ AccountLevel[AccountLevel["PLATINUM"] = 3] = "PLATINUM";
67
+ AccountLevel[AccountLevel["DIAMOND"] = 4] = "DIAMOND";
68
+ })(AccountLevel || (AccountLevel = {}));
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,oCAAa,CAAA;IACb,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;AACnB,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,iCAAe,CAAA;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,sCAAiB,CAAA;AACnB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACrB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;AACnB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,6DAAU,CAAA;IACV,6DAAU,CAAA;IACV,6DAAU,CAAA;AACZ,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,0BAAS,CAAA;IACT,gCAAe,CAAA;AACjB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,mDAAqC,CAAA;IACrC,mDAAqC,CAAA;IACrC,uDAAyC,CAAA;IACzC,mDAAqC,CAAA;IACrC,uDAAyC,CAAA;AAC3C,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,mDAAU,CAAA;IACV,mDAAU,CAAA;IACV,+CAAQ,CAAA;IACR,uDAAY,CAAA;IACZ,qDAAW,CAAA;AACb,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
@@ -0,0 +1,15 @@
1
+ export declare enum WSTopicType {
2
+ TRANSACTION_FEED = "subscribeTokenTrades",
3
+ NEW_POOL_CREATED = "subscribeNewPoolCreated",
4
+ POOL_REVERSE = "subscribePoolReverse",
5
+ KLINE = "subscribeKline",
6
+ GROUP_BS_TRADE = "subscribeGroupBsTrades"
7
+ }
8
+ export declare enum WSUnsubscribeType {
9
+ subscribeTokenTrades = "unsubscribeTokenTrades",
10
+ subscribeNewPoolCreated = "unsubscribeNewPoolCreated",
11
+ subscribePoolReverse = "unsubscribePoolReverse",
12
+ subscribeKline = "unsubscribeKline",
13
+ subscribeGroupBsTrades = "unsubscribeGroupBsTrades"
14
+ }
15
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/types/websocket.ts"],"names":[],"mappings":"AACA,oBAAY,WAAW;IACrB,gBAAgB,yBAAyB;IACzC,gBAAgB,4BAA4B;IAC5C,YAAY,yBAAyB;IACrC,KAAK,mBAAmB;IACxB,cAAc,2BAA2B;CAC1C;AAED,oBAAY,iBAAiB;IAC3B,oBAAoB,2BAA2B;IAC/C,uBAAuB,8BAA8B;IACrD,oBAAoB,2BAA2B;IAC/C,cAAc,qBAAqB;IACnC,sBAAsB,6BAA6B;CACpD"}
@@ -0,0 +1,18 @@
1
+ // 定义可订阅的数据类型
2
+ export var WSTopicType;
3
+ (function (WSTopicType) {
4
+ WSTopicType["TRANSACTION_FEED"] = "subscribeTokenTrades";
5
+ WSTopicType["NEW_POOL_CREATED"] = "subscribeNewPoolCreated";
6
+ WSTopicType["POOL_REVERSE"] = "subscribePoolReverse";
7
+ WSTopicType["KLINE"] = "subscribeKline";
8
+ WSTopicType["GROUP_BS_TRADE"] = "subscribeGroupBsTrades";
9
+ })(WSTopicType || (WSTopicType = {}));
10
+ export var WSUnsubscribeType;
11
+ (function (WSUnsubscribeType) {
12
+ WSUnsubscribeType["subscribeTokenTrades"] = "unsubscribeTokenTrades";
13
+ WSUnsubscribeType["subscribeNewPoolCreated"] = "unsubscribeNewPoolCreated";
14
+ WSUnsubscribeType["subscribePoolReverse"] = "unsubscribePoolReverse";
15
+ WSUnsubscribeType["subscribeKline"] = "unsubscribeKline";
16
+ WSUnsubscribeType["subscribeGroupBsTrades"] = "unsubscribeGroupBsTrades";
17
+ })(WSUnsubscribeType || (WSUnsubscribeType = {}));
18
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/types/websocket.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,wDAAyC,CAAA;IACzC,2DAA4C,CAAA;IAC5C,oDAAqC,CAAA;IACrC,uCAAwB,CAAA;IACxB,wDAAyC,CAAA;AAC3C,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,oEAA+C,CAAA;IAC/C,0EAAqD,CAAA;IACrD,oEAA+C,CAAA;IAC/C,wDAAmC,CAAA;IACnC,wEAAmD,CAAA;AACrD,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B"}