@metamask-previews/perps-controller 0.0.0-preview-ae46ab603 → 0.0.0-preview-e4aa1532

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 (498) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/PerpsController.cjs +2224 -66
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts +933 -79
  5. package/dist/PerpsController.d.cts.map +1 -1
  6. package/dist/PerpsController.d.mts +933 -79
  7. package/dist/PerpsController.d.mts.map +1 -1
  8. package/dist/PerpsController.mjs +2221 -64
  9. package/dist/PerpsController.mjs.map +1 -1
  10. package/dist/__mocks__/hyperliquidMock.cjs +68 -0
  11. package/dist/__mocks__/hyperliquidMock.cjs.map +1 -0
  12. package/dist/__mocks__/hyperliquidMock.d.cts +15 -0
  13. package/dist/__mocks__/hyperliquidMock.d.cts.map +1 -0
  14. package/dist/__mocks__/hyperliquidMock.d.mts +15 -0
  15. package/dist/__mocks__/hyperliquidMock.d.mts.map +1 -0
  16. package/dist/__mocks__/hyperliquidMock.mjs +65 -0
  17. package/dist/__mocks__/hyperliquidMock.mjs.map +1 -0
  18. package/dist/__mocks__/providerMocks.cjs +144 -0
  19. package/dist/__mocks__/providerMocks.cjs.map +1 -0
  20. package/dist/__mocks__/providerMocks.d.cts +44 -0
  21. package/dist/__mocks__/providerMocks.d.cts.map +1 -0
  22. package/dist/__mocks__/providerMocks.d.mts +44 -0
  23. package/dist/__mocks__/providerMocks.d.mts.map +1 -0
  24. package/dist/__mocks__/providerMocks.mjs +136 -0
  25. package/dist/__mocks__/providerMocks.mjs.map +1 -0
  26. package/dist/__mocks__/serviceMocks.cjs +187 -0
  27. package/dist/__mocks__/serviceMocks.cjs.map +1 -0
  28. package/dist/__mocks__/serviceMocks.d.cts +58 -0
  29. package/dist/__mocks__/serviceMocks.d.cts.map +1 -0
  30. package/dist/__mocks__/serviceMocks.d.mts +58 -0
  31. package/dist/__mocks__/serviceMocks.d.mts.map +1 -0
  32. package/dist/__mocks__/serviceMocks.mjs +180 -0
  33. package/dist/__mocks__/serviceMocks.mjs.map +1 -0
  34. package/dist/aggregation/SubscriptionMultiplexer.cjs +459 -0
  35. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +1 -0
  36. package/dist/aggregation/SubscriptionMultiplexer.d.cts +222 -0
  37. package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +1 -0
  38. package/dist/aggregation/SubscriptionMultiplexer.d.mts +222 -0
  39. package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +1 -0
  40. package/dist/aggregation/SubscriptionMultiplexer.mjs +455 -0
  41. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +1 -0
  42. package/dist/aggregation/index.cjs +9 -0
  43. package/dist/aggregation/index.cjs.map +1 -0
  44. package/dist/aggregation/index.d.cts +6 -0
  45. package/dist/aggregation/index.d.cts.map +1 -0
  46. package/dist/aggregation/index.d.mts +6 -0
  47. package/dist/aggregation/index.d.mts.map +1 -0
  48. package/dist/aggregation/index.mjs +5 -0
  49. package/dist/aggregation/index.mjs.map +1 -0
  50. package/dist/constants/eventNames.cjs +117 -0
  51. package/dist/constants/eventNames.cjs.map +1 -0
  52. package/dist/constants/eventNames.d.cts +106 -0
  53. package/dist/constants/eventNames.d.cts.map +1 -0
  54. package/dist/constants/eventNames.d.mts +106 -0
  55. package/dist/constants/eventNames.d.mts.map +1 -0
  56. package/dist/constants/eventNames.mjs +114 -0
  57. package/dist/constants/eventNames.mjs.map +1 -0
  58. package/dist/constants/hyperLiquidConfig.cjs +366 -0
  59. package/dist/constants/hyperLiquidConfig.cjs.map +1 -0
  60. package/dist/constants/hyperLiquidConfig.d.cts +276 -0
  61. package/dist/constants/hyperLiquidConfig.d.cts.map +1 -0
  62. package/dist/constants/hyperLiquidConfig.d.mts +276 -0
  63. package/dist/constants/hyperLiquidConfig.d.mts.map +1 -0
  64. package/dist/constants/hyperLiquidConfig.mjs +357 -0
  65. package/dist/constants/hyperLiquidConfig.mjs.map +1 -0
  66. package/dist/constants/index.cjs +23 -0
  67. package/dist/constants/index.cjs.map +1 -0
  68. package/dist/constants/index.d.cts +7 -0
  69. package/dist/constants/index.d.cts.map +1 -0
  70. package/dist/constants/index.d.mts +7 -0
  71. package/dist/constants/index.d.mts.map +1 -0
  72. package/dist/constants/index.mjs +7 -0
  73. package/dist/constants/index.mjs.map +1 -0
  74. package/dist/constants/orderTypes.cjs +31 -0
  75. package/dist/constants/orderTypes.cjs.map +1 -0
  76. package/dist/constants/orderTypes.d.cts +19 -0
  77. package/dist/constants/orderTypes.d.cts.map +1 -0
  78. package/dist/constants/orderTypes.d.mts +19 -0
  79. package/dist/constants/orderTypes.d.mts.map +1 -0
  80. package/dist/constants/orderTypes.mjs +27 -0
  81. package/dist/constants/orderTypes.mjs.map +1 -0
  82. package/dist/constants/performanceMetrics.cjs +61 -0
  83. package/dist/constants/performanceMetrics.cjs.map +1 -0
  84. package/dist/constants/performanceMetrics.d.cts +44 -0
  85. package/dist/constants/performanceMetrics.d.cts.map +1 -0
  86. package/dist/constants/performanceMetrics.d.mts +44 -0
  87. package/dist/constants/performanceMetrics.d.mts.map +1 -0
  88. package/dist/constants/performanceMetrics.mjs +58 -0
  89. package/dist/constants/performanceMetrics.mjs.map +1 -0
  90. package/dist/constants/perpsConfig.cjs +461 -0
  91. package/dist/constants/perpsConfig.cjs.map +1 -0
  92. package/dist/constants/perpsConfig.d.cts +343 -0
  93. package/dist/constants/perpsConfig.d.cts.map +1 -0
  94. package/dist/constants/perpsConfig.d.mts +343 -0
  95. package/dist/constants/perpsConfig.d.mts.map +1 -0
  96. package/dist/constants/perpsConfig.mjs +458 -0
  97. package/dist/constants/perpsConfig.mjs.map +1 -0
  98. package/dist/constants/perpsErrorCodes.cjs +79 -0
  99. package/dist/constants/perpsErrorCodes.cjs.map +1 -0
  100. package/dist/constants/perpsErrorCodes.d.cts +64 -0
  101. package/dist/constants/perpsErrorCodes.d.cts.map +1 -0
  102. package/dist/constants/perpsErrorCodes.d.mts +64 -0
  103. package/dist/constants/perpsErrorCodes.d.mts.map +1 -0
  104. package/dist/constants/perpsErrorCodes.mjs +76 -0
  105. package/dist/constants/perpsErrorCodes.mjs.map +1 -0
  106. package/dist/index.cjs +32 -1
  107. package/dist/index.cjs.map +1 -1
  108. package/dist/index.d.cts +6 -2
  109. package/dist/index.d.cts.map +1 -1
  110. package/dist/index.d.mts +6 -2
  111. package/dist/index.d.mts.map +1 -1
  112. package/dist/index.mjs +9 -1
  113. package/dist/index.mjs.map +1 -1
  114. package/dist/platform-services/HyperLiquidClientService.cjs +857 -0
  115. package/dist/platform-services/HyperLiquidClientService.cjs.map +1 -0
  116. package/dist/platform-services/HyperLiquidClientService.d.cts +263 -0
  117. package/dist/platform-services/HyperLiquidClientService.d.cts.map +1 -0
  118. package/dist/platform-services/HyperLiquidClientService.d.mts +263 -0
  119. package/dist/platform-services/HyperLiquidClientService.d.mts.map +1 -0
  120. package/dist/platform-services/HyperLiquidClientService.mjs +853 -0
  121. package/dist/platform-services/HyperLiquidClientService.mjs.map +1 -0
  122. package/dist/platform-services/HyperLiquidSubscriptionService.cjs +2170 -0
  123. package/dist/platform-services/HyperLiquidSubscriptionService.cjs.map +1 -0
  124. package/dist/platform-services/HyperLiquidSubscriptionService.d.cts +424 -0
  125. package/dist/platform-services/HyperLiquidSubscriptionService.d.cts.map +1 -0
  126. package/dist/platform-services/HyperLiquidSubscriptionService.d.mts +424 -0
  127. package/dist/platform-services/HyperLiquidSubscriptionService.d.mts.map +1 -0
  128. package/dist/platform-services/HyperLiquidSubscriptionService.mjs +2166 -0
  129. package/dist/platform-services/HyperLiquidSubscriptionService.mjs.map +1 -0
  130. package/dist/platform-services/HyperLiquidWalletService.cjs +140 -0
  131. package/dist/platform-services/HyperLiquidWalletService.cjs.map +1 -0
  132. package/dist/platform-services/HyperLiquidWalletService.d.cts +78 -0
  133. package/dist/platform-services/HyperLiquidWalletService.d.cts.map +1 -0
  134. package/dist/platform-services/HyperLiquidWalletService.d.mts +78 -0
  135. package/dist/platform-services/HyperLiquidWalletService.d.mts.map +1 -0
  136. package/dist/platform-services/HyperLiquidWalletService.mjs +136 -0
  137. package/dist/platform-services/HyperLiquidWalletService.mjs.map +1 -0
  138. package/dist/providers/AggregatedPerpsProvider.cjs +777 -0
  139. package/dist/providers/AggregatedPerpsProvider.cjs.map +1 -0
  140. package/dist/providers/AggregatedPerpsProvider.d.cts +466 -0
  141. package/dist/providers/AggregatedPerpsProvider.d.cts.map +1 -0
  142. package/dist/providers/AggregatedPerpsProvider.d.mts +466 -0
  143. package/dist/providers/AggregatedPerpsProvider.d.mts.map +1 -0
  144. package/dist/providers/AggregatedPerpsProvider.mjs +773 -0
  145. package/dist/providers/AggregatedPerpsProvider.mjs.map +1 -0
  146. package/dist/providers/HyperLiquidProvider.cjs +5172 -0
  147. package/dist/providers/HyperLiquidProvider.cjs.map +1 -0
  148. package/dist/providers/HyperLiquidProvider.d.cts +881 -0
  149. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -0
  150. package/dist/providers/HyperLiquidProvider.d.mts +881 -0
  151. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -0
  152. package/dist/providers/HyperLiquidProvider.mjs +5168 -0
  153. package/dist/providers/HyperLiquidProvider.mjs.map +1 -0
  154. package/dist/providers/index.cjs +11 -0
  155. package/dist/providers/index.cjs.map +1 -0
  156. package/dist/providers/index.d.cts +6 -0
  157. package/dist/providers/index.d.cts.map +1 -0
  158. package/dist/providers/index.d.mts +6 -0
  159. package/dist/providers/index.d.mts.map +1 -0
  160. package/dist/providers/index.mjs +6 -0
  161. package/dist/providers/index.mjs.map +1 -0
  162. package/dist/routing/ProviderRouter.cjs +148 -0
  163. package/dist/routing/ProviderRouter.cjs.map +1 -0
  164. package/dist/routing/ProviderRouter.d.cts +124 -0
  165. package/dist/routing/ProviderRouter.d.cts.map +1 -0
  166. package/dist/routing/ProviderRouter.d.mts +124 -0
  167. package/dist/routing/ProviderRouter.d.mts.map +1 -0
  168. package/dist/routing/ProviderRouter.mjs +144 -0
  169. package/dist/routing/ProviderRouter.mjs.map +1 -0
  170. package/dist/routing/index.cjs +9 -0
  171. package/dist/routing/index.cjs.map +1 -0
  172. package/dist/routing/index.d.cts +6 -0
  173. package/dist/routing/index.d.cts.map +1 -0
  174. package/dist/routing/index.d.mts +6 -0
  175. package/dist/routing/index.d.mts.map +1 -0
  176. package/dist/routing/index.mjs +5 -0
  177. package/dist/routing/index.mjs.map +1 -0
  178. package/dist/selectors.cjs +161 -0
  179. package/dist/selectors.cjs.map +1 -0
  180. package/dist/selectors.d.cts +345 -0
  181. package/dist/selectors.d.cts.map +1 -0
  182. package/dist/selectors.d.mts +345 -0
  183. package/dist/selectors.d.mts.map +1 -0
  184. package/dist/selectors.mjs +153 -0
  185. package/dist/selectors.mjs.map +1 -0
  186. package/dist/services/AccountService.cjs +313 -0
  187. package/dist/services/AccountService.cjs.map +1 -0
  188. package/dist/services/AccountService.d.cts +53 -0
  189. package/dist/services/AccountService.d.cts.map +1 -0
  190. package/dist/services/AccountService.d.mts +53 -0
  191. package/dist/services/AccountService.d.mts.map +1 -0
  192. package/dist/services/AccountService.mjs +309 -0
  193. package/dist/services/AccountService.mjs.map +1 -0
  194. package/dist/services/DataLakeService.cjs +219 -0
  195. package/dist/services/DataLakeService.cjs.map +1 -0
  196. package/dist/services/DataLakeService.d.cts +49 -0
  197. package/dist/services/DataLakeService.d.cts.map +1 -0
  198. package/dist/services/DataLakeService.d.mts +49 -0
  199. package/dist/services/DataLakeService.d.mts.map +1 -0
  200. package/dist/services/DataLakeService.mjs +215 -0
  201. package/dist/services/DataLakeService.mjs.map +1 -0
  202. package/dist/services/DepositService.cjs +96 -0
  203. package/dist/services/DepositService.cjs.map +1 -0
  204. package/dist/services/DepositService.d.cts +37 -0
  205. package/dist/services/DepositService.d.cts.map +1 -0
  206. package/dist/services/DepositService.d.mts +37 -0
  207. package/dist/services/DepositService.d.mts.map +1 -0
  208. package/dist/services/DepositService.mjs +92 -0
  209. package/dist/services/DepositService.mjs.map +1 -0
  210. package/dist/services/EligibilityService.cjs +156 -0
  211. package/dist/services/EligibilityService.cjs.map +1 -0
  212. package/dist/services/EligibilityService.d.cts +48 -0
  213. package/dist/services/EligibilityService.d.cts.map +1 -0
  214. package/dist/services/EligibilityService.d.mts +48 -0
  215. package/dist/services/EligibilityService.d.mts.map +1 -0
  216. package/dist/services/EligibilityService.mjs +152 -0
  217. package/dist/services/EligibilityService.mjs.map +1 -0
  218. package/dist/services/FeatureFlagConfigurationService.cjs +258 -0
  219. package/dist/services/FeatureFlagConfigurationService.cjs.map +1 -0
  220. package/dist/services/FeatureFlagConfigurationService.d.cts +100 -0
  221. package/dist/services/FeatureFlagConfigurationService.d.cts.map +1 -0
  222. package/dist/services/FeatureFlagConfigurationService.d.mts +100 -0
  223. package/dist/services/FeatureFlagConfigurationService.d.mts.map +1 -0
  224. package/dist/services/FeatureFlagConfigurationService.mjs +254 -0
  225. package/dist/services/FeatureFlagConfigurationService.mjs.map +1 -0
  226. package/dist/services/MarketDataService.cjs +875 -0
  227. package/dist/services/MarketDataService.cjs.map +1 -0
  228. package/dist/services/MarketDataService.d.cts +289 -0
  229. package/dist/services/MarketDataService.d.cts.map +1 -0
  230. package/dist/services/MarketDataService.d.mts +289 -0
  231. package/dist/services/MarketDataService.d.mts.map +1 -0
  232. package/dist/services/MarketDataService.mjs +871 -0
  233. package/dist/services/MarketDataService.mjs.map +1 -0
  234. package/dist/services/RewardsIntegrationService.cjs +94 -0
  235. package/dist/services/RewardsIntegrationService.cjs.map +1 -0
  236. package/dist/services/RewardsIntegrationService.d.cts +30 -0
  237. package/dist/services/RewardsIntegrationService.d.cts.map +1 -0
  238. package/dist/services/RewardsIntegrationService.d.mts +30 -0
  239. package/dist/services/RewardsIntegrationService.d.mts.map +1 -0
  240. package/dist/services/RewardsIntegrationService.mjs +90 -0
  241. package/dist/services/RewardsIntegrationService.mjs.map +1 -0
  242. package/dist/services/ServiceContext.cjs +3 -0
  243. package/dist/services/ServiceContext.cjs.map +1 -0
  244. package/dist/services/ServiceContext.d.cts +110 -0
  245. package/dist/services/ServiceContext.d.cts.map +1 -0
  246. package/dist/services/ServiceContext.d.mts +110 -0
  247. package/dist/services/ServiceContext.d.mts.map +1 -0
  248. package/dist/services/ServiceContext.mjs +2 -0
  249. package/dist/services/ServiceContext.mjs.map +1 -0
  250. package/dist/services/TradingService.cjs +1481 -0
  251. package/dist/services/TradingService.cjs.map +1 -0
  252. package/dist/services/TradingService.d.cts +308 -0
  253. package/dist/services/TradingService.d.cts.map +1 -0
  254. package/dist/services/TradingService.d.mts +308 -0
  255. package/dist/services/TradingService.d.mts.map +1 -0
  256. package/dist/services/TradingService.mjs +1477 -0
  257. package/dist/services/TradingService.mjs.map +1 -0
  258. package/dist/services/index.cjs +26 -0
  259. package/dist/services/index.cjs.map +1 -0
  260. package/dist/services/index.d.cts +11 -0
  261. package/dist/services/index.d.cts.map +1 -0
  262. package/dist/services/index.d.mts +11 -0
  263. package/dist/services/index.d.mts.map +1 -0
  264. package/dist/services/index.mjs +10 -0
  265. package/dist/services/index.mjs.map +1 -0
  266. package/dist/services/utils.cjs +16 -0
  267. package/dist/services/utils.cjs.map +1 -0
  268. package/dist/services/utils.d.cts +8 -0
  269. package/dist/services/utils.d.cts.map +1 -0
  270. package/dist/services/utils.d.mts +8 -0
  271. package/dist/services/utils.d.mts.map +1 -0
  272. package/dist/services/utils.mjs +12 -0
  273. package/dist/services/utils.mjs.map +1 -0
  274. package/dist/types/chart.cjs +42 -0
  275. package/dist/types/chart.cjs.map +1 -0
  276. package/dist/types/chart.d.cts +62 -0
  277. package/dist/types/chart.d.cts.map +1 -0
  278. package/dist/types/chart.d.mts +62 -0
  279. package/dist/types/chart.d.mts.map +1 -0
  280. package/dist/types/chart.mjs +39 -0
  281. package/dist/types/chart.mjs.map +1 -0
  282. package/dist/types/hyperliquid-types.cjs +3 -0
  283. package/dist/types/hyperliquid-types.cjs.map +1 -0
  284. package/dist/types/hyperliquid-types.d.cts +52 -0
  285. package/dist/types/hyperliquid-types.d.cts.map +1 -0
  286. package/dist/types/hyperliquid-types.d.mts +52 -0
  287. package/dist/types/hyperliquid-types.d.mts.map +1 -0
  288. package/dist/types/hyperliquid-types.mjs +2 -0
  289. package/dist/types/hyperliquid-types.mjs.map +1 -0
  290. package/dist/types/index.cjs +96 -0
  291. package/dist/types/index.cjs.map +1 -0
  292. package/dist/types/index.d.cts +1153 -0
  293. package/dist/types/index.d.cts.map +1 -0
  294. package/dist/types/index.d.mts +1153 -0
  295. package/dist/types/index.d.mts.map +1 -0
  296. package/dist/types/index.mjs +79 -0
  297. package/dist/types/index.mjs.map +1 -0
  298. package/dist/types/transactionTypes.cjs +28 -0
  299. package/dist/types/transactionTypes.cjs.map +1 -0
  300. package/dist/types/transactionTypes.d.cts +64 -0
  301. package/dist/types/transactionTypes.d.cts.map +1 -0
  302. package/dist/types/transactionTypes.d.mts +64 -0
  303. package/dist/types/transactionTypes.d.mts.map +1 -0
  304. package/dist/types/transactionTypes.mjs +23 -0
  305. package/dist/types/transactionTypes.mjs.map +1 -0
  306. package/dist/utils/accountUtils.cjs +65 -0
  307. package/dist/utils/accountUtils.cjs.map +1 -0
  308. package/dist/utils/accountUtils.d.cts +26 -0
  309. package/dist/utils/accountUtils.d.cts.map +1 -0
  310. package/dist/utils/accountUtils.d.mts +26 -0
  311. package/dist/utils/accountUtils.d.mts.map +1 -0
  312. package/dist/utils/accountUtils.mjs +61 -0
  313. package/dist/utils/accountUtils.mjs.map +1 -0
  314. package/dist/utils/amountConversion.cjs +61 -0
  315. package/dist/utils/amountConversion.cjs.map +1 -0
  316. package/dist/utils/amountConversion.d.cts +16 -0
  317. package/dist/utils/amountConversion.d.cts.map +1 -0
  318. package/dist/utils/amountConversion.d.mts +16 -0
  319. package/dist/utils/amountConversion.d.mts.map +1 -0
  320. package/dist/utils/amountConversion.mjs +54 -0
  321. package/dist/utils/amountConversion.mjs.map +1 -0
  322. package/dist/utils/chartUtils.cjs +98 -0
  323. package/dist/utils/chartUtils.cjs.map +1 -0
  324. package/dist/utils/chartUtils.d.cts +14 -0
  325. package/dist/utils/chartUtils.d.cts.map +1 -0
  326. package/dist/utils/chartUtils.d.mts +14 -0
  327. package/dist/utils/chartUtils.d.mts.map +1 -0
  328. package/dist/utils/chartUtils.mjs +94 -0
  329. package/dist/utils/chartUtils.mjs.map +1 -0
  330. package/dist/utils/errorUtils.cjs +22 -0
  331. package/dist/utils/errorUtils.cjs.map +1 -0
  332. package/dist/utils/errorUtils.d.cts +13 -0
  333. package/dist/utils/errorUtils.d.cts.map +1 -0
  334. package/dist/utils/errorUtils.d.mts +13 -0
  335. package/dist/utils/errorUtils.d.mts.map +1 -0
  336. package/dist/utils/errorUtils.mjs +18 -0
  337. package/dist/utils/errorUtils.mjs.map +1 -0
  338. package/dist/utils/formatUtils.cjs +987 -0
  339. package/dist/utils/formatUtils.cjs.map +1 -0
  340. package/dist/utils/formatUtils.d.cts +387 -0
  341. package/dist/utils/formatUtils.d.cts.map +1 -0
  342. package/dist/utils/formatUtils.d.mts +387 -0
  343. package/dist/utils/formatUtils.d.mts.map +1 -0
  344. package/dist/utils/formatUtils.mjs +966 -0
  345. package/dist/utils/formatUtils.mjs.map +1 -0
  346. package/dist/utils/hyperLiquidAdapter.cjs +454 -0
  347. package/dist/utils/hyperLiquidAdapter.cjs.map +1 -0
  348. package/dist/utils/hyperLiquidAdapter.d.cts +158 -0
  349. package/dist/utils/hyperLiquidAdapter.d.cts.map +1 -0
  350. package/dist/utils/hyperLiquidAdapter.d.mts +158 -0
  351. package/dist/utils/hyperLiquidAdapter.d.mts.map +1 -0
  352. package/dist/utils/hyperLiquidAdapter.mjs +439 -0
  353. package/dist/utils/hyperLiquidAdapter.mjs.map +1 -0
  354. package/dist/utils/hyperLiquidOrderBookProcessor.cjs +89 -0
  355. package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +1 -0
  356. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +58 -0
  357. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +1 -0
  358. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +58 -0
  359. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +1 -0
  360. package/dist/utils/hyperLiquidOrderBookProcessor.mjs +84 -0
  361. package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +1 -0
  362. package/dist/utils/hyperLiquidValidation.cjs +426 -0
  363. package/dist/utils/hyperLiquidValidation.cjs.map +1 -0
  364. package/dist/utils/hyperLiquidValidation.d.cts +143 -0
  365. package/dist/utils/hyperLiquidValidation.d.cts.map +1 -0
  366. package/dist/utils/hyperLiquidValidation.d.mts +143 -0
  367. package/dist/utils/hyperLiquidValidation.d.mts.map +1 -0
  368. package/dist/utils/hyperLiquidValidation.mjs +413 -0
  369. package/dist/utils/hyperLiquidValidation.mjs.map +1 -0
  370. package/dist/utils/idUtils.cjs +50 -0
  371. package/dist/utils/idUtils.cjs.map +1 -0
  372. package/dist/utils/idUtils.d.cts +38 -0
  373. package/dist/utils/idUtils.d.cts.map +1 -0
  374. package/dist/utils/idUtils.d.mts +38 -0
  375. package/dist/utils/idUtils.d.mts.map +1 -0
  376. package/dist/utils/idUtils.mjs +42 -0
  377. package/dist/utils/idUtils.mjs.map +1 -0
  378. package/dist/utils/marginUtils.cjs +137 -0
  379. package/dist/utils/marginUtils.cjs.map +1 -0
  380. package/dist/utils/marginUtils.d.cts +64 -0
  381. package/dist/utils/marginUtils.d.cts.map +1 -0
  382. package/dist/utils/marginUtils.d.mts +64 -0
  383. package/dist/utils/marginUtils.d.mts.map +1 -0
  384. package/dist/utils/marginUtils.mjs +131 -0
  385. package/dist/utils/marginUtils.mjs.map +1 -0
  386. package/dist/utils/marketDataTransform.cjs +227 -0
  387. package/dist/utils/marketDataTransform.cjs.map +1 -0
  388. package/dist/utils/marketDataTransform.d.cts +45 -0
  389. package/dist/utils/marketDataTransform.d.cts.map +1 -0
  390. package/dist/utils/marketDataTransform.d.mts +45 -0
  391. package/dist/utils/marketDataTransform.d.mts.map +1 -0
  392. package/dist/utils/marketDataTransform.mjs +220 -0
  393. package/dist/utils/marketDataTransform.mjs.map +1 -0
  394. package/dist/utils/marketUtils.cjs +420 -0
  395. package/dist/utils/marketUtils.cjs.map +1 -0
  396. package/dist/utils/marketUtils.d.cts +227 -0
  397. package/dist/utils/marketUtils.d.cts.map +1 -0
  398. package/dist/utils/marketUtils.d.mts +227 -0
  399. package/dist/utils/marketUtils.d.mts.map +1 -0
  400. package/dist/utils/marketUtils.mjs +404 -0
  401. package/dist/utils/marketUtils.mjs.map +1 -0
  402. package/dist/utils/orderBookGrouping.cjs +151 -0
  403. package/dist/utils/orderBookGrouping.cjs.map +1 -0
  404. package/dist/utils/orderBookGrouping.d.cts +76 -0
  405. package/dist/utils/orderBookGrouping.d.cts.map +1 -0
  406. package/dist/utils/orderBookGrouping.d.mts +76 -0
  407. package/dist/utils/orderBookGrouping.d.mts.map +1 -0
  408. package/dist/utils/orderBookGrouping.mjs +143 -0
  409. package/dist/utils/orderBookGrouping.mjs.map +1 -0
  410. package/dist/utils/orderCalculations.cjs +283 -0
  411. package/dist/utils/orderCalculations.cjs.map +1 -0
  412. package/dist/utils/orderCalculations.d.cts +107 -0
  413. package/dist/utils/orderCalculations.d.cts.map +1 -0
  414. package/dist/utils/orderCalculations.d.mts +107 -0
  415. package/dist/utils/orderCalculations.d.mts.map +1 -0
  416. package/dist/utils/orderCalculations.mjs +274 -0
  417. package/dist/utils/orderCalculations.mjs.map +1 -0
  418. package/dist/utils/orderUtils.cjs +159 -0
  419. package/dist/utils/orderUtils.cjs.map +1 -0
  420. package/dist/utils/orderUtils.d.cts +66 -0
  421. package/dist/utils/orderUtils.d.cts.map +1 -0
  422. package/dist/utils/orderUtils.d.mts +66 -0
  423. package/dist/utils/orderUtils.d.mts.map +1 -0
  424. package/dist/utils/orderUtils.mjs +151 -0
  425. package/dist/utils/orderUtils.mjs.map +1 -0
  426. package/dist/utils/pnlCalculations.cjs +107 -0
  427. package/dist/utils/pnlCalculations.cjs.map +1 -0
  428. package/dist/utils/pnlCalculations.d.cts +79 -0
  429. package/dist/utils/pnlCalculations.d.cts.map +1 -0
  430. package/dist/utils/pnlCalculations.d.mts +79 -0
  431. package/dist/utils/pnlCalculations.d.mts.map +1 -0
  432. package/dist/utils/pnlCalculations.mjs +97 -0
  433. package/dist/utils/pnlCalculations.mjs.map +1 -0
  434. package/dist/utils/positionCalculations.cjs +176 -0
  435. package/dist/utils/positionCalculations.cjs.map +1 -0
  436. package/dist/utils/positionCalculations.d.cts +85 -0
  437. package/dist/utils/positionCalculations.d.cts.map +1 -0
  438. package/dist/utils/positionCalculations.d.mts +85 -0
  439. package/dist/utils/positionCalculations.d.mts.map +1 -0
  440. package/dist/utils/positionCalculations.mjs +165 -0
  441. package/dist/utils/positionCalculations.mjs.map +1 -0
  442. package/dist/utils/sortMarkets.cjs +88 -0
  443. package/dist/utils/sortMarkets.cjs.map +1 -0
  444. package/dist/utils/sortMarkets.d.cts +21 -0
  445. package/dist/utils/sortMarkets.d.cts.map +1 -0
  446. package/dist/utils/sortMarkets.d.mts +21 -0
  447. package/dist/utils/sortMarkets.d.mts.map +1 -0
  448. package/dist/utils/sortMarkets.mjs +84 -0
  449. package/dist/utils/sortMarkets.mjs.map +1 -0
  450. package/dist/utils/standaloneInfoClient.cjs +34 -0
  451. package/dist/utils/standaloneInfoClient.cjs.map +1 -0
  452. package/dist/utils/standaloneInfoClient.d.cts +31 -0
  453. package/dist/utils/standaloneInfoClient.d.cts.map +1 -0
  454. package/dist/utils/standaloneInfoClient.d.mts +31 -0
  455. package/dist/utils/standaloneInfoClient.d.mts.map +1 -0
  456. package/dist/utils/standaloneInfoClient.mjs +30 -0
  457. package/dist/utils/standaloneInfoClient.mjs.map +1 -0
  458. package/dist/utils/stringParseUtils.cjs +49 -0
  459. package/dist/utils/stringParseUtils.cjs.map +1 -0
  460. package/dist/utils/stringParseUtils.d.cts +35 -0
  461. package/dist/utils/stringParseUtils.d.cts.map +1 -0
  462. package/dist/utils/stringParseUtils.d.mts +35 -0
  463. package/dist/utils/stringParseUtils.d.mts.map +1 -0
  464. package/dist/utils/stringParseUtils.mjs +44 -0
  465. package/dist/utils/stringParseUtils.mjs.map +1 -0
  466. package/dist/utils/time.cjs +37 -0
  467. package/dist/utils/time.cjs.map +1 -0
  468. package/dist/utils/time.d.cts +17 -0
  469. package/dist/utils/time.d.cts.map +1 -0
  470. package/dist/utils/time.d.mts +17 -0
  471. package/dist/utils/time.d.mts.map +1 -0
  472. package/dist/utils/time.mjs +33 -0
  473. package/dist/utils/time.mjs.map +1 -0
  474. package/dist/utils/tpslValidation.cjs +505 -0
  475. package/dist/utils/tpslValidation.cjs.map +1 -0
  476. package/dist/utils/tpslValidation.d.cts +182 -0
  477. package/dist/utils/tpslValidation.d.cts.map +1 -0
  478. package/dist/utils/tpslValidation.d.mts +182 -0
  479. package/dist/utils/tpslValidation.d.mts.map +1 -0
  480. package/dist/utils/tpslValidation.mjs +482 -0
  481. package/dist/utils/tpslValidation.mjs.map +1 -0
  482. package/dist/utils/transactionUtils.cjs +36 -0
  483. package/dist/utils/transactionUtils.cjs.map +1 -0
  484. package/dist/utils/transactionUtils.d.cts +17 -0
  485. package/dist/utils/transactionUtils.d.cts.map +1 -0
  486. package/dist/utils/transactionUtils.d.mts +17 -0
  487. package/dist/utils/transactionUtils.d.mts.map +1 -0
  488. package/dist/utils/transactionUtils.mjs +32 -0
  489. package/dist/utils/transactionUtils.mjs.map +1 -0
  490. package/dist/utils/wait.cjs +12 -0
  491. package/dist/utils/wait.cjs.map +1 -0
  492. package/dist/utils/wait.d.cts +8 -0
  493. package/dist/utils/wait.d.cts.map +1 -0
  494. package/dist/utils/wait.d.mts +8 -0
  495. package/dist/utils/wait.d.mts.map +1 -0
  496. package/dist/utils/wait.mjs +8 -0
  497. package/dist/utils/wait.mjs.map +1 -0
  498. package/package.json +19 -4
@@ -0,0 +1,424 @@
1
+ import type { AssetCtxsWsEvent } from "@nktkas/hyperliquid";
2
+ import type { HyperLiquidClientService } from "./HyperLiquidClientService.mjs";
3
+ import type { HyperLiquidWalletService } from "./HyperLiquidWalletService.mjs";
4
+ import type { Position, Order, SubscribePricesParams, SubscribePositionsParams, SubscribeOrderFillsParams, SubscribeOrdersParams, SubscribeAccountParams, SubscribeOICapsParams, SubscribeOrderBookParams, PerpsPlatformDependencies } from "../types/index.mjs";
5
+ /**
6
+ * Service for managing HyperLiquid WebSocket subscriptions
7
+ * Implements singleton subscription architecture with reference counting
8
+ */
9
+ export declare class HyperLiquidSubscriptionService {
10
+ private readonly clientService;
11
+ private readonly walletService;
12
+ private hip3Enabled;
13
+ private enabledDexs;
14
+ private allowlistMarkets;
15
+ private blocklistMarkets;
16
+ private discoveredDexNames;
17
+ private dexDiscoveryPromise;
18
+ private dexDiscoveryResolver;
19
+ private expectedDexs;
20
+ private initializedDexs;
21
+ private readonly priceSubscribers;
22
+ private readonly positionSubscribers;
23
+ private readonly orderFillSubscribers;
24
+ private readonly orderSubscribers;
25
+ private readonly accountSubscribers;
26
+ private readonly marketDataSubscribers;
27
+ private readonly orderBookSubscribers;
28
+ private globalAllMidsSubscription?;
29
+ private globalAllMidsPromise?;
30
+ private readonly globalActiveAssetSubscriptions;
31
+ private readonly globalBboSubscriptions;
32
+ private readonly orderFillSubscriptions;
33
+ private readonly symbolSubscriberCounts;
34
+ private readonly dexSubscriberCounts;
35
+ private readonly webData3Subscriptions;
36
+ private webData3SubscriptionPromise?;
37
+ private positionSubscriberCount;
38
+ private orderSubscriberCount;
39
+ private accountSubscriberCount;
40
+ private oiCapSubscriberCount;
41
+ private readonly dexPositionsCache;
42
+ private readonly dexOrdersCache;
43
+ private readonly dexAccountCache;
44
+ private cachedPositions;
45
+ private cachedOrders;
46
+ private cachedAccount;
47
+ private ordersCacheInitialized;
48
+ private positionsCacheInitialized;
49
+ private readonly oiCapSubscribers;
50
+ private cachedOICaps;
51
+ private cachedOICapsHash;
52
+ private oiCapsCacheInitialized;
53
+ private cachedPriceData;
54
+ private readonly assetCtxsSubscriptions;
55
+ private readonly dexAssetCtxsCache;
56
+ private readonly assetCtxsSubscriptionPromises;
57
+ private readonly clearinghouseStateSubscriptions;
58
+ private readonly openOrdersSubscriptions;
59
+ private readonly dexMetaCache;
60
+ private readonly orderBookCache;
61
+ private readonly marketDataCache;
62
+ private readonly deps;
63
+ private cachedPositionsHash;
64
+ private cachedOrdersHash;
65
+ private cachedAccountHash;
66
+ constructor(clientService: HyperLiquidClientService, walletService: HyperLiquidWalletService, platformDependencies: PerpsPlatformDependencies, hip3Enabled?: boolean, enabledDexs?: string[], allowlistMarkets?: string[], blocklistMarkets?: string[]);
67
+ /**
68
+ * Get error context for logging with searchable tags and context.
69
+ * Enables Sentry dashboard filtering by feature, provider, and network.
70
+ *
71
+ * @param method - The method name where the error occurred
72
+ * @param extra - Optional additional context fields (merged into searchable context.data)
73
+ * @returns Error options with tags (searchable) and context (searchable)
74
+ */
75
+ private getErrorContext;
76
+ /**
77
+ * Check if a DEX is enabled in our configuration
78
+ * Used to filter webData3 callback data to only process DEXs we care about
79
+ *
80
+ * @param dex - DEX name (null for main DEX, string for HIP-3)
81
+ * @returns true if this DEX should be processed
82
+ */
83
+ private isDexEnabled;
84
+ /**
85
+ * Populate DEX meta cache with pre-fetched meta data
86
+ * Called by Provider after buildAssetMapping to share cached meta,
87
+ * avoiding redundant metaAndAssetCtxs/meta API calls during subscription setup
88
+ *
89
+ * @param dex - DEX key ('' for main DEX, 'xyz'/'flx'/etc for HIP-3)
90
+ * @param meta - Meta response containing universe data
91
+ * @param meta.universe
92
+ */
93
+ setDexMetaCache(dex: string, meta: {
94
+ universe: {
95
+ name: string;
96
+ szDecimals: number;
97
+ maxLeverage: number;
98
+ }[];
99
+ }): void;
100
+ /**
101
+ * Cache asset contexts for a specific DEX from API response
102
+ * This allows buildAssetMapping() to populate cache for getMarketDataWithPrices() to use
103
+ *
104
+ * @param dex - DEX name ('' for main perps)
105
+ * @param assetCtxs - Asset contexts from metaAndAssetCtxs response
106
+ */
107
+ setDexAssetCtxsCache(dex: string, assetCtxs: AssetCtxsWsEvent['ctxs']): void;
108
+ /**
109
+ * Get cached assetCtxs for a DEX
110
+ * Returns the cached asset contexts from WebSocket subscription if available
111
+ *
112
+ * @param dex - DEX key ('' for main DEX, 'xyz'/'flx'/etc for HIP-3)
113
+ * @returns Array of asset contexts or undefined if not cached
114
+ */
115
+ getDexAssetCtxsCache(dex: string): AssetCtxsWsEvent['ctxs'] | undefined;
116
+ /**
117
+ * Wait for DEX discovery to complete (with timeout)
118
+ * Used when HIP-3 is enabled but enabledDexs hasn't been populated yet.
119
+ * This allows subscriptions to wait for DEX discovery before creating per-DEX subscriptions.
120
+ *
121
+ * @param timeoutMs - Timeout in milliseconds (default: 5000)
122
+ */
123
+ private waitForDexDiscovery;
124
+ /**
125
+ * Update feature flags for HIP-3 support
126
+ * Called when provider configuration changes at runtime
127
+ * Note: Market filtering is NOT applied in subscription service - only in Provider
128
+ *
129
+ * @param hip3Enabled - Whether HIP-3 is enabled
130
+ * @param enabledDexs - List of enabled DEX identifiers
131
+ * @param allowlistMarkets - List of allowed markets
132
+ * @param blocklistMarkets - List of blocked markets
133
+ */
134
+ updateFeatureFlags(hip3Enabled: boolean, enabledDexs: string[], allowlistMarkets: string[], blocklistMarkets: string[]): Promise<void>;
135
+ /**
136
+ * Fast hash function for change detection
137
+ * Uses string concatenation of key fields instead of JSON.stringify()
138
+ * Performance: ~100x faster than JSON.stringify() for typical objects
139
+ * Tracks structural changes (coin, size, entryPrice, leverage, TP/SL prices/counts)
140
+ * and value changes (unrealizedPnl, returnOnEquity) for live P&L updates
141
+ *
142
+ * @param positions - Positions to hash
143
+ * @returns Hash string
144
+ */
145
+ private hashPositions;
146
+ /**
147
+ * Fast hash function for orders
148
+ *
149
+ * @param orders - Orders to hash
150
+ * @returns Hash string
151
+ */
152
+ private hashOrders;
153
+ /**
154
+ * Fast hash function for account state
155
+ *
156
+ * @param account - Account state to hash
157
+ * @returns Hash string
158
+ */
159
+ private hashAccountState;
160
+ /**
161
+ * Extract TP/SL from orders and optionally convert raw SDK orders to Order format.
162
+ * DRY helper used by both webData2 and clearinghouseState callbacks.
163
+ *
164
+ * @param orders - Raw SDK orders from WebSocket event
165
+ * @param positions - Current positions for TP/SL matching
166
+ * @param cachedProcessedOrders - Optional pre-processed orders (skips conversion if provided)
167
+ * @returns Maps for TP/SL prices and counts, plus processed Order array
168
+ */
169
+ private extractTPSLFromOrders;
170
+ /**
171
+ * Merge TP/SL data into positions
172
+ * DRY helper used by both webData2 and clearinghouseState callbacks
173
+ *
174
+ * @param positions - Base positions without TP/SL
175
+ * @param tpslMap - Map of coin -> TP/SL prices
176
+ * @param tpslCountMap - Map of coin -> TP/SL counts
177
+ * @returns Positions enhanced with TP/SL data
178
+ */
179
+ private mergeTPSLIntoPositions;
180
+ /**
181
+ * Aggregate account states from all cached DEXs
182
+ * Sums balances and creates per-DEX breakdown for multi-DEX portfolio view
183
+ *
184
+ * @returns Aggregated account state with dexBreakdown field
185
+ */
186
+ private aggregateAccountStates;
187
+ /**
188
+ * Subscribe to live price updates with singleton subscription architecture
189
+ * Uses allMids for fast price updates and predictedFundings for accurate funding rates
190
+ *
191
+ * @param params - Subscription parameters
192
+ * @returns Cleanup function
193
+ */
194
+ subscribeToPrices(params: SubscribePricesParams): Promise<() => void>;
195
+ /**
196
+ * Ensure shared webData3 subscription is active (singleton pattern with multi-DEX support)
197
+ * webData3 provides data for all DEXs (main + HIP-3) in a single subscription
198
+ *
199
+ * @param accountId - Optional account ID
200
+ */
201
+ private ensureSharedWebData3Subscription;
202
+ /**
203
+ * Create WebSocket subscription for user data (positions, orders, account)
204
+ * - Uses webData2 when HIP-3 disabled (main DEX only)
205
+ * - Uses webData3 when HIP-3 enabled (main + HIP-3 DEXs)
206
+ *
207
+ * webData2 provides data for main DEX only
208
+ * webData3 provides perpDexStates[] array containing data for all DEXs:
209
+ * - Index 0: Main DEX (dexName = '')
210
+ * - Index 1+: HIP-3 DEXs in order of enabledDexs array
211
+ *
212
+ * @param accountId - Optional account ID
213
+ */
214
+ private createUserDataSubscription;
215
+ /**
216
+ * Ensure clearinghouseState subscription exists for a DEX
217
+ *
218
+ * @param userAddress - User address
219
+ * @param dexName - DEX name ('' for main)
220
+ */
221
+ private ensureClearinghouseStateSubscription;
222
+ /**
223
+ * Ensure openOrders subscription exists for a DEX
224
+ *
225
+ * @param userAddress - User address
226
+ * @param dexName - DEX name ('' for main)
227
+ */
228
+ private ensureOpenOrdersSubscription;
229
+ /**
230
+ * Aggregate data from all DEX caches and notify subscribers if data changed
231
+ * Used by both webData3 callback and fallback subscription callbacks
232
+ */
233
+ private aggregateAndNotifySubscribers;
234
+ /**
235
+ * Clean up webData3 subscription when no longer needed
236
+ */
237
+ private cleanupSharedWebData3ISubscription;
238
+ /**
239
+ * Subscribe to live position updates with TP/SL data
240
+ *
241
+ * @param params - Subscription parameters
242
+ * @returns Cleanup function
243
+ */
244
+ subscribeToPositions(params: SubscribePositionsParams): () => void;
245
+ /**
246
+ * Subscribe to open interest cap updates
247
+ * OI caps are extracted from webData2 subscription (zero additional overhead)
248
+ *
249
+ * @param params - Subscription parameters
250
+ * @returns Cleanup function
251
+ */
252
+ subscribeToOICaps(params: SubscribeOICapsParams): () => void;
253
+ /**
254
+ * Check if OI caps cache has been initialized
255
+ * Useful for preventing UI flashing before first data arrives
256
+ *
257
+ * @returns True if cache is initialized
258
+ */
259
+ isOICapsCacheInitialized(): boolean;
260
+ /**
261
+ * Subscribe to live order fill updates
262
+ * Shares subscriptions per accountId to avoid duplicate WebSocket connections
263
+ *
264
+ * @param params - Subscription parameters
265
+ * @returns Cleanup function
266
+ */
267
+ subscribeToOrderFills(params: SubscribeOrderFillsParams): () => void;
268
+ /**
269
+ * Ensure order fill subscription is active for the given accountId
270
+ * Shares subscription across all callbacks for the same accountId
271
+ *
272
+ * @param accountId - Optional account ID
273
+ */
274
+ private ensureOrderFillISubscription;
275
+ /**
276
+ * Subscribe to live order updates
277
+ * Uses the shared webData2 subscription to avoid duplicate connections
278
+ *
279
+ * @param params - Subscription parameters
280
+ * @returns Cleanup function
281
+ */
282
+ subscribeToOrders(params: SubscribeOrdersParams): () => void;
283
+ /**
284
+ * Subscribe to live account updates
285
+ * Uses the shared webData2 subscription to avoid duplicate connections
286
+ *
287
+ * @param params - Subscription parameters
288
+ * @returns Cleanup function
289
+ */
290
+ subscribeToAccount(params: SubscribeAccountParams): () => void;
291
+ /**
292
+ * Check if orders cache has been initialized from WebSocket
293
+ *
294
+ * @returns true if WebSocket has sent at least one update, false otherwise
295
+ */
296
+ isOrdersCacheInitialized(): boolean;
297
+ /**
298
+ * Check if positions cache has been initialized from WebSocket
299
+ *
300
+ * @returns true if WebSocket has sent at least one update, false otherwise
301
+ */
302
+ isPositionsCacheInitialized(): boolean;
303
+ /**
304
+ * Get cached positions from WebSocket subscription
305
+ *
306
+ * @returns Cached positions array, or null if not initialized
307
+ */
308
+ getCachedPositions(): Position[] | null;
309
+ /**
310
+ * Get cached orders from WebSocket subscription
311
+ *
312
+ * @returns Cached orders array, or null if not initialized
313
+ */
314
+ getCachedOrders(): Order[] | null;
315
+ /**
316
+ * Create subscription with common error handling
317
+ *
318
+ * @param subscribers - Subscriber collection
319
+ * @param callback - Callback to add
320
+ * @param key - Optional key for Map-based collections
321
+ * @returns Unsubscribe function
322
+ */
323
+ private createSubscription;
324
+ /**
325
+ * Helper function to create consolidated price updates with 24h change calculation
326
+ *
327
+ * @param symbol - Asset symbol
328
+ * @param price - Current price
329
+ * @returns Price update object
330
+ */
331
+ private createPriceUpdate;
332
+ /**
333
+ * Ensure global allMids subscription is active (singleton pattern)
334
+ */
335
+ private ensureGlobalAllMidsSubscription;
336
+ /**
337
+ * Ensure activeAssetCtx subscription for specific symbol (with reference counting)
338
+ *
339
+ * @param symbol - Asset symbol
340
+ */
341
+ private ensureActiveAssetSubscription;
342
+ /**
343
+ * Cleanup activeAssetCtx subscription when no longer needed
344
+ *
345
+ * @param symbol - Asset symbol
346
+ */
347
+ private cleanupActiveAssetSubscription;
348
+ /**
349
+ * Ensure assetCtxs subscription for specific DEX (HIP-3 support)
350
+ * Uses WebSocket instead of REST polling for market data
351
+ * Implements reference counting to track active subscribers per DEX
352
+ *
353
+ * @param dex - DEX identifier ('' for main)
354
+ */
355
+ private ensureAssetCtxsSubscription;
356
+ /**
357
+ * Create assetCtxs subscription for specific DEX
358
+ * Provides real-time market data for all assets on the DEX
359
+ *
360
+ * Performance: Uses cached meta from dexMetaCache (populated by metaAndAssetCtxs)
361
+ * to avoid redundant meta() API calls during subscription setup
362
+ *
363
+ * @param dex - DEX identifier ('' for main)
364
+ */
365
+ private createAssetCtxsSubscription;
366
+ /**
367
+ * Cleanup assetCtxs subscription for specific DEX with reference counting
368
+ * Only unsubscribes when the last subscriber for this DEX is removed
369
+ *
370
+ * @param dex - DEX identifier ('' for main)
371
+ */
372
+ private cleanupAssetCtxsSubscription;
373
+ /**
374
+ * Ensure BBO subscription for specific symbol (singleton)
375
+ *
376
+ * BBO provides best bid/ask without being affected by L2Book aggregation parameters,
377
+ * keeping spread consistent across order book grouping selections (matches Hyperliquid UI).
378
+ *
379
+ * @param symbol - Asset symbol
380
+ */
381
+ private ensureBboSubscription;
382
+ /**
383
+ * Cleanup BBO subscription when no longer needed
384
+ *
385
+ * @param symbol - Asset symbol
386
+ */
387
+ private cleanupBboSubscription;
388
+ /**
389
+ * Subscribe to full order book updates with multiple depth levels
390
+ * Creates a dedicated L2Book subscription for the requested symbol
391
+ * and processes data into OrderBookData format for UI consumption
392
+ *
393
+ * @param params - Subscription parameters
394
+ * @returns Cleanup function to unsubscribe
395
+ */
396
+ subscribeToOrderBook(params: SubscribeOrderBookParams): () => void;
397
+ /**
398
+ * Process raw L2Book data into OrderBookData format
399
+ * Calculates cumulative totals, notional values, and spread metrics
400
+ *
401
+ * @param data - Raw L2Book response from WebSocket
402
+ * @param levels - Number of levels to return per side
403
+ * @returns Processed OrderBookData
404
+ */
405
+ private processOrderBookData;
406
+ /**
407
+ * Notify all price subscribers with their requested symbols from cache
408
+ * Optimized to batch updates per subscriber
409
+ */
410
+ private notifyAllPriceSubscribers;
411
+ /**
412
+ * Restore all active subscriptions after WebSocket reconnection
413
+ * Re-establishes WebSocket subscriptions for all active subscribers
414
+ *
415
+ * IMPORTANT: This method verifies transport readiness before attempting
416
+ * any subscriptions to prevent "subscribe error: undefined" errors.
417
+ */
418
+ restoreSubscriptions(): Promise<void>;
419
+ /**
420
+ * Clear all subscriptions and cached data (multi-DEX support)
421
+ */
422
+ clearAll(): void;
423
+ }
424
+ //# sourceMappingURL=HyperLiquidSubscriptionService.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperLiquidSubscriptionService.d.mts","sourceRoot":"","sources":["../../src/platform-services/HyperLiquidSubscriptionService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAUV,gBAAgB,EAIjB,4BAA4B;AAE7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,uCAAmC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,uCAAmC;AAE3E,OAAO,KAAK,EAEV,QAAQ,EAER,KAAK,EAEL,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EAGxB,yBAAyB,EAC1B,2BAAiB;AAyBlB;;;GAGG;AACH,qBAAa,8BAA8B;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IAEzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IAGzD,OAAO,CAAC,WAAW,CAAU;IAE7B,OAAO,CAAC,WAAW,CAAW;IAE9B,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO,CAAC,kBAAkB,CAAgB;IAG1C,OAAO,CAAC,mBAAmB,CAA8B;IAEzD,OAAO,CAAC,oBAAoB,CAA6B;IAIzD,OAAO,CAAC,YAAY,CAA0B;IAE9C,OAAO,CAAC,eAAe,CAA0B;IAGjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAG7B;IAEJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEhC;IAGJ,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGjC;IAEJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwC;IAEzE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAE/B;IAGJ,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;IAGJ,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGjC;IAGJ,OAAO,CAAC,yBAAyB,CAAC,CAAgB;IAElD,OAAO,CAAC,oBAAoB,CAAC,CAAgB;IAE7C,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAG3C;IAEJ,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoC;IAG3E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoC;IAE3E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAGjE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAoC;IAE1E,OAAO,CAAC,2BAA2B,CAAC,CAAgB;IAEpD,OAAO,CAAC,uBAAuB,CAAK;IAEpC,OAAO,CAAC,oBAAoB,CAAK;IAEjC,OAAO,CAAC,sBAAsB,CAAK;IAEnC,OAAO,CAAC,oBAAoB,CAAK;IAGjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;IAEnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAE7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IAEnE,OAAO,CAAC,eAAe,CAA2B;IAElD,OAAO,CAAC,YAAY,CAAwB;IAE5C,OAAO,CAAC,aAAa,CAA6B;IAElD,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,yBAAyB,CAAS;IAG1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IAExE,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,gBAAgB,CAAM;IAE9B,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,eAAe,CAAyC;IAGhE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoC;IAE3E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAG9B;IAEJ,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAG1C;IAEJ,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAG5C;IAEJ,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAoC;IAI5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CASzB;IAGJ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAQ3B;IAGJ,OAAO,CAAC,QAAQ,CAAC,eAAe,CAU5B;IAGJ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IAGjD,OAAO,CAAC,mBAAmB,CAAM;IAEjC,OAAO,CAAC,gBAAgB,CAAM;IAE9B,OAAO,CAAC,iBAAiB,CAAM;gBAG7B,aAAa,EAAE,wBAAwB,EACvC,aAAa,EAAE,wBAAwB,EACvC,oBAAoB,EAAE,yBAAyB,EAC/C,WAAW,CAAC,EAAE,OAAO,EACrB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE;IAY7B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAUpB;;;;;;;;OAQG;IACI,eAAe,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC;KACL,GACA,IAAI;IAWP;;;;;;OAMG;IACI,oBAAoB,CACzB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAClC,IAAI;IAWP;;;;;;OAMG;IACI,oBAAoB,CACzB,GAAG,EAAE,MAAM,GACV,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS;IAIvC;;;;;;OAMG;YACW,mBAAmB;IAmCjC;;;;;;;;;OASG;IACU,kBAAkB,CAC7B,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,MAAM,EAAE,EACrB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;IA6GhB;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAgBrB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IA2L7B;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAuD9B;;;;;;OAMG;IACU,iBAAiB,CAC5B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,IAAI,CAAC;IAyHtB;;;;;OAKG;YACW,gCAAgC;IAsB9C;;;;;;;;;;;OAWG;YACW,0BAA0B;IAqSxC;;;;;OAKG;YACW,oCAAoC;IA0FlD;;;;;OAKG;YACW,4BAA4B;IA8E1C;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAqErC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAiG1C;;;;;OAKG;IACI,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,IAAI;IA8BzE;;;;;;OAMG;IACI,iBAAiB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAgCnE;;;;;OAKG;IACI,wBAAwB,IAAI,OAAO;IAI1C;;;;;;OAMG;IACI,qBAAqB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,IAAI;IAuC3E;;;;;OAKG;YACW,4BAA4B;IAgE1C;;;;;;OAMG;IACI,iBAAiB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,IAAI;IA8BnE;;;;;;OAMG;IACI,kBAAkB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,IAAI;IA8BrE;;;;OAIG;IACI,wBAAwB,IAAI,OAAO;IAI1C;;;;OAIG;IACI,2BAA2B,IAAI,OAAO;IAI7C;;;;OAIG;IACI,kBAAkB,IAAI,QAAQ,EAAE,GAAG,IAAI;IAI9C;;;;OAIG;IACI,eAAe,IAAI,KAAK,EAAE,GAAG,IAAI;IAIxC;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA0CzB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAyFvC;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IAgGrC;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAyBtC;;;;;;OAMG;YACW,2BAA2B;IAgCzC;;;;;;;;OAQG;YACW,2BAA2B;IAwHzC;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAmCpC;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,IAAI;IA4EzE;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAsE5B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAqCjC;;;;;;OAMG;IACU,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8IlD;;OAEG;IACI,QAAQ,IAAI,IAAI;CAsGxB"}