@metamask-previews/perps-controller 0.0.0-preview-b0148922a → 0.0.0-preview-ee1fa5d01

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 (482) hide show
  1. package/CHANGELOG.md +0 -25
  2. package/dist/PerpsController.cjs +65 -3077
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts +82 -969
  5. package/dist/PerpsController.d.cts.map +1 -1
  6. package/dist/PerpsController.d.mts +82 -969
  7. package/dist/PerpsController.d.mts.map +1 -1
  8. package/dist/PerpsController.mjs +62 -3073
  9. package/dist/PerpsController.mjs.map +1 -1
  10. package/dist/index.cjs +1 -63
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +2 -38
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.mts +2 -38
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +1 -46
  17. package/dist/index.mjs.map +1 -1
  18. package/package.json +2 -16
  19. package/dist/aggregation/SubscriptionMultiplexer.cjs +0 -441
  20. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +0 -1
  21. package/dist/aggregation/SubscriptionMultiplexer.d.cts +0 -171
  22. package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +0 -1
  23. package/dist/aggregation/SubscriptionMultiplexer.d.mts +0 -171
  24. package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +0 -1
  25. package/dist/aggregation/SubscriptionMultiplexer.mjs +0 -437
  26. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +0 -1
  27. package/dist/aggregation/index.cjs +0 -9
  28. package/dist/aggregation/index.cjs.map +0 -1
  29. package/dist/aggregation/index.d.cts +0 -6
  30. package/dist/aggregation/index.d.cts.map +0 -1
  31. package/dist/aggregation/index.d.mts +0 -6
  32. package/dist/aggregation/index.d.mts.map +0 -1
  33. package/dist/aggregation/index.mjs +0 -5
  34. package/dist/aggregation/index.mjs.map +0 -1
  35. package/dist/constants/chartConfig.cjs +0 -227
  36. package/dist/constants/chartConfig.cjs.map +0 -1
  37. package/dist/constants/chartConfig.d.cts +0 -216
  38. package/dist/constants/chartConfig.d.cts.map +0 -1
  39. package/dist/constants/chartConfig.d.mts +0 -216
  40. package/dist/constants/chartConfig.d.mts.map +0 -1
  41. package/dist/constants/chartConfig.mjs +0 -221
  42. package/dist/constants/chartConfig.mjs.map +0 -1
  43. package/dist/constants/eventNames.cjs +0 -436
  44. package/dist/constants/eventNames.cjs.map +0 -1
  45. package/dist/constants/eventNames.d.cts +0 -387
  46. package/dist/constants/eventNames.d.cts.map +0 -1
  47. package/dist/constants/eventNames.d.mts +0 -387
  48. package/dist/constants/eventNames.d.mts.map +0 -1
  49. package/dist/constants/eventNames.mjs +0 -433
  50. package/dist/constants/eventNames.mjs.map +0 -1
  51. package/dist/constants/hyperLiquidConfig.cjs +0 -380
  52. package/dist/constants/hyperLiquidConfig.cjs.map +0 -1
  53. package/dist/constants/hyperLiquidConfig.d.cts +0 -236
  54. package/dist/constants/hyperLiquidConfig.d.cts.map +0 -1
  55. package/dist/constants/hyperLiquidConfig.d.mts +0 -236
  56. package/dist/constants/hyperLiquidConfig.d.mts.map +0 -1
  57. package/dist/constants/hyperLiquidConfig.mjs +0 -371
  58. package/dist/constants/hyperLiquidConfig.mjs.map +0 -1
  59. package/dist/constants/index.cjs +0 -28
  60. package/dist/constants/index.cjs.map +0 -1
  61. package/dist/constants/index.d.cts +0 -12
  62. package/dist/constants/index.d.cts.map +0 -1
  63. package/dist/constants/index.d.mts +0 -12
  64. package/dist/constants/index.d.mts.map +0 -1
  65. package/dist/constants/index.mjs +0 -12
  66. package/dist/constants/index.mjs.map +0 -1
  67. package/dist/constants/myxConfig.cjs +0 -229
  68. package/dist/constants/myxConfig.cjs.map +0 -1
  69. package/dist/constants/myxConfig.d.cts +0 -106
  70. package/dist/constants/myxConfig.d.cts.map +0 -1
  71. package/dist/constants/myxConfig.d.mts +0 -106
  72. package/dist/constants/myxConfig.d.mts.map +0 -1
  73. package/dist/constants/myxConfig.mjs +0 -219
  74. package/dist/constants/myxConfig.mjs.map +0 -1
  75. package/dist/constants/orderTypes.cjs +0 -31
  76. package/dist/constants/orderTypes.cjs.map +0 -1
  77. package/dist/constants/orderTypes.d.cts +0 -19
  78. package/dist/constants/orderTypes.d.cts.map +0 -1
  79. package/dist/constants/orderTypes.d.mts +0 -19
  80. package/dist/constants/orderTypes.d.mts.map +0 -1
  81. package/dist/constants/orderTypes.mjs +0 -27
  82. package/dist/constants/orderTypes.mjs.map +0 -1
  83. package/dist/constants/performanceMetrics.cjs +0 -63
  84. package/dist/constants/performanceMetrics.cjs.map +0 -1
  85. package/dist/constants/performanceMetrics.d.cts +0 -46
  86. package/dist/constants/performanceMetrics.d.cts.map +0 -1
  87. package/dist/constants/performanceMetrics.d.mts +0 -46
  88. package/dist/constants/performanceMetrics.d.mts.map +0 -1
  89. package/dist/constants/performanceMetrics.mjs +0 -60
  90. package/dist/constants/performanceMetrics.mjs.map +0 -1
  91. package/dist/constants/perpsConfig.cjs +0 -295
  92. package/dist/constants/perpsConfig.cjs.map +0 -1
  93. package/dist/constants/perpsConfig.d.cts +0 -221
  94. package/dist/constants/perpsConfig.d.cts.map +0 -1
  95. package/dist/constants/perpsConfig.d.mts +0 -221
  96. package/dist/constants/perpsConfig.d.mts.map +0 -1
  97. package/dist/constants/perpsConfig.mjs +0 -292
  98. package/dist/constants/perpsConfig.mjs.map +0 -1
  99. package/dist/constants/transactionsHistoryConfig.cjs +0 -19
  100. package/dist/constants/transactionsHistoryConfig.cjs.map +0 -1
  101. package/dist/constants/transactionsHistoryConfig.d.cts +0 -16
  102. package/dist/constants/transactionsHistoryConfig.d.cts.map +0 -1
  103. package/dist/constants/transactionsHistoryConfig.d.mts +0 -16
  104. package/dist/constants/transactionsHistoryConfig.d.mts.map +0 -1
  105. package/dist/constants/transactionsHistoryConfig.mjs +0 -16
  106. package/dist/constants/transactionsHistoryConfig.mjs.map +0 -1
  107. package/dist/perpsErrorCodes.cjs +0 -80
  108. package/dist/perpsErrorCodes.cjs.map +0 -1
  109. package/dist/perpsErrorCodes.d.cts +0 -65
  110. package/dist/perpsErrorCodes.d.cts.map +0 -1
  111. package/dist/perpsErrorCodes.d.mts +0 -65
  112. package/dist/perpsErrorCodes.d.mts.map +0 -1
  113. package/dist/perpsErrorCodes.mjs +0 -77
  114. package/dist/perpsErrorCodes.mjs.map +0 -1
  115. package/dist/providers/AggregatedPerpsProvider.cjs +0 -508
  116. package/dist/providers/AggregatedPerpsProvider.cjs.map +0 -1
  117. package/dist/providers/AggregatedPerpsProvider.d.cts +0 -171
  118. package/dist/providers/AggregatedPerpsProvider.d.cts.map +0 -1
  119. package/dist/providers/AggregatedPerpsProvider.d.mts +0 -171
  120. package/dist/providers/AggregatedPerpsProvider.d.mts.map +0 -1
  121. package/dist/providers/AggregatedPerpsProvider.mjs +0 -504
  122. package/dist/providers/AggregatedPerpsProvider.mjs.map +0 -1
  123. package/dist/providers/HyperLiquidProvider.cjs +0 -5679
  124. package/dist/providers/HyperLiquidProvider.cjs.map +0 -1
  125. package/dist/providers/HyperLiquidProvider.d.cts +0 -516
  126. package/dist/providers/HyperLiquidProvider.d.cts.map +0 -1
  127. package/dist/providers/HyperLiquidProvider.d.mts +0 -516
  128. package/dist/providers/HyperLiquidProvider.d.mts.map +0 -1
  129. package/dist/providers/HyperLiquidProvider.mjs +0 -5675
  130. package/dist/providers/HyperLiquidProvider.mjs.map +0 -1
  131. package/dist/providers/MYXProvider.cjs +0 -514
  132. package/dist/providers/MYXProvider.cjs.map +0 -1
  133. package/dist/providers/MYXProvider.d.cts +0 -105
  134. package/dist/providers/MYXProvider.d.cts.map +0 -1
  135. package/dist/providers/MYXProvider.d.mts +0 -105
  136. package/dist/providers/MYXProvider.d.mts.map +0 -1
  137. package/dist/providers/MYXProvider.mjs +0 -510
  138. package/dist/providers/MYXProvider.mjs.map +0 -1
  139. package/dist/routing/ProviderRouter.cjs +0 -154
  140. package/dist/routing/ProviderRouter.cjs.map +0 -1
  141. package/dist/routing/ProviderRouter.d.cts +0 -112
  142. package/dist/routing/ProviderRouter.d.cts.map +0 -1
  143. package/dist/routing/ProviderRouter.d.mts +0 -112
  144. package/dist/routing/ProviderRouter.d.mts.map +0 -1
  145. package/dist/routing/ProviderRouter.mjs +0 -150
  146. package/dist/routing/ProviderRouter.mjs.map +0 -1
  147. package/dist/routing/index.cjs +0 -9
  148. package/dist/routing/index.cjs.map +0 -1
  149. package/dist/routing/index.d.cts +0 -6
  150. package/dist/routing/index.d.cts.map +0 -1
  151. package/dist/routing/index.d.mts +0 -6
  152. package/dist/routing/index.d.mts.map +0 -1
  153. package/dist/routing/index.mjs +0 -5
  154. package/dist/routing/index.mjs.map +0 -1
  155. package/dist/selectors.cjs +0 -166
  156. package/dist/selectors.cjs.map +0 -1
  157. package/dist/selectors.d.cts +0 -362
  158. package/dist/selectors.d.cts.map +0 -1
  159. package/dist/selectors.d.mts +0 -362
  160. package/dist/selectors.d.mts.map +0 -1
  161. package/dist/selectors.mjs +0 -158
  162. package/dist/selectors.mjs.map +0 -1
  163. package/dist/services/AccountService.cjs +0 -324
  164. package/dist/services/AccountService.cjs.map +0 -1
  165. package/dist/services/AccountService.d.cts +0 -56
  166. package/dist/services/AccountService.d.cts.map +0 -1
  167. package/dist/services/AccountService.d.mts +0 -56
  168. package/dist/services/AccountService.d.mts.map +0 -1
  169. package/dist/services/AccountService.mjs +0 -320
  170. package/dist/services/AccountService.mjs.map +0 -1
  171. package/dist/services/DataLakeService.cjs +0 -233
  172. package/dist/services/DataLakeService.cjs.map +0 -1
  173. package/dist/services/DataLakeService.d.cts +0 -51
  174. package/dist/services/DataLakeService.d.cts.map +0 -1
  175. package/dist/services/DataLakeService.d.mts +0 -51
  176. package/dist/services/DataLakeService.d.mts.map +0 -1
  177. package/dist/services/DataLakeService.mjs +0 -229
  178. package/dist/services/DataLakeService.mjs.map +0 -1
  179. package/dist/services/DepositService.cjs +0 -98
  180. package/dist/services/DepositService.cjs.map +0 -1
  181. package/dist/services/DepositService.d.cts +0 -39
  182. package/dist/services/DepositService.d.cts.map +0 -1
  183. package/dist/services/DepositService.d.mts +0 -39
  184. package/dist/services/DepositService.d.mts.map +0 -1
  185. package/dist/services/DepositService.mjs +0 -94
  186. package/dist/services/DepositService.mjs.map +0 -1
  187. package/dist/services/EligibilityService.cjs +0 -173
  188. package/dist/services/EligibilityService.cjs.map +0 -1
  189. package/dist/services/EligibilityService.d.cts +0 -39
  190. package/dist/services/EligibilityService.d.cts.map +0 -1
  191. package/dist/services/EligibilityService.d.mts +0 -39
  192. package/dist/services/EligibilityService.d.mts.map +0 -1
  193. package/dist/services/EligibilityService.mjs +0 -169
  194. package/dist/services/EligibilityService.mjs.map +0 -1
  195. package/dist/services/FeatureFlagConfigurationService.cjs +0 -257
  196. package/dist/services/FeatureFlagConfigurationService.cjs.map +0 -1
  197. package/dist/services/FeatureFlagConfigurationService.d.cts +0 -73
  198. package/dist/services/FeatureFlagConfigurationService.d.cts.map +0 -1
  199. package/dist/services/FeatureFlagConfigurationService.d.mts +0 -73
  200. package/dist/services/FeatureFlagConfigurationService.d.mts.map +0 -1
  201. package/dist/services/FeatureFlagConfigurationService.mjs +0 -253
  202. package/dist/services/FeatureFlagConfigurationService.mjs.map +0 -1
  203. package/dist/services/HyperLiquidClientService.cjs +0 -867
  204. package/dist/services/HyperLiquidClientService.cjs.map +0 -1
  205. package/dist/services/HyperLiquidClientService.d.cts +0 -214
  206. package/dist/services/HyperLiquidClientService.d.cts.map +0 -1
  207. package/dist/services/HyperLiquidClientService.d.mts +0 -214
  208. package/dist/services/HyperLiquidClientService.d.mts.map +0 -1
  209. package/dist/services/HyperLiquidClientService.mjs +0 -862
  210. package/dist/services/HyperLiquidClientService.mjs.map +0 -1
  211. package/dist/services/HyperLiquidSubscriptionService.cjs +0 -2199
  212. package/dist/services/HyperLiquidSubscriptionService.cjs.map +0 -1
  213. package/dist/services/HyperLiquidSubscriptionService.d.cts +0 -187
  214. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +0 -1
  215. package/dist/services/HyperLiquidSubscriptionService.d.mts +0 -187
  216. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +0 -1
  217. package/dist/services/HyperLiquidSubscriptionService.mjs +0 -2195
  218. package/dist/services/HyperLiquidSubscriptionService.mjs.map +0 -1
  219. package/dist/services/HyperLiquidWalletService.cjs +0 -163
  220. package/dist/services/HyperLiquidWalletService.cjs.map +0 -1
  221. package/dist/services/HyperLiquidWalletService.d.cts +0 -78
  222. package/dist/services/HyperLiquidWalletService.d.cts.map +0 -1
  223. package/dist/services/HyperLiquidWalletService.d.mts +0 -78
  224. package/dist/services/HyperLiquidWalletService.d.mts.map +0 -1
  225. package/dist/services/HyperLiquidWalletService.mjs +0 -159
  226. package/dist/services/HyperLiquidWalletService.mjs.map +0 -1
  227. package/dist/services/MYXClientService.cjs +0 -304
  228. package/dist/services/MYXClientService.cjs.map +0 -1
  229. package/dist/services/MYXClientService.d.cts +0 -81
  230. package/dist/services/MYXClientService.d.cts.map +0 -1
  231. package/dist/services/MYXClientService.d.mts +0 -81
  232. package/dist/services/MYXClientService.d.mts.map +0 -1
  233. package/dist/services/MYXClientService.mjs +0 -300
  234. package/dist/services/MYXClientService.mjs.map +0 -1
  235. package/dist/services/MarketDataService.cjs +0 -848
  236. package/dist/services/MarketDataService.cjs.map +0 -1
  237. package/dist/services/MarketDataService.d.cts +0 -291
  238. package/dist/services/MarketDataService.d.cts.map +0 -1
  239. package/dist/services/MarketDataService.d.mts +0 -291
  240. package/dist/services/MarketDataService.d.mts.map +0 -1
  241. package/dist/services/MarketDataService.mjs +0 -844
  242. package/dist/services/MarketDataService.mjs.map +0 -1
  243. package/dist/services/RewardsIntegrationService.cjs +0 -120
  244. package/dist/services/RewardsIntegrationService.cjs.map +0 -1
  245. package/dist/services/RewardsIntegrationService.d.cts +0 -28
  246. package/dist/services/RewardsIntegrationService.d.cts.map +0 -1
  247. package/dist/services/RewardsIntegrationService.d.mts +0 -28
  248. package/dist/services/RewardsIntegrationService.d.mts.map +0 -1
  249. package/dist/services/RewardsIntegrationService.mjs +0 -116
  250. package/dist/services/RewardsIntegrationService.mjs.map +0 -1
  251. package/dist/services/ServiceContext.cjs +0 -3
  252. package/dist/services/ServiceContext.cjs.map +0 -1
  253. package/dist/services/ServiceContext.d.cts +0 -86
  254. package/dist/services/ServiceContext.d.cts.map +0 -1
  255. package/dist/services/ServiceContext.d.mts +0 -86
  256. package/dist/services/ServiceContext.d.mts.map +0 -1
  257. package/dist/services/ServiceContext.mjs +0 -2
  258. package/dist/services/ServiceContext.mjs.map +0 -1
  259. package/dist/services/TradingReadinessCache.cjs +0 -288
  260. package/dist/services/TradingReadinessCache.cjs.map +0 -1
  261. package/dist/services/TradingReadinessCache.d.cts +0 -174
  262. package/dist/services/TradingReadinessCache.d.cts.map +0 -1
  263. package/dist/services/TradingReadinessCache.d.mts +0 -174
  264. package/dist/services/TradingReadinessCache.d.mts.map +0 -1
  265. package/dist/services/TradingReadinessCache.mjs +0 -285
  266. package/dist/services/TradingReadinessCache.mjs.map +0 -1
  267. package/dist/services/TradingService.cjs +0 -1457
  268. package/dist/services/TradingService.cjs.map +0 -1
  269. package/dist/services/TradingService.d.cts +0 -195
  270. package/dist/services/TradingService.d.cts.map +0 -1
  271. package/dist/services/TradingService.d.mts +0 -195
  272. package/dist/services/TradingService.d.mts.map +0 -1
  273. package/dist/services/TradingService.mjs +0 -1453
  274. package/dist/services/TradingService.mjs.map +0 -1
  275. package/dist/types/config.cjs +0 -3
  276. package/dist/types/config.cjs.map +0 -1
  277. package/dist/types/config.d.cts +0 -49
  278. package/dist/types/config.d.cts.map +0 -1
  279. package/dist/types/config.d.mts +0 -49
  280. package/dist/types/config.d.mts.map +0 -1
  281. package/dist/types/config.mjs +0 -2
  282. package/dist/types/config.mjs.map +0 -1
  283. package/dist/types/hyperliquid-types.cjs +0 -3
  284. package/dist/types/hyperliquid-types.cjs.map +0 -1
  285. package/dist/types/hyperliquid-types.d.cts +0 -20
  286. package/dist/types/hyperliquid-types.d.cts.map +0 -1
  287. package/dist/types/hyperliquid-types.d.mts +0 -20
  288. package/dist/types/hyperliquid-types.d.mts.map +0 -1
  289. package/dist/types/hyperliquid-types.mjs +0 -2
  290. package/dist/types/hyperliquid-types.mjs.map +0 -1
  291. package/dist/types/index.cjs +0 -115
  292. package/dist/types/index.cjs.map +0 -1
  293. package/dist/types/index.d.cts +0 -1262
  294. package/dist/types/index.d.cts.map +0 -1
  295. package/dist/types/index.d.mts +0 -1262
  296. package/dist/types/index.d.mts.map +0 -1
  297. package/dist/types/index.mjs +0 -97
  298. package/dist/types/index.mjs.map +0 -1
  299. package/dist/types/messenger.cjs +0 -3
  300. package/dist/types/messenger.cjs.map +0 -1
  301. package/dist/types/messenger.d.cts +0 -27
  302. package/dist/types/messenger.d.cts.map +0 -1
  303. package/dist/types/messenger.d.mts +0 -27
  304. package/dist/types/messenger.d.mts.map +0 -1
  305. package/dist/types/messenger.mjs +0 -2
  306. package/dist/types/messenger.mjs.map +0 -1
  307. package/dist/types/myx-types.cjs +0 -25
  308. package/dist/types/myx-types.cjs.map +0 -1
  309. package/dist/types/myx-types.d.cts +0 -63
  310. package/dist/types/myx-types.d.cts.map +0 -1
  311. package/dist/types/myx-types.d.mts +0 -63
  312. package/dist/types/myx-types.d.mts.map +0 -1
  313. package/dist/types/myx-types.mjs +0 -22
  314. package/dist/types/myx-types.mjs.map +0 -1
  315. package/dist/types/perps-types.cjs +0 -4
  316. package/dist/types/perps-types.cjs.map +0 -1
  317. package/dist/types/perps-types.d.cts +0 -105
  318. package/dist/types/perps-types.d.cts.map +0 -1
  319. package/dist/types/perps-types.d.mts +0 -105
  320. package/dist/types/perps-types.d.mts.map +0 -1
  321. package/dist/types/perps-types.mjs +0 -2
  322. package/dist/types/perps-types.mjs.map +0 -1
  323. package/dist/types/token.cjs +0 -3
  324. package/dist/types/token.cjs.map +0 -1
  325. package/dist/types/token.d.cts +0 -25
  326. package/dist/types/token.d.cts.map +0 -1
  327. package/dist/types/token.d.mts +0 -25
  328. package/dist/types/token.d.mts.map +0 -1
  329. package/dist/types/token.mjs +0 -2
  330. package/dist/types/token.mjs.map +0 -1
  331. package/dist/types/transactionTypes.cjs +0 -28
  332. package/dist/types/transactionTypes.cjs.map +0 -1
  333. package/dist/types/transactionTypes.d.cts +0 -64
  334. package/dist/types/transactionTypes.d.cts.map +0 -1
  335. package/dist/types/transactionTypes.d.mts +0 -64
  336. package/dist/types/transactionTypes.d.mts.map +0 -1
  337. package/dist/types/transactionTypes.mjs +0 -23
  338. package/dist/types/transactionTypes.mjs.map +0 -1
  339. package/dist/utils/accountUtils.cjs +0 -100
  340. package/dist/utils/accountUtils.cjs.map +0 -1
  341. package/dist/utils/accountUtils.d.cts +0 -30
  342. package/dist/utils/accountUtils.d.cts.map +0 -1
  343. package/dist/utils/accountUtils.d.mts +0 -30
  344. package/dist/utils/accountUtils.d.mts.map +0 -1
  345. package/dist/utils/accountUtils.mjs +0 -92
  346. package/dist/utils/accountUtils.mjs.map +0 -1
  347. package/dist/utils/errorUtils.cjs +0 -35
  348. package/dist/utils/errorUtils.cjs.map +0 -1
  349. package/dist/utils/errorUtils.d.cts +0 -15
  350. package/dist/utils/errorUtils.d.cts.map +0 -1
  351. package/dist/utils/errorUtils.d.mts +0 -15
  352. package/dist/utils/errorUtils.d.mts.map +0 -1
  353. package/dist/utils/errorUtils.mjs +0 -31
  354. package/dist/utils/errorUtils.mjs.map +0 -1
  355. package/dist/utils/hyperLiquidAdapter.cjs +0 -331
  356. package/dist/utils/hyperLiquidAdapter.cjs.map +0 -1
  357. package/dist/utils/hyperLiquidAdapter.d.cts +0 -42
  358. package/dist/utils/hyperLiquidAdapter.d.cts.map +0 -1
  359. package/dist/utils/hyperLiquidAdapter.d.mts +0 -42
  360. package/dist/utils/hyperLiquidAdapter.d.mts.map +0 -1
  361. package/dist/utils/hyperLiquidAdapter.mjs +0 -316
  362. package/dist/utils/hyperLiquidAdapter.mjs.map +0 -1
  363. package/dist/utils/hyperLiquidOrderBookProcessor.cjs +0 -83
  364. package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +0 -1
  365. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +0 -55
  366. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +0 -1
  367. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +0 -55
  368. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +0 -1
  369. package/dist/utils/hyperLiquidOrderBookProcessor.mjs +0 -78
  370. package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +0 -1
  371. package/dist/utils/hyperLiquidValidation.cjs +0 -426
  372. package/dist/utils/hyperLiquidValidation.cjs.map +0 -1
  373. package/dist/utils/hyperLiquidValidation.d.cts +0 -143
  374. package/dist/utils/hyperLiquidValidation.d.cts.map +0 -1
  375. package/dist/utils/hyperLiquidValidation.d.mts +0 -143
  376. package/dist/utils/hyperLiquidValidation.d.mts.map +0 -1
  377. package/dist/utils/hyperLiquidValidation.mjs +0 -413
  378. package/dist/utils/hyperLiquidValidation.mjs.map +0 -1
  379. package/dist/utils/idUtils.cjs +0 -18
  380. package/dist/utils/idUtils.cjs.map +0 -1
  381. package/dist/utils/idUtils.d.cts +0 -6
  382. package/dist/utils/idUtils.d.cts.map +0 -1
  383. package/dist/utils/idUtils.d.mts +0 -6
  384. package/dist/utils/idUtils.d.mts.map +0 -1
  385. package/dist/utils/idUtils.mjs +0 -10
  386. package/dist/utils/idUtils.mjs.map +0 -1
  387. package/dist/utils/index.cjs +0 -59
  388. package/dist/utils/index.cjs.map +0 -1
  389. package/dist/utils/index.d.cts +0 -25
  390. package/dist/utils/index.d.cts.map +0 -1
  391. package/dist/utils/index.d.mts +0 -25
  392. package/dist/utils/index.d.mts.map +0 -1
  393. package/dist/utils/index.mjs +0 -30
  394. package/dist/utils/index.mjs.map +0 -1
  395. package/dist/utils/marketDataTransform.cjs +0 -211
  396. package/dist/utils/marketDataTransform.cjs.map +0 -1
  397. package/dist/utils/marketDataTransform.d.cts +0 -40
  398. package/dist/utils/marketDataTransform.d.cts.map +0 -1
  399. package/dist/utils/marketDataTransform.d.mts +0 -40
  400. package/dist/utils/marketDataTransform.d.mts.map +0 -1
  401. package/dist/utils/marketDataTransform.mjs +0 -205
  402. package/dist/utils/marketDataTransform.mjs.map +0 -1
  403. package/dist/utils/marketUtils.cjs +0 -151
  404. package/dist/utils/marketUtils.cjs.map +0 -1
  405. package/dist/utils/marketUtils.d.cts +0 -30
  406. package/dist/utils/marketUtils.d.cts.map +0 -1
  407. package/dist/utils/marketUtils.d.mts +0 -30
  408. package/dist/utils/marketUtils.d.mts.map +0 -1
  409. package/dist/utils/marketUtils.mjs +0 -138
  410. package/dist/utils/marketUtils.mjs.map +0 -1
  411. package/dist/utils/myxAdapter.cjs +0 -224
  412. package/dist/utils/myxAdapter.cjs.map +0 -1
  413. package/dist/utils/myxAdapter.d.cts +0 -81
  414. package/dist/utils/myxAdapter.d.cts.map +0 -1
  415. package/dist/utils/myxAdapter.d.mts +0 -81
  416. package/dist/utils/myxAdapter.d.mts.map +0 -1
  417. package/dist/utils/myxAdapter.mjs +0 -213
  418. package/dist/utils/myxAdapter.mjs.map +0 -1
  419. package/dist/utils/orderCalculations.cjs +0 -283
  420. package/dist/utils/orderCalculations.cjs.map +0 -1
  421. package/dist/utils/orderCalculations.d.cts +0 -107
  422. package/dist/utils/orderCalculations.d.cts.map +0 -1
  423. package/dist/utils/orderCalculations.d.mts +0 -107
  424. package/dist/utils/orderCalculations.d.mts.map +0 -1
  425. package/dist/utils/orderCalculations.mjs +0 -274
  426. package/dist/utils/orderCalculations.mjs.map +0 -1
  427. package/dist/utils/rewardsUtils.cjs +0 -98
  428. package/dist/utils/rewardsUtils.cjs.map +0 -1
  429. package/dist/utils/rewardsUtils.d.cts +0 -33
  430. package/dist/utils/rewardsUtils.d.cts.map +0 -1
  431. package/dist/utils/rewardsUtils.d.mts +0 -33
  432. package/dist/utils/rewardsUtils.d.mts.map +0 -1
  433. package/dist/utils/rewardsUtils.mjs +0 -92
  434. package/dist/utils/rewardsUtils.mjs.map +0 -1
  435. package/dist/utils/significantFigures.cjs +0 -88
  436. package/dist/utils/significantFigures.cjs.map +0 -1
  437. package/dist/utils/significantFigures.d.cts +0 -25
  438. package/dist/utils/significantFigures.d.cts.map +0 -1
  439. package/dist/utils/significantFigures.d.mts +0 -25
  440. package/dist/utils/significantFigures.d.mts.map +0 -1
  441. package/dist/utils/significantFigures.mjs +0 -82
  442. package/dist/utils/significantFigures.mjs.map +0 -1
  443. package/dist/utils/sortMarkets.cjs +0 -93
  444. package/dist/utils/sortMarkets.cjs.map +0 -1
  445. package/dist/utils/sortMarkets.d.cts +0 -27
  446. package/dist/utils/sortMarkets.d.cts.map +0 -1
  447. package/dist/utils/sortMarkets.d.mts +0 -27
  448. package/dist/utils/sortMarkets.d.mts.map +0 -1
  449. package/dist/utils/sortMarkets.mjs +0 -88
  450. package/dist/utils/sortMarkets.mjs.map +0 -1
  451. package/dist/utils/standaloneInfoClient.cjs +0 -70
  452. package/dist/utils/standaloneInfoClient.cjs.map +0 -1
  453. package/dist/utils/standaloneInfoClient.d.cts +0 -37
  454. package/dist/utils/standaloneInfoClient.d.cts.map +0 -1
  455. package/dist/utils/standaloneInfoClient.d.mts +0 -37
  456. package/dist/utils/standaloneInfoClient.d.mts.map +0 -1
  457. package/dist/utils/standaloneInfoClient.mjs +0 -64
  458. package/dist/utils/standaloneInfoClient.mjs.map +0 -1
  459. package/dist/utils/stringParseUtils.cjs +0 -18
  460. package/dist/utils/stringParseUtils.cjs.map +0 -1
  461. package/dist/utils/stringParseUtils.d.cts +0 -3
  462. package/dist/utils/stringParseUtils.d.cts.map +0 -1
  463. package/dist/utils/stringParseUtils.d.mts +0 -3
  464. package/dist/utils/stringParseUtils.d.mts.map +0 -1
  465. package/dist/utils/stringParseUtils.mjs +0 -13
  466. package/dist/utils/stringParseUtils.mjs.map +0 -1
  467. package/dist/utils/transferData.cjs +0 -33
  468. package/dist/utils/transferData.cjs.map +0 -1
  469. package/dist/utils/transferData.d.cts +0 -9
  470. package/dist/utils/transferData.d.cts.map +0 -1
  471. package/dist/utils/transferData.d.mts +0 -9
  472. package/dist/utils/transferData.d.mts.map +0 -1
  473. package/dist/utils/transferData.mjs +0 -29
  474. package/dist/utils/transferData.mjs.map +0 -1
  475. package/dist/utils/wait.cjs +0 -6
  476. package/dist/utils/wait.cjs.map +0 -1
  477. package/dist/utils/wait.d.cts +0 -2
  478. package/dist/utils/wait.d.cts.map +0 -1
  479. package/dist/utils/wait.d.mts +0 -2
  480. package/dist/utils/wait.d.mts.map +0 -1
  481. package/dist/utils/wait.mjs +0 -2
  482. package/dist/utils/wait.mjs.map +0 -1
@@ -1,300 +0,0 @@
1
- /**
2
- * MYXClientService
3
- *
4
- * Stage 1 service for fetching MYX market data using the @myx-trade/sdk.
5
- * Handles market listing, ticker fetching, and price polling.
6
- *
7
- * Uses MyxClient SDK for API calls.
8
- * Trading functionality will be added in Stage 3.
9
- */
10
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
11
- if (kind === "m") throw new TypeError("Private method is not writable");
12
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
13
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
14
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
15
- };
16
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
17
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
18
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
19
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
20
- };
21
- var _MYXClientService_instances, _MYXClientService_myxClient, _MYXClientService_isTestnet, _MYXClientService_chainId, _MYXClientService_pricePollingTimeout, _MYXClientService_pollingSymbols, _MYXClientService_pollingCallback, _MYXClientService_marketsCache, _MYXClientService_marketsCacheTimestamp, _MYXClientService_marketsCacheTtlMs, _MYXClientService_deps, _MYXClientService_getErrorContext, _MYXClientService_pollPrices, _MYXClientService_scheduleNextPoll;
22
- import { MyxClient } from "@myx-trade/sdk";
23
- import { MYX_PRICE_POLLING_INTERVAL_MS, getMYXChainId } from "../constants/myxConfig.mjs";
24
- import { PERPS_CONSTANTS } from "../constants/perpsConfig.mjs";
25
- import { ensureError } from "../utils/errorUtils.mjs";
26
- // ============================================================================
27
- // MYXClientService
28
- // ============================================================================
29
- /**
30
- * Service for managing MYX SDK client interactions
31
- * Stage 1: Read-only operations (markets, prices)
32
- */
33
- export class MYXClientService {
34
- constructor(deps, config) {
35
- _MYXClientService_instances.add(this);
36
- // SDK Client
37
- _MYXClientService_myxClient.set(this, void 0);
38
- // Configuration
39
- _MYXClientService_isTestnet.set(this, void 0);
40
- _MYXClientService_chainId.set(this, void 0);
41
- // Price polling (sequential using setTimeout to prevent request pileup)
42
- _MYXClientService_pricePollingTimeout.set(this, void 0);
43
- _MYXClientService_pollingSymbols.set(this, []);
44
- _MYXClientService_pollingCallback.set(this, void 0);
45
- // Caches
46
- _MYXClientService_marketsCache.set(this, []);
47
- _MYXClientService_marketsCacheTimestamp.set(this, 0);
48
- _MYXClientService_marketsCacheTtlMs.set(this, 5 * 60 * 1000); // 5 minutes
49
- // Platform dependencies
50
- _MYXClientService_deps.set(this, void 0);
51
- __classPrivateFieldSet(this, _MYXClientService_deps, deps, "f");
52
- __classPrivateFieldSet(this, _MYXClientService_isTestnet, config.isTestnet, "f");
53
- __classPrivateFieldSet(this, _MYXClientService_chainId, getMYXChainId(__classPrivateFieldGet(this, _MYXClientService_isTestnet, "f") ? 'testnet' : 'mainnet'), "f");
54
- // Initialize MyxClient
55
- __classPrivateFieldSet(this, _MYXClientService_myxClient, new MyxClient({
56
- chainId: __classPrivateFieldGet(this, _MYXClientService_chainId, "f"),
57
- brokerAddress: '0x0000000000000000000000000000000000000000', // Not needed for read-only
58
- isTestnet: __classPrivateFieldGet(this, _MYXClientService_isTestnet, "f"),
59
- isBetaMode: __classPrivateFieldGet(this, _MYXClientService_isTestnet, "f"), // Use beta API for testnet
60
- }), "f");
61
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Initialized with SDK', {
62
- isTestnet: __classPrivateFieldGet(this, _MYXClientService_isTestnet, "f"),
63
- chainId: __classPrivateFieldGet(this, _MYXClientService_chainId, "f"),
64
- });
65
- }
66
- // ============================================================================
67
- // Market Operations
68
- // ============================================================================
69
- /**
70
- * Get all available markets/pools
71
- * Uses SDK markets.getPoolSymbolAll()
72
- *
73
- * @returns The array of available MYX pool symbols.
74
- */
75
- async getMarkets() {
76
- // Return cache if valid
77
- const now = Date.now();
78
- if (__classPrivateFieldGet(this, _MYXClientService_marketsCache, "f").length > 0 &&
79
- now - __classPrivateFieldGet(this, _MYXClientService_marketsCacheTimestamp, "f") < __classPrivateFieldGet(this, _MYXClientService_marketsCacheTtlMs, "f")) {
80
- return __classPrivateFieldGet(this, _MYXClientService_marketsCache, "f");
81
- }
82
- try {
83
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Fetching markets via SDK');
84
- const pools = await __classPrivateFieldGet(this, _MYXClientService_myxClient, "f").markets.getPoolSymbolAll();
85
- // Update cache
86
- __classPrivateFieldSet(this, _MYXClientService_marketsCache, pools || [], "f");
87
- __classPrivateFieldSet(this, _MYXClientService_marketsCacheTimestamp, Date.now(), "f");
88
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Markets fetched', {
89
- count: __classPrivateFieldGet(this, _MYXClientService_marketsCache, "f").length,
90
- });
91
- return __classPrivateFieldGet(this, _MYXClientService_marketsCache, "f");
92
- }
93
- catch (caughtError) {
94
- const wrappedError = ensureError(caughtError, 'MYXClientService.getMarkets');
95
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").logger.error(wrappedError, __classPrivateFieldGet(this, _MYXClientService_instances, "m", _MYXClientService_getErrorContext).call(this, 'getMarkets'));
96
- // Return stale cache if available
97
- if (__classPrivateFieldGet(this, _MYXClientService_marketsCache, "f").length > 0) {
98
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Returning stale cache after error');
99
- return __classPrivateFieldGet(this, _MYXClientService_marketsCache, "f");
100
- }
101
- throw wrappedError;
102
- }
103
- }
104
- /**
105
- * Get tickers for specific symbols/pools
106
- * Uses SDK markets.getTickerList()
107
- *
108
- * @param poolIds - The array of pool identifiers to fetch tickers for.
109
- * @returns The array of ticker data for the specified pools.
110
- */
111
- async getTickers(poolIds) {
112
- if (poolIds.length === 0) {
113
- return [];
114
- }
115
- try {
116
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Fetching tickers via SDK', {
117
- poolIds: poolIds.length,
118
- });
119
- const tickers = await __classPrivateFieldGet(this, _MYXClientService_myxClient, "f").markets.getTickerList({
120
- chainId: __classPrivateFieldGet(this, _MYXClientService_chainId, "f"),
121
- poolIds,
122
- });
123
- return tickers || [];
124
- }
125
- catch (caughtError) {
126
- const wrappedError = ensureError(caughtError, 'MYXClientService.getTickers');
127
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").logger.error(wrappedError, __classPrivateFieldGet(this, _MYXClientService_instances, "m", _MYXClientService_getErrorContext).call(this, 'getTickers', { poolIds }));
128
- throw wrappedError;
129
- }
130
- }
131
- /**
132
- * Get all tickers (for all available markets)
133
- *
134
- * @returns The array of ticker data for all available markets.
135
- */
136
- async getAllTickers() {
137
- try {
138
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Fetching all tickers via SDK');
139
- // Get all pools first, then fetch tickers for them
140
- const pools = await this.getMarkets();
141
- const poolIds = pools.map((pool) => pool.poolId);
142
- if (poolIds.length === 0) {
143
- return [];
144
- }
145
- return this.getTickers(poolIds);
146
- }
147
- catch (caughtError) {
148
- const wrappedError = ensureError(caughtError, 'MYXClientService.getAllTickers');
149
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").logger.error(wrappedError, __classPrivateFieldGet(this, _MYXClientService_instances, "m", _MYXClientService_getErrorContext).call(this, 'getAllTickers'));
150
- throw wrappedError;
151
- }
152
- }
153
- // ============================================================================
154
- // Price Polling
155
- // ============================================================================
156
- /**
157
- * Start polling for price updates.
158
- * Uses sequential setTimeout to prevent request pileup — the next poll
159
- * is only scheduled after the current one completes (or fails).
160
- *
161
- * @param poolIds - The array of pool identifiers to poll prices for.
162
- * @param callback - The callback invoked with updated ticker data on each poll.
163
- */
164
- startPricePolling(poolIds, callback) {
165
- // Stop existing polling
166
- this.stopPricePolling();
167
- __classPrivateFieldSet(this, _MYXClientService_pollingSymbols, poolIds, "f");
168
- __classPrivateFieldSet(this, _MYXClientService_pollingCallback, callback, "f");
169
- // Fetch immediately, then schedule subsequent polls
170
- __classPrivateFieldGet(this, _MYXClientService_instances, "m", _MYXClientService_pollPrices).call(this).catch(() => {
171
- // Error handling is done inside #pollPrices
172
- });
173
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Started price polling', {
174
- symbols: poolIds.length,
175
- intervalMs: MYX_PRICE_POLLING_INTERVAL_MS,
176
- });
177
- }
178
- /**
179
- * Stop price polling
180
- */
181
- stopPricePolling() {
182
- if (__classPrivateFieldGet(this, _MYXClientService_pricePollingTimeout, "f")) {
183
- clearTimeout(__classPrivateFieldGet(this, _MYXClientService_pricePollingTimeout, "f"));
184
- __classPrivateFieldSet(this, _MYXClientService_pricePollingTimeout, undefined, "f");
185
- }
186
- __classPrivateFieldSet(this, _MYXClientService_pollingSymbols, [], "f");
187
- __classPrivateFieldSet(this, _MYXClientService_pollingCallback, undefined, "f");
188
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Stopped price polling');
189
- }
190
- // ============================================================================
191
- // Health Check
192
- // ============================================================================
193
- /**
194
- * Health check — attempts a lightweight REST call (getTickerList with empty poolIds)
195
- * to verify the MYX API is reachable.
196
- *
197
- * @param timeoutMs - The timeout in milliseconds for the ping request.
198
- */
199
- async ping(timeoutMs = 5000) {
200
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Ping - checking REST health');
201
- let timeoutId;
202
- const timeoutPromise = new Promise((_resolve, reject) => {
203
- timeoutId = setTimeout(() => reject(new Error('MYX ping timeout')), timeoutMs);
204
- });
205
- try {
206
- await Promise.race([
207
- __classPrivateFieldGet(this, _MYXClientService_myxClient, "f").markets.getTickerList({
208
- chainId: __classPrivateFieldGet(this, _MYXClientService_chainId, "f"),
209
- poolIds: [],
210
- }),
211
- timeoutPromise,
212
- ]);
213
- }
214
- catch (caughtError) {
215
- const wrappedError = ensureError(caughtError, 'MYXClientService.ping');
216
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Ping failed', {
217
- error: wrappedError.message,
218
- });
219
- throw wrappedError;
220
- }
221
- finally {
222
- clearTimeout(timeoutId);
223
- }
224
- }
225
- // ============================================================================
226
- // Lifecycle
227
- // ============================================================================
228
- /**
229
- * Disconnect and cleanup
230
- */
231
- disconnect() {
232
- this.stopPricePolling();
233
- __classPrivateFieldSet(this, _MYXClientService_marketsCache, [], "f");
234
- __classPrivateFieldSet(this, _MYXClientService_marketsCacheTimestamp, 0, "f");
235
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Disconnected');
236
- }
237
- /**
238
- * Get current network mode
239
- *
240
- * @returns True if the service is in testnet mode.
241
- */
242
- getIsTestnet() {
243
- return __classPrivateFieldGet(this, _MYXClientService_isTestnet, "f");
244
- }
245
- }
246
- _MYXClientService_myxClient = new WeakMap(), _MYXClientService_isTestnet = new WeakMap(), _MYXClientService_chainId = new WeakMap(), _MYXClientService_pricePollingTimeout = new WeakMap(), _MYXClientService_pollingSymbols = new WeakMap(), _MYXClientService_pollingCallback = new WeakMap(), _MYXClientService_marketsCache = new WeakMap(), _MYXClientService_marketsCacheTimestamp = new WeakMap(), _MYXClientService_marketsCacheTtlMs = new WeakMap(), _MYXClientService_deps = new WeakMap(), _MYXClientService_instances = new WeakSet(), _MYXClientService_getErrorContext = function _MYXClientService_getErrorContext(method, extra) {
247
- return {
248
- tags: {
249
- feature: PERPS_CONSTANTS.FeatureName,
250
- service: 'MYXClientService',
251
- network: __classPrivateFieldGet(this, _MYXClientService_isTestnet, "f") ? 'testnet' : 'mainnet',
252
- },
253
- context: {
254
- name: `MYXClientService.${method}`,
255
- data: {
256
- chainId: __classPrivateFieldGet(this, _MYXClientService_chainId, "f"),
257
- ...extra,
258
- },
259
- },
260
- };
261
- }, _MYXClientService_pollPrices =
262
- /**
263
- * Execute a single price poll, then schedule the next one.
264
- * Sequential pattern ensures no request pileup if polls take longer than the interval.
265
- */
266
- async function _MYXClientService_pollPrices() {
267
- if (!__classPrivateFieldGet(this, _MYXClientService_pollingCallback, "f") || __classPrivateFieldGet(this, _MYXClientService_pollingSymbols, "f").length === 0) {
268
- return;
269
- }
270
- try {
271
- const tickers = await this.getTickers(__classPrivateFieldGet(this, _MYXClientService_pollingSymbols, "f"));
272
- // Re-check: polling may have been stopped during the await
273
- // (TS narrows after early return but can't track mutations across await)
274
- const callback = __classPrivateFieldGet(this, _MYXClientService_pollingCallback, "f");
275
- if (callback) {
276
- callback(tickers);
277
- }
278
- }
279
- catch (caughtError) {
280
- const wrappedError = ensureError(caughtError, 'MYXClientService.pollPrices');
281
- __classPrivateFieldGet(this, _MYXClientService_deps, "f").debugLogger.log('[MYXClientService] Price poll failed', {
282
- error: wrappedError.message,
283
- });
284
- // Don't propagate error - polling continues
285
- }
286
- finally {
287
- __classPrivateFieldGet(this, _MYXClientService_instances, "m", _MYXClientService_scheduleNextPoll).call(this);
288
- }
289
- }, _MYXClientService_scheduleNextPoll = function _MYXClientService_scheduleNextPoll() {
290
- // Only schedule if polling is still active
291
- if (!__classPrivateFieldGet(this, _MYXClientService_pollingCallback, "f") || __classPrivateFieldGet(this, _MYXClientService_pollingSymbols, "f").length === 0) {
292
- return;
293
- }
294
- __classPrivateFieldSet(this, _MYXClientService_pricePollingTimeout, setTimeout(() => {
295
- __classPrivateFieldGet(this, _MYXClientService_instances, "m", _MYXClientService_pollPrices).call(this).catch(() => {
296
- // Error handling is done inside #pollPrices
297
- });
298
- }, MYX_PRICE_POLLING_INTERVAL_MS), "f");
299
- };
300
- //# sourceMappingURL=MYXClientService.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MYXClientService.mjs","sourceRoot":"","sources":["../../src/services/MYXClientService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;;;;;;;;;;AAEH,OAAO,EAAE,SAAS,EAAE,uBAAuB;AAE3C,OAAO,EACL,6BAA6B,EAC7B,aAAa,EACd,mCAA+B;AAChC,OAAO,EAAE,eAAe,EAAE,qCAAiC;AAG3D,OAAO,EAAE,WAAW,EAAE,gCAA4B;AAkBlD,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IA0B3B,YAAY,IAA+B,EAAE,MAAuB;;QAzBpE,aAAa;QACJ,8CAAsB;QAE/B,gBAAgB;QACP,8CAAoB;QAEpB,4CAAiB;QAE1B,wEAAwE;QACxE,wDAAqD;QAErD,2CAA4B,EAAE,EAAC;QAE/B,oDAAwC;QAExC,SAAS;QACT,yCAAiC,EAAE,EAAC;QAEpC,kDAAyB,CAAC,EAAC;QAElB,8CAAqB,CAAC,GAAG,EAAE,GAAG,IAAI,EAAC,CAAC,YAAY;QAEzD,wBAAwB;QACf,yCAAiC;QAGxC,uBAAA,IAAI,0BAAS,IAAI,MAAA,CAAC;QAElB,uBAAA,IAAI,+BAAc,MAAM,CAAC,SAAS,MAAA,CAAC;QACnC,uBAAA,IAAI,6BAAY,aAAa,CAAC,uBAAA,IAAI,mCAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAA,CAAC;QAEvE,uBAAuB;QACvB,uBAAA,IAAI,+BAAc,IAAI,SAAS,CAAC;YAC9B,OAAO,EAAE,uBAAA,IAAI,iCAAS;YACtB,aAAa,EAAE,4CAA4C,EAAE,2BAA2B;YACxF,SAAS,EAAE,uBAAA,IAAI,mCAAW;YAC1B,UAAU,EAAE,uBAAA,IAAI,mCAAW,EAAE,2BAA2B;SACzD,CAAC,MAAA,CAAC;QAEH,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,yCAAyC,EAAE;YACpE,SAAS,EAAE,uBAAA,IAAI,mCAAW;YAC1B,OAAO,EAAE,uBAAA,IAAI,iCAAS;SACvB,CAAC,CAAC;IACL,CAAC;IA6BD,+EAA+E;IAC/E,oBAAoB;IACpB,+EAA+E;IAE/E;;;;;OAKG;IACH,KAAK,CAAC,UAAU;QACd,wBAAwB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IACE,uBAAA,IAAI,sCAAc,CAAC,MAAM,GAAG,CAAC;YAC7B,GAAG,GAAG,uBAAA,IAAI,+CAAuB,GAAG,uBAAA,IAAI,2CAAmB,EAC3D,CAAC;YACD,OAAO,uBAAA,IAAI,sCAAc,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAE1E,MAAM,KAAK,GAAG,MAAM,uBAAA,IAAI,mCAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAE/D,eAAe;YACf,uBAAA,IAAI,kCAAiB,KAAK,IAAI,EAAE,MAAA,CAAC;YACjC,uBAAA,IAAI,2CAA0B,IAAI,CAAC,GAAG,EAAE,MAAA,CAAC;YAEzC,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,oCAAoC,EAAE;gBAC/D,KAAK,EAAE,uBAAA,IAAI,sCAAc,CAAC,MAAM;aACjC,CAAC,CAAC;YAEH,OAAO,uBAAA,IAAI,sCAAc,CAAC;QAC5B,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,WAAW,CAC9B,WAAW,EACX,6BAA6B,CAC9B,CAAC;YACF,uBAAA,IAAI,8BAAM,CAAC,MAAM,CAAC,KAAK,CACrB,YAAY,EACZ,uBAAA,IAAI,sEAAiB,MAArB,IAAI,EAAkB,YAAY,CAAC,CACpC,CAAC;YAEF,kCAAkC;YAClC,IAAI,uBAAA,IAAI,sCAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CACxB,sDAAsD,CACvD,CAAC;gBACF,OAAO,uBAAA,IAAI,sCAAc,CAAC;YAC5B,CAAC;YAED,MAAM,YAAY,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,OAAiB;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CACxB,6CAA6C,EAC7C;gBACE,OAAO,EAAE,OAAO,CAAC,MAAM;aACxB,CACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,mCAAW,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC1D,OAAO,EAAE,uBAAA,IAAI,iCAAS;gBACtB,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,OAAO,IAAI,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,WAAW,CAC9B,WAAW,EACX,6BAA6B,CAC9B,CAAC;YACF,uBAAA,IAAI,8BAAM,CAAC,MAAM,CAAC,KAAK,CACrB,YAAY,EACZ,uBAAA,IAAI,sEAAiB,MAArB,IAAI,EAAkB,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,CACjD,CAAC;YACF,MAAM,YAAY,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC;YACH,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CACxB,iDAAiD,CAClD,CAAC;YAEF,mDAAmD;YACnD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,WAAW,CAC9B,WAAW,EACX,gCAAgC,CACjC,CAAC;YACF,uBAAA,IAAI,8BAAM,CAAC,MAAM,CAAC,KAAK,CACrB,YAAY,EACZ,uBAAA,IAAI,sEAAiB,MAArB,IAAI,EAAkB,eAAe,CAAC,CACvC,CAAC;YACF,MAAM,YAAY,CAAC;QACrB,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAiB,EAAE,QAA8B;QACjE,wBAAwB;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,uBAAA,IAAI,oCAAmB,OAAO,MAAA,CAAC;QAC/B,uBAAA,IAAI,qCAAoB,QAAQ,MAAA,CAAC;QAEjC,oDAAoD;QACpD,uBAAA,IAAI,iEAAY,MAAhB,IAAI,CAAc,CAAC,KAAK,CAAC,GAAG,EAAE;YAC5B,4CAA4C;QAC9C,CAAC,CAAC,CAAC;QAEH,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,0CAA0C,EAAE;YACrE,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,UAAU,EAAE,6BAA6B;SAC1C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,uBAAA,IAAI,6CAAqB,EAAE,CAAC;YAC9B,YAAY,CAAC,uBAAA,IAAI,6CAAqB,CAAC,CAAC;YACxC,uBAAA,IAAI,yCAAwB,SAAS,MAAA,CAAC;QACxC,CAAC;QACD,uBAAA,IAAI,oCAAmB,EAAE,MAAA,CAAC;QAC1B,uBAAA,IAAI,qCAAoB,SAAS,MAAA,CAAC;QAElC,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACzE,CAAC;IAiDD,+EAA+E;IAC/E,eAAe;IACf,+EAA+E;IAE/E;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI;QACzB,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CACxB,gDAAgD,CACjD,CAAC;QAEF,IAAI,SAAoD,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YAC7D,SAAS,GAAG,UAAU,CACpB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,EAC3C,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,uBAAA,IAAI,mCAAW,CAAC,OAAO,CAAC,aAAa,CAAC;oBACpC,OAAO,EAAE,uBAAA,IAAI,iCAAS;oBACtB,OAAO,EAAE,EAAE;iBACZ,CAAC;gBACF,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YACvE,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,gCAAgC,EAAE;gBAC3D,KAAK,EAAE,YAAY,CAAC,OAAO;aAC5B,CAAC,CAAC;YACH,MAAM,YAAY,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,YAAY;IACZ,+EAA+E;IAE/E;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,uBAAA,IAAI,kCAAiB,EAAE,MAAA,CAAC;QACxB,uBAAA,IAAI,2CAA0B,CAAC,MAAA,CAAC;QAEhC,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,uBAAA,IAAI,mCAAW,CAAC;IACzB,CAAC;CACF;mmBAlTG,MAAc,EACd,KAA+B;IAK/B,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,eAAe,CAAC,WAAW;YACpC,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,uBAAA,IAAI,mCAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACjD;QACD,OAAO,EAAE;YACP,IAAI,EAAE,oBAAoB,MAAM,EAAE;YAClC,IAAI,EAAE;gBACJ,OAAO,EAAE,uBAAA,IAAI,iCAAS;gBACtB,GAAG,KAAK;aACT;SACF;KACF,CAAC;AACJ,CAAC;AA8KD;;;GAGG;AACH,KAAK;IACH,IAAI,CAAC,uBAAA,IAAI,yCAAiB,IAAI,uBAAA,IAAI,wCAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAA,IAAI,wCAAgB,CAAC,CAAC;QAC5D,2DAA2D;QAC3D,yEAAyE;QACzE,MAAM,QAAQ,GAAG,uBAAA,IAAI,yCAAiB,CAAC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,WAAW,CAC9B,WAAW,EACX,6BAA6B,CAC9B,CAAC;QACF,uBAAA,IAAI,8BAAM,CAAC,WAAW,CAAC,GAAG,CAAC,sCAAsC,EAAE;YACjE,KAAK,EAAE,YAAY,CAAC,OAAO;SAC5B,CAAC,CAAC;QACH,4CAA4C;IAC9C,CAAC;YAAS,CAAC;QACT,uBAAA,IAAI,uEAAkB,MAAtB,IAAI,CAAoB,CAAC;IAC3B,CAAC;AACH,CAAC;IAMC,2CAA2C;IAC3C,IAAI,CAAC,uBAAA,IAAI,yCAAiB,IAAI,uBAAA,IAAI,wCAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO;IACT,CAAC;IAED,uBAAA,IAAI,yCAAwB,UAAU,CAAC,GAAG,EAAE;QAC1C,uBAAA,IAAI,iEAAY,MAAhB,IAAI,CAAc,CAAC,KAAK,CAAC,GAAG,EAAE;YAC5B,4CAA4C;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,6BAA6B,CAAC,MAAA,CAAC;AACpC,CAAC","sourcesContent":["/**\n * MYXClientService\n *\n * Stage 1 service for fetching MYX market data using the @myx-trade/sdk.\n * Handles market listing, ticker fetching, and price polling.\n *\n * Uses MyxClient SDK for API calls.\n * Trading functionality will be added in Stage 3.\n */\n\nimport { MyxClient } from '@myx-trade/sdk';\n\nimport {\n MYX_PRICE_POLLING_INTERVAL_MS,\n getMYXChainId,\n} from '../constants/myxConfig';\nimport { PERPS_CONSTANTS } from '../constants/perpsConfig';\nimport type { PerpsPlatformDependencies } from '../types';\nimport type { MYXPoolSymbol, MYXTicker } from '../types/myx-types';\nimport { ensureError } from '../utils/errorUtils';\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * MYX Client Configuration\n */\nexport type MYXClientConfig = {\n isTestnet: boolean;\n};\n\n/**\n * Price polling callback type\n */\nexport type PricePollingCallback = (tickers: MYXTicker[]) => void;\n\n// ============================================================================\n// MYXClientService\n// ============================================================================\n\n/**\n * Service for managing MYX SDK client interactions\n * Stage 1: Read-only operations (markets, prices)\n */\nexport class MYXClientService {\n // SDK Client\n readonly #myxClient: MyxClient;\n\n // Configuration\n readonly #isTestnet: boolean;\n\n readonly #chainId: number;\n\n // Price polling (sequential using setTimeout to prevent request pileup)\n #pricePollingTimeout?: ReturnType<typeof setTimeout>;\n\n #pollingSymbols: string[] = [];\n\n #pollingCallback?: PricePollingCallback;\n\n // Caches\n #marketsCache: MYXPoolSymbol[] = [];\n\n #marketsCacheTimestamp = 0;\n\n readonly #marketsCacheTtlMs = 5 * 60 * 1000; // 5 minutes\n\n // Platform dependencies\n readonly #deps: PerpsPlatformDependencies;\n\n constructor(deps: PerpsPlatformDependencies, config: MYXClientConfig) {\n this.#deps = deps;\n\n this.#isTestnet = config.isTestnet;\n this.#chainId = getMYXChainId(this.#isTestnet ? 'testnet' : 'mainnet');\n\n // Initialize MyxClient\n this.#myxClient = new MyxClient({\n chainId: this.#chainId,\n brokerAddress: '0x0000000000000000000000000000000000000000', // Not needed for read-only\n isTestnet: this.#isTestnet,\n isBetaMode: this.#isTestnet, // Use beta API for testnet\n });\n\n this.#deps.debugLogger.log('[MYXClientService] Initialized with SDK', {\n isTestnet: this.#isTestnet,\n chainId: this.#chainId,\n });\n }\n\n // ============================================================================\n // Error Context Helper\n // ============================================================================\n\n #getErrorContext(\n method: string,\n extra?: Record<string, unknown>,\n ): {\n tags?: Record<string, string | number>;\n context?: { name: string; data: Record<string, unknown> };\n } {\n return {\n tags: {\n feature: PERPS_CONSTANTS.FeatureName,\n service: 'MYXClientService',\n network: this.#isTestnet ? 'testnet' : 'mainnet',\n },\n context: {\n name: `MYXClientService.${method}`,\n data: {\n chainId: this.#chainId,\n ...extra,\n },\n },\n };\n }\n\n // ============================================================================\n // Market Operations\n // ============================================================================\n\n /**\n * Get all available markets/pools\n * Uses SDK markets.getPoolSymbolAll()\n *\n * @returns The array of available MYX pool symbols.\n */\n async getMarkets(): Promise<MYXPoolSymbol[]> {\n // Return cache if valid\n const now = Date.now();\n if (\n this.#marketsCache.length > 0 &&\n now - this.#marketsCacheTimestamp < this.#marketsCacheTtlMs\n ) {\n return this.#marketsCache;\n }\n\n try {\n this.#deps.debugLogger.log('[MYXClientService] Fetching markets via SDK');\n\n const pools = await this.#myxClient.markets.getPoolSymbolAll();\n\n // Update cache\n this.#marketsCache = pools || [];\n this.#marketsCacheTimestamp = Date.now();\n\n this.#deps.debugLogger.log('[MYXClientService] Markets fetched', {\n count: this.#marketsCache.length,\n });\n\n return this.#marketsCache;\n } catch (caughtError) {\n const wrappedError = ensureError(\n caughtError,\n 'MYXClientService.getMarkets',\n );\n this.#deps.logger.error(\n wrappedError,\n this.#getErrorContext('getMarkets'),\n );\n\n // Return stale cache if available\n if (this.#marketsCache.length > 0) {\n this.#deps.debugLogger.log(\n '[MYXClientService] Returning stale cache after error',\n );\n return this.#marketsCache;\n }\n\n throw wrappedError;\n }\n }\n\n /**\n * Get tickers for specific symbols/pools\n * Uses SDK markets.getTickerList()\n *\n * @param poolIds - The array of pool identifiers to fetch tickers for.\n * @returns The array of ticker data for the specified pools.\n */\n async getTickers(poolIds: string[]): Promise<MYXTicker[]> {\n if (poolIds.length === 0) {\n return [];\n }\n\n try {\n this.#deps.debugLogger.log(\n '[MYXClientService] Fetching tickers via SDK',\n {\n poolIds: poolIds.length,\n },\n );\n\n const tickers = await this.#myxClient.markets.getTickerList({\n chainId: this.#chainId,\n poolIds,\n });\n\n return tickers || [];\n } catch (caughtError) {\n const wrappedError = ensureError(\n caughtError,\n 'MYXClientService.getTickers',\n );\n this.#deps.logger.error(\n wrappedError,\n this.#getErrorContext('getTickers', { poolIds }),\n );\n throw wrappedError;\n }\n }\n\n /**\n * Get all tickers (for all available markets)\n *\n * @returns The array of ticker data for all available markets.\n */\n async getAllTickers(): Promise<MYXTicker[]> {\n try {\n this.#deps.debugLogger.log(\n '[MYXClientService] Fetching all tickers via SDK',\n );\n\n // Get all pools first, then fetch tickers for them\n const pools = await this.getMarkets();\n const poolIds = pools.map((pool) => pool.poolId);\n\n if (poolIds.length === 0) {\n return [];\n }\n\n return this.getTickers(poolIds);\n } catch (caughtError) {\n const wrappedError = ensureError(\n caughtError,\n 'MYXClientService.getAllTickers',\n );\n this.#deps.logger.error(\n wrappedError,\n this.#getErrorContext('getAllTickers'),\n );\n throw wrappedError;\n }\n }\n\n // ============================================================================\n // Price Polling\n // ============================================================================\n\n /**\n * Start polling for price updates.\n * Uses sequential setTimeout to prevent request pileup — the next poll\n * is only scheduled after the current one completes (or fails).\n *\n * @param poolIds - The array of pool identifiers to poll prices for.\n * @param callback - The callback invoked with updated ticker data on each poll.\n */\n startPricePolling(poolIds: string[], callback: PricePollingCallback): void {\n // Stop existing polling\n this.stopPricePolling();\n\n this.#pollingSymbols = poolIds;\n this.#pollingCallback = callback;\n\n // Fetch immediately, then schedule subsequent polls\n this.#pollPrices().catch(() => {\n // Error handling is done inside #pollPrices\n });\n\n this.#deps.debugLogger.log('[MYXClientService] Started price polling', {\n symbols: poolIds.length,\n intervalMs: MYX_PRICE_POLLING_INTERVAL_MS,\n });\n }\n\n /**\n * Stop price polling\n */\n stopPricePolling(): void {\n if (this.#pricePollingTimeout) {\n clearTimeout(this.#pricePollingTimeout);\n this.#pricePollingTimeout = undefined;\n }\n this.#pollingSymbols = [];\n this.#pollingCallback = undefined;\n\n this.#deps.debugLogger.log('[MYXClientService] Stopped price polling');\n }\n\n /**\n * Execute a single price poll, then schedule the next one.\n * Sequential pattern ensures no request pileup if polls take longer than the interval.\n */\n async #pollPrices(): Promise<void> {\n if (!this.#pollingCallback || this.#pollingSymbols.length === 0) {\n return;\n }\n\n try {\n const tickers = await this.getTickers(this.#pollingSymbols);\n // Re-check: polling may have been stopped during the await\n // (TS narrows after early return but can't track mutations across await)\n const callback = this.#pollingCallback;\n if (callback) {\n callback(tickers);\n }\n } catch (caughtError) {\n const wrappedError = ensureError(\n caughtError,\n 'MYXClientService.pollPrices',\n );\n this.#deps.debugLogger.log('[MYXClientService] Price poll failed', {\n error: wrappedError.message,\n });\n // Don't propagate error - polling continues\n } finally {\n this.#scheduleNextPoll();\n }\n }\n\n /**\n * Schedule the next poll after the configured interval\n */\n #scheduleNextPoll(): void {\n // Only schedule if polling is still active\n if (!this.#pollingCallback || this.#pollingSymbols.length === 0) {\n return;\n }\n\n this.#pricePollingTimeout = setTimeout(() => {\n this.#pollPrices().catch(() => {\n // Error handling is done inside #pollPrices\n });\n }, MYX_PRICE_POLLING_INTERVAL_MS);\n }\n\n // ============================================================================\n // Health Check\n // ============================================================================\n\n /**\n * Health check — attempts a lightweight REST call (getTickerList with empty poolIds)\n * to verify the MYX API is reachable.\n *\n * @param timeoutMs - The timeout in milliseconds for the ping request.\n */\n async ping(timeoutMs = 5000): Promise<void> {\n this.#deps.debugLogger.log(\n '[MYXClientService] Ping - checking REST health',\n );\n\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n const timeoutPromise = new Promise<never>((_resolve, reject) => {\n timeoutId = setTimeout(\n () => reject(new Error('MYX ping timeout')),\n timeoutMs,\n );\n });\n\n try {\n await Promise.race([\n this.#myxClient.markets.getTickerList({\n chainId: this.#chainId,\n poolIds: [],\n }),\n timeoutPromise,\n ]);\n } catch (caughtError) {\n const wrappedError = ensureError(caughtError, 'MYXClientService.ping');\n this.#deps.debugLogger.log('[MYXClientService] Ping failed', {\n error: wrappedError.message,\n });\n throw wrappedError;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n // ============================================================================\n // Lifecycle\n // ============================================================================\n\n /**\n * Disconnect and cleanup\n */\n disconnect(): void {\n this.stopPricePolling();\n this.#marketsCache = [];\n this.#marketsCacheTimestamp = 0;\n\n this.#deps.debugLogger.log('[MYXClientService] Disconnected');\n }\n\n /**\n * Get current network mode\n *\n * @returns True if the service is in testnet mode.\n */\n getIsTestnet(): boolean {\n return this.#isTestnet;\n }\n}\n"]}