@metamask-previews/perps-controller 13.1.0-preview-8c2a2eeb2 → 13.1.0-preview-4f4c98e

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 (716) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/dist/{PerpsController-method-action-types.d.mts → PerpsController-method-action-types.d.ts} +2 -2
  3. package/dist/PerpsController-method-action-types.d.ts.map +1 -0
  4. package/dist/{PerpsController-method-action-types.mjs → PerpsController-method-action-types.js} +1 -1
  5. package/dist/PerpsController-method-action-types.js.map +1 -0
  6. package/dist/{PerpsController.d.mts → PerpsController.d.ts} +17 -17
  7. package/dist/PerpsController.d.ts.map +1 -0
  8. package/dist/{PerpsController.mjs → PerpsController.js} +33 -31
  9. package/dist/PerpsController.js.map +1 -0
  10. package/dist/aggregation/{SubscriptionMultiplexer.d.cts → SubscriptionMultiplexer.d.ts} +2 -2
  11. package/dist/aggregation/SubscriptionMultiplexer.d.ts.map +1 -0
  12. package/dist/aggregation/{SubscriptionMultiplexer.mjs → SubscriptionMultiplexer.js} +3 -3
  13. package/dist/aggregation/SubscriptionMultiplexer.js.map +1 -0
  14. package/dist/aggregation/index.d.ts +6 -0
  15. package/dist/aggregation/index.d.ts.map +1 -0
  16. package/dist/aggregation/index.js +5 -0
  17. package/dist/aggregation/index.js.map +1 -0
  18. package/dist/constants/{chartConfig.d.mts → chartConfig.d.ts} +34 -34
  19. package/dist/constants/chartConfig.d.ts.map +1 -0
  20. package/dist/constants/{chartConfig.mjs → chartConfig.js} +1 -1
  21. package/dist/constants/chartConfig.js.map +1 -0
  22. package/dist/constants/eventNames.d.ts +555 -0
  23. package/dist/constants/eventNames.d.ts.map +1 -0
  24. package/dist/constants/{eventNames.mjs → eventNames.js} +1 -1
  25. package/dist/constants/eventNames.js.map +1 -0
  26. package/dist/constants/{hyperLiquidConfig.d.cts → hyperLiquidConfig.d.ts} +12 -12
  27. package/dist/constants/hyperLiquidConfig.d.ts.map +1 -0
  28. package/dist/constants/{hyperLiquidConfig.mjs → hyperLiquidConfig.js} +4 -4
  29. package/dist/constants/hyperLiquidConfig.js.map +1 -0
  30. package/dist/constants/index.d.ts +12 -0
  31. package/dist/constants/index.d.ts.map +1 -0
  32. package/dist/constants/index.js +12 -0
  33. package/dist/constants/index.js.map +1 -0
  34. package/dist/constants/{myxConfig.d.mts → myxConfig.d.ts} +9 -8
  35. package/dist/constants/myxConfig.d.ts.map +1 -0
  36. package/dist/constants/{myxConfig.mjs → myxConfig.js} +2 -2
  37. package/dist/constants/myxConfig.js.map +1 -0
  38. package/dist/constants/{orderTypes.d.cts → orderTypes.d.ts} +7 -7
  39. package/dist/constants/orderTypes.d.ts.map +1 -0
  40. package/dist/constants/{orderTypes.mjs → orderTypes.js} +1 -1
  41. package/dist/constants/orderTypes.js.map +1 -0
  42. package/dist/constants/{performanceMetrics.d.cts → performanceMetrics.d.ts} +1 -1
  43. package/dist/constants/performanceMetrics.d.ts.map +1 -0
  44. package/dist/constants/{performanceMetrics.mjs → performanceMetrics.js} +1 -1
  45. package/dist/constants/performanceMetrics.js.map +1 -0
  46. package/dist/constants/{perpsConfig.d.mts → perpsConfig.d.ts} +56 -56
  47. package/dist/constants/perpsConfig.d.ts.map +1 -0
  48. package/dist/constants/{perpsConfig.mjs → perpsConfig.js} +1 -1
  49. package/dist/constants/perpsConfig.js.map +1 -0
  50. package/dist/constants/{transactionsHistoryConfig.d.cts → transactionsHistoryConfig.d.ts} +1 -1
  51. package/dist/constants/transactionsHistoryConfig.d.ts.map +1 -0
  52. package/dist/constants/{transactionsHistoryConfig.mjs → transactionsHistoryConfig.js} +1 -1
  53. package/dist/constants/transactionsHistoryConfig.js.map +1 -0
  54. package/dist/{index.d.mts → index.d.ts} +64 -64
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/{index.mjs → index.js} +41 -41
  57. package/dist/index.js.map +1 -0
  58. package/dist/perpsErrorCodes.d.ts +104 -0
  59. package/dist/perpsErrorCodes.d.ts.map +1 -0
  60. package/dist/{perpsErrorCodes.mjs → perpsErrorCodes.js} +1 -1
  61. package/dist/perpsErrorCodes.js.map +1 -0
  62. package/dist/providers/{AggregatedPerpsProvider.d.cts → AggregatedPerpsProvider.d.ts} +5 -5
  63. package/dist/providers/AggregatedPerpsProvider.d.ts.map +1 -0
  64. package/dist/providers/{AggregatedPerpsProvider.mjs → AggregatedPerpsProvider.js} +5 -5
  65. package/dist/providers/AggregatedPerpsProvider.js.map +1 -0
  66. package/dist/providers/{HyperLiquidProvider.d.mts → HyperLiquidProvider.d.ts} +7 -7
  67. package/dist/providers/HyperLiquidProvider.d.ts.map +1 -0
  68. package/dist/providers/{HyperLiquidProvider.mjs → HyperLiquidProvider.js} +48 -50
  69. package/dist/providers/HyperLiquidProvider.js.map +1 -0
  70. package/dist/routing/{ProviderRouter.d.mts → ProviderRouter.d.ts} +2 -2
  71. package/dist/routing/ProviderRouter.d.ts.map +1 -0
  72. package/dist/routing/{ProviderRouter.mjs → ProviderRouter.js} +1 -1
  73. package/dist/routing/ProviderRouter.js.map +1 -0
  74. package/dist/routing/index.d.ts +6 -0
  75. package/dist/routing/index.d.ts.map +1 -0
  76. package/dist/routing/index.js +5 -0
  77. package/dist/routing/index.js.map +1 -0
  78. package/dist/{selectors.d.mts → selectors.d.ts} +97 -97
  79. package/dist/selectors.d.ts.map +1 -0
  80. package/dist/{selectors.mjs → selectors.js} +4 -4
  81. package/dist/selectors.js.map +1 -0
  82. package/dist/services/{AccountService.d.cts → AccountService.d.ts} +4 -4
  83. package/dist/services/AccountService.d.ts.map +1 -0
  84. package/dist/services/{AccountService.mjs → AccountService.js} +9 -9
  85. package/dist/services/AccountService.js.map +1 -0
  86. package/dist/services/{AggregatedOrderBookConnection.d.cts → AggregatedOrderBookConnection.d.ts} +2 -2
  87. package/dist/services/AggregatedOrderBookConnection.d.ts.map +1 -0
  88. package/dist/services/{AggregatedOrderBookConnection.mjs → AggregatedOrderBookConnection.js} +3 -3
  89. package/dist/services/AggregatedOrderBookConnection.js.map +1 -0
  90. package/dist/services/{DataLakeService.d.cts → DataLakeService.d.ts} +4 -4
  91. package/dist/services/DataLakeService.d.ts.map +1 -0
  92. package/dist/services/{DataLakeService.mjs → DataLakeService.js} +7 -7
  93. package/dist/services/DataLakeService.js.map +1 -0
  94. package/dist/services/{DepositService.d.cts → DepositService.d.ts} +4 -4
  95. package/dist/services/DepositService.d.ts.map +1 -0
  96. package/dist/services/{DepositService.mjs → DepositService.js} +7 -7
  97. package/dist/services/DepositService.js.map +1 -0
  98. package/dist/services/{DexDiscoveryCacheManager.d.cts → DexDiscoveryCacheManager.d.ts} +2 -2
  99. package/dist/services/DexDiscoveryCacheManager.d.ts.map +1 -0
  100. package/dist/services/{DexDiscoveryCacheManager.mjs → DexDiscoveryCacheManager.js} +2 -2
  101. package/dist/services/DexDiscoveryCacheManager.js.map +1 -0
  102. package/dist/services/{EligibilityService.d.cts → EligibilityService.d.ts} +2 -2
  103. package/dist/services/EligibilityService.d.ts.map +1 -0
  104. package/dist/services/{EligibilityService.mjs → EligibilityService.js} +3 -3
  105. package/dist/services/EligibilityService.js.map +1 -0
  106. package/dist/services/{FeatureFlagConfigurationService.d.cts → FeatureFlagConfigurationService.d.ts} +3 -3
  107. package/dist/services/FeatureFlagConfigurationService.d.ts.map +1 -0
  108. package/dist/services/{FeatureFlagConfigurationService.mjs → FeatureFlagConfigurationService.js} +7 -7
  109. package/dist/services/FeatureFlagConfigurationService.js.map +1 -0
  110. package/dist/services/{HyperLiquidClientService.d.cts → HyperLiquidClientService.d.ts} +10 -10
  111. package/dist/services/HyperLiquidClientService.d.ts.map +1 -0
  112. package/dist/services/{HyperLiquidClientService.mjs → HyperLiquidClientService.js} +11 -11
  113. package/dist/services/HyperLiquidClientService.js.map +1 -0
  114. package/dist/services/{HyperLiquidSubscriptionService.d.cts → HyperLiquidSubscriptionService.d.ts} +6 -6
  115. package/dist/services/HyperLiquidSubscriptionService.d.ts.map +1 -0
  116. package/dist/services/{HyperLiquidSubscriptionService.mjs → HyperLiquidSubscriptionService.js} +12 -12
  117. package/dist/services/HyperLiquidSubscriptionService.js.map +1 -0
  118. package/dist/services/{HyperLiquidWalletService.d.cts → HyperLiquidWalletService.d.ts} +4 -4
  119. package/dist/services/HyperLiquidWalletService.d.ts.map +1 -0
  120. package/dist/services/{HyperLiquidWalletService.mjs → HyperLiquidWalletService.js} +5 -5
  121. package/dist/services/HyperLiquidWalletService.js.map +1 -0
  122. package/dist/services/{MarketDataService.d.cts → MarketDataService.d.ts} +5 -5
  123. package/dist/services/MarketDataService.d.ts.map +1 -0
  124. package/dist/services/{MarketDataService.mjs → MarketDataService.js} +9 -9
  125. package/dist/services/MarketDataService.js.map +1 -0
  126. package/dist/services/{RewardsIntegrationService.d.cts → RewardsIntegrationService.d.ts} +3 -3
  127. package/dist/services/RewardsIntegrationService.d.ts.map +1 -0
  128. package/dist/services/{RewardsIntegrationService.mjs → RewardsIntegrationService.js} +6 -6
  129. package/dist/services/RewardsIntegrationService.js.map +1 -0
  130. package/dist/services/{ServiceContext.d.cts → ServiceContext.d.ts} +3 -3
  131. package/dist/services/ServiceContext.d.ts.map +1 -0
  132. package/dist/services/ServiceContext.js +2 -0
  133. package/dist/services/ServiceContext.js.map +1 -0
  134. package/dist/services/{TerminalMarketService.d.cts → TerminalMarketService.d.ts} +2 -2
  135. package/dist/services/TerminalMarketService.d.ts.map +1 -0
  136. package/dist/services/{TerminalMarketService.mjs → TerminalMarketService.js} +9 -9
  137. package/dist/services/TerminalMarketService.js.map +1 -0
  138. package/dist/services/{TradingReadinessCache.d.mts → TradingReadinessCache.d.ts} +1 -1
  139. package/dist/services/TradingReadinessCache.d.ts.map +1 -0
  140. package/dist/services/{TradingReadinessCache.mjs → TradingReadinessCache.js} +1 -1
  141. package/dist/services/TradingReadinessCache.js.map +1 -0
  142. package/dist/services/{TradingService.d.cts → TradingService.d.ts} +4 -4
  143. package/dist/services/TradingService.d.ts.map +1 -0
  144. package/dist/services/{TradingService.mjs → TradingService.js} +10 -10
  145. package/dist/services/TradingService.js.map +1 -0
  146. package/dist/types/{config.d.cts → config.d.ts} +2 -2
  147. package/dist/types/config.d.ts.map +1 -0
  148. package/dist/types/config.js +2 -0
  149. package/dist/types/config.js.map +1 -0
  150. package/dist/types/{hyperliquid-types.d.cts → hyperliquid-types.d.ts} +6 -6
  151. package/dist/types/hyperliquid-types.d.ts.map +1 -0
  152. package/dist/types/{hyperliquid-types.mjs → hyperliquid-types.js} +1 -1
  153. package/dist/types/hyperliquid-types.js.map +1 -0
  154. package/dist/types/{index.d.cts → index.d.ts} +41 -41
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/{index.mjs → index.js} +3 -3
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/types/{messenger.d.mts → messenger.d.ts} +11 -11
  159. package/dist/types/messenger.d.ts.map +1 -0
  160. package/dist/types/messenger.js +2 -0
  161. package/dist/types/messenger.js.map +1 -0
  162. package/dist/types/{myx-types.d.mts → myx-types.d.ts} +16 -16
  163. package/dist/types/myx-types.d.ts.map +1 -0
  164. package/dist/types/{myx-types.mjs → myx-types.js} +3 -3
  165. package/dist/types/myx-types.js.map +1 -0
  166. package/dist/types/{perps-types.d.cts → perps-types.d.ts} +4 -4
  167. package/dist/types/perps-types.d.ts.map +1 -0
  168. package/dist/types/perps-types.js +2 -0
  169. package/dist/types/perps-types.js.map +1 -0
  170. package/dist/types/{token.d.cts → token.d.ts} +2 -2
  171. package/dist/types/token.d.ts.map +1 -0
  172. package/dist/types/token.js +2 -0
  173. package/dist/types/token.js.map +1 -0
  174. package/dist/types/{transactionTypes.d.cts → transactionTypes.d.ts} +1 -1
  175. package/dist/types/transactionTypes.d.ts.map +1 -0
  176. package/dist/types/{transactionTypes.mjs → transactionTypes.js} +2 -2
  177. package/dist/types/transactionTypes.js.map +1 -0
  178. package/dist/utils/{accountUtils.d.cts → accountUtils.d.ts} +4 -4
  179. package/dist/utils/accountUtils.d.ts.map +1 -0
  180. package/dist/utils/{accountUtils.mjs → accountUtils.js} +2 -2
  181. package/dist/utils/accountUtils.js.map +1 -0
  182. package/dist/utils/{capabilitySymbols.d.mts → capabilitySymbols.d.ts} +1 -1
  183. package/dist/utils/capabilitySymbols.d.ts.map +1 -0
  184. package/dist/utils/{capabilitySymbols.mjs → capabilitySymbols.js} +1 -1
  185. package/dist/utils/capabilitySymbols.js.map +1 -0
  186. package/dist/utils/{coalescePerpsRestRequest.d.cts → coalescePerpsRestRequest.d.ts} +1 -1
  187. package/dist/utils/coalescePerpsRestRequest.d.ts.map +1 -0
  188. package/dist/utils/{coalescePerpsRestRequest.mjs → coalescePerpsRestRequest.js} +2 -2
  189. package/dist/utils/coalescePerpsRestRequest.js.map +1 -0
  190. package/dist/utils/{errorUtils.d.mts → errorUtils.d.ts} +1 -1
  191. package/dist/utils/errorUtils.d.ts.map +1 -0
  192. package/dist/utils/{errorUtils.mjs → errorUtils.js} +3 -3
  193. package/dist/utils/errorUtils.js.map +1 -0
  194. package/dist/utils/{hyperLiquidAbstraction.d.cts → hyperLiquidAbstraction.d.ts} +2 -2
  195. package/dist/utils/hyperLiquidAbstraction.d.ts.map +1 -0
  196. package/dist/utils/{hyperLiquidAbstraction.mjs → hyperLiquidAbstraction.js} +1 -1
  197. package/dist/utils/hyperLiquidAbstraction.js.map +1 -0
  198. package/dist/utils/{hyperLiquidAdapter.d.cts → hyperLiquidAdapter.d.ts} +4 -4
  199. package/dist/utils/hyperLiquidAdapter.d.ts.map +1 -0
  200. package/dist/utils/{hyperLiquidAdapter.mjs → hyperLiquidAdapter.js} +9 -9
  201. package/dist/utils/hyperLiquidAdapter.js.map +1 -0
  202. package/dist/utils/{hyperLiquidOrderBookProcessor.d.mts → hyperLiquidOrderBookProcessor.d.ts} +3 -3
  203. package/dist/utils/hyperLiquidOrderBookProcessor.d.ts.map +1 -0
  204. package/dist/utils/{hyperLiquidOrderBookProcessor.mjs → hyperLiquidOrderBookProcessor.js} +1 -1
  205. package/dist/utils/hyperLiquidOrderBookProcessor.js.map +1 -0
  206. package/dist/utils/{hyperLiquidValidation.d.cts → hyperLiquidValidation.d.ts} +4 -4
  207. package/dist/utils/hyperLiquidValidation.d.ts.map +1 -0
  208. package/dist/utils/{hyperLiquidValidation.mjs → hyperLiquidValidation.js} +6 -6
  209. package/dist/utils/hyperLiquidValidation.js.map +1 -0
  210. package/dist/utils/{idUtils.d.cts → idUtils.d.ts} +1 -1
  211. package/dist/utils/idUtils.d.ts.map +1 -0
  212. package/dist/utils/{idUtils.mjs → idUtils.js} +2 -2
  213. package/dist/utils/idUtils.js.map +1 -0
  214. package/dist/utils/index.d.ts +28 -0
  215. package/dist/utils/index.d.ts.map +1 -0
  216. package/dist/utils/{index.mjs → index.js} +21 -21
  217. package/dist/utils/index.js.map +1 -0
  218. package/dist/utils/{marketDataTransform.d.cts → marketDataTransform.d.ts} +3 -3
  219. package/dist/utils/marketDataTransform.d.ts.map +1 -0
  220. package/dist/utils/{marketDataTransform.mjs → marketDataTransform.js} +5 -5
  221. package/dist/utils/marketDataTransform.js.map +1 -0
  222. package/dist/utils/{marketSearch.d.cts → marketSearch.d.ts} +2 -2
  223. package/dist/utils/marketSearch.d.ts.map +1 -0
  224. package/dist/utils/{marketSearch.mjs → marketSearch.js} +1 -1
  225. package/dist/utils/marketSearch.js.map +1 -0
  226. package/dist/utils/{marketUtils.d.cts → marketUtils.d.ts} +3 -3
  227. package/dist/utils/marketUtils.d.ts.map +1 -0
  228. package/dist/utils/{marketUtils.mjs → marketUtils.js} +2 -2
  229. package/dist/utils/marketUtils.js.map +1 -0
  230. package/dist/utils/{myxAdapter.d.cts → myxAdapter.d.ts} +3 -3
  231. package/dist/utils/myxAdapter.d.ts.map +1 -0
  232. package/dist/utils/{myxAdapter.mjs → myxAdapter.js} +3 -3
  233. package/dist/utils/myxAdapter.js.map +1 -0
  234. package/dist/utils/{orderCalculations.d.cts → orderCalculations.d.ts} +4 -4
  235. package/dist/utils/orderCalculations.d.ts.map +1 -0
  236. package/dist/utils/{orderCalculations.mjs → orderCalculations.js} +6 -6
  237. package/dist/utils/orderCalculations.js.map +1 -0
  238. package/dist/utils/{orderTypes.d.mts → orderTypes.d.ts} +3 -3
  239. package/dist/utils/orderTypes.d.ts.map +1 -0
  240. package/dist/utils/{orderTypes.mjs → orderTypes.js} +1 -1
  241. package/dist/utils/orderTypes.js.map +1 -0
  242. package/dist/utils/{perpsConnectionAttemptContext.d.mts → perpsConnectionAttemptContext.d.ts} +1 -1
  243. package/dist/utils/perpsConnectionAttemptContext.d.ts.map +1 -0
  244. package/dist/utils/{perpsConnectionAttemptContext.mjs → perpsConnectionAttemptContext.js} +1 -1
  245. package/dist/utils/perpsConnectionAttemptContext.js.map +1 -0
  246. package/dist/utils/{perpsDiskPersistence.d.cts → perpsDiskPersistence.d.ts} +2 -2
  247. package/dist/utils/perpsDiskPersistence.d.ts.map +1 -0
  248. package/dist/utils/{perpsDiskPersistence.mjs → perpsDiskPersistence.js} +2 -2
  249. package/dist/utils/perpsDiskPersistence.js.map +1 -0
  250. package/dist/utils/{perpsFormatters.d.cts → perpsFormatters.d.ts} +1 -1
  251. package/dist/utils/perpsFormatters.d.ts.map +1 -0
  252. package/dist/utils/{perpsFormatters.mjs → perpsFormatters.js} +2 -2
  253. package/dist/utils/perpsFormatters.js.map +1 -0
  254. package/dist/utils/{rewardsUtils.d.cts → rewardsUtils.d.ts} +4 -4
  255. package/dist/utils/rewardsUtils.d.ts.map +1 -0
  256. package/dist/utils/{rewardsUtils.mjs → rewardsUtils.js} +4 -4
  257. package/dist/utils/rewardsUtils.js.map +1 -0
  258. package/dist/utils/{significantFigures.d.cts → significantFigures.d.ts} +1 -1
  259. package/dist/utils/significantFigures.d.ts.map +1 -0
  260. package/dist/utils/{significantFigures.mjs → significantFigures.js} +2 -2
  261. package/dist/utils/significantFigures.js.map +1 -0
  262. package/dist/utils/{sortMarkets.d.cts → sortMarkets.d.ts} +2 -2
  263. package/dist/utils/sortMarkets.d.ts.map +1 -0
  264. package/dist/utils/{sortMarkets.mjs → sortMarkets.js} +2 -2
  265. package/dist/utils/sortMarkets.js.map +1 -0
  266. package/dist/utils/{standaloneInfoClient.d.cts → standaloneInfoClient.d.ts} +3 -3
  267. package/dist/utils/standaloneInfoClient.d.ts.map +1 -0
  268. package/dist/utils/{standaloneInfoClient.mjs → standaloneInfoClient.js} +3 -3
  269. package/dist/utils/standaloneInfoClient.js.map +1 -0
  270. package/dist/utils/{stringParseUtils.d.cts → stringParseUtils.d.ts} +1 -1
  271. package/dist/utils/stringParseUtils.d.ts.map +1 -0
  272. package/dist/utils/{stringParseUtils.mjs → stringParseUtils.js} +1 -1
  273. package/dist/utils/stringParseUtils.js.map +1 -0
  274. package/dist/utils/{transferData.d.cts → transferData.d.ts} +1 -1
  275. package/dist/utils/transferData.d.ts.map +1 -0
  276. package/dist/utils/{transferData.mjs → transferData.js} +3 -3
  277. package/dist/utils/transferData.js.map +1 -0
  278. package/dist/utils/{wait.d.cts → wait.d.ts} +1 -1
  279. package/dist/utils/wait.d.ts.map +1 -0
  280. package/dist/utils/{wait.mjs → wait.js} +1 -1
  281. package/dist/utils/wait.js.map +1 -0
  282. package/package.json +20 -48
  283. package/dist/PerpsController-method-action-types.cjs +0 -7
  284. package/dist/PerpsController-method-action-types.cjs.map +0 -1
  285. package/dist/PerpsController-method-action-types.d.cts +0 -1163
  286. package/dist/PerpsController-method-action-types.d.cts.map +0 -1
  287. package/dist/PerpsController-method-action-types.d.mts.map +0 -1
  288. package/dist/PerpsController-method-action-types.mjs.map +0 -1
  289. package/dist/PerpsController.cjs +0 -5063
  290. package/dist/PerpsController.cjs.map +0 -1
  291. package/dist/PerpsController.d.cts +0 -1274
  292. package/dist/PerpsController.d.cts.map +0 -1
  293. package/dist/PerpsController.d.mts.map +0 -1
  294. package/dist/PerpsController.mjs.map +0 -1
  295. package/dist/aggregation/SubscriptionMultiplexer.cjs +0 -441
  296. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +0 -1
  297. package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +0 -1
  298. package/dist/aggregation/SubscriptionMultiplexer.d.mts +0 -171
  299. package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +0 -1
  300. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +0 -1
  301. package/dist/aggregation/index.cjs +0 -9
  302. package/dist/aggregation/index.cjs.map +0 -1
  303. package/dist/aggregation/index.d.cts +0 -6
  304. package/dist/aggregation/index.d.cts.map +0 -1
  305. package/dist/aggregation/index.d.mts +0 -6
  306. package/dist/aggregation/index.d.mts.map +0 -1
  307. package/dist/aggregation/index.mjs +0 -5
  308. package/dist/aggregation/index.mjs.map +0 -1
  309. package/dist/constants/chartConfig.cjs +0 -239
  310. package/dist/constants/chartConfig.cjs.map +0 -1
  311. package/dist/constants/chartConfig.d.cts +0 -228
  312. package/dist/constants/chartConfig.d.cts.map +0 -1
  313. package/dist/constants/chartConfig.d.mts.map +0 -1
  314. package/dist/constants/chartConfig.mjs.map +0 -1
  315. package/dist/constants/eventNames.cjs +0 -650
  316. package/dist/constants/eventNames.cjs.map +0 -1
  317. package/dist/constants/eventNames.d.cts +0 -555
  318. package/dist/constants/eventNames.d.cts.map +0 -1
  319. package/dist/constants/eventNames.d.mts +0 -555
  320. package/dist/constants/eventNames.d.mts.map +0 -1
  321. package/dist/constants/eventNames.mjs.map +0 -1
  322. package/dist/constants/hyperLiquidConfig.cjs +0 -607
  323. package/dist/constants/hyperLiquidConfig.cjs.map +0 -1
  324. package/dist/constants/hyperLiquidConfig.d.cts.map +0 -1
  325. package/dist/constants/hyperLiquidConfig.d.mts +0 -280
  326. package/dist/constants/hyperLiquidConfig.d.mts.map +0 -1
  327. package/dist/constants/hyperLiquidConfig.mjs.map +0 -1
  328. package/dist/constants/index.cjs +0 -28
  329. package/dist/constants/index.cjs.map +0 -1
  330. package/dist/constants/index.d.cts +0 -12
  331. package/dist/constants/index.d.cts.map +0 -1
  332. package/dist/constants/index.d.mts +0 -12
  333. package/dist/constants/index.d.mts.map +0 -1
  334. package/dist/constants/index.mjs +0 -12
  335. package/dist/constants/index.mjs.map +0 -1
  336. package/dist/constants/myxConfig.cjs +0 -253
  337. package/dist/constants/myxConfig.cjs.map +0 -1
  338. package/dist/constants/myxConfig.d.cts +0 -145
  339. package/dist/constants/myxConfig.d.cts.map +0 -1
  340. package/dist/constants/myxConfig.d.mts.map +0 -1
  341. package/dist/constants/myxConfig.mjs.map +0 -1
  342. package/dist/constants/orderTypes.cjs +0 -31
  343. package/dist/constants/orderTypes.cjs.map +0 -1
  344. package/dist/constants/orderTypes.d.cts.map +0 -1
  345. package/dist/constants/orderTypes.d.mts +0 -19
  346. package/dist/constants/orderTypes.d.mts.map +0 -1
  347. package/dist/constants/orderTypes.mjs.map +0 -1
  348. package/dist/constants/performanceMetrics.cjs +0 -63
  349. package/dist/constants/performanceMetrics.cjs.map +0 -1
  350. package/dist/constants/performanceMetrics.d.cts.map +0 -1
  351. package/dist/constants/performanceMetrics.d.mts +0 -46
  352. package/dist/constants/performanceMetrics.d.mts.map +0 -1
  353. package/dist/constants/performanceMetrics.mjs.map +0 -1
  354. package/dist/constants/perpsConfig.cjs +0 -553
  355. package/dist/constants/perpsConfig.cjs.map +0 -1
  356. package/dist/constants/perpsConfig.d.cts +0 -474
  357. package/dist/constants/perpsConfig.d.cts.map +0 -1
  358. package/dist/constants/perpsConfig.d.mts.map +0 -1
  359. package/dist/constants/perpsConfig.mjs.map +0 -1
  360. package/dist/constants/transactionsHistoryConfig.cjs +0 -38
  361. package/dist/constants/transactionsHistoryConfig.cjs.map +0 -1
  362. package/dist/constants/transactionsHistoryConfig.d.cts.map +0 -1
  363. package/dist/constants/transactionsHistoryConfig.d.mts +0 -35
  364. package/dist/constants/transactionsHistoryConfig.d.mts.map +0 -1
  365. package/dist/constants/transactionsHistoryConfig.mjs.map +0 -1
  366. package/dist/index.cjs +0 -344
  367. package/dist/index.cjs.map +0 -1
  368. package/dist/index.d.cts +0 -92
  369. package/dist/index.d.cts.map +0 -1
  370. package/dist/index.d.mts.map +0 -1
  371. package/dist/index.mjs.map +0 -1
  372. package/dist/perpsErrorCodes.cjs +0 -127
  373. package/dist/perpsErrorCodes.cjs.map +0 -1
  374. package/dist/perpsErrorCodes.d.cts +0 -104
  375. package/dist/perpsErrorCodes.d.cts.map +0 -1
  376. package/dist/perpsErrorCodes.d.mts +0 -104
  377. package/dist/perpsErrorCodes.d.mts.map +0 -1
  378. package/dist/perpsErrorCodes.mjs.map +0 -1
  379. package/dist/providers/AggregatedPerpsProvider.cjs +0 -689
  380. package/dist/providers/AggregatedPerpsProvider.cjs.map +0 -1
  381. package/dist/providers/AggregatedPerpsProvider.d.cts.map +0 -1
  382. package/dist/providers/AggregatedPerpsProvider.d.mts +0 -232
  383. package/dist/providers/AggregatedPerpsProvider.d.mts.map +0 -1
  384. package/dist/providers/AggregatedPerpsProvider.mjs.map +0 -1
  385. package/dist/providers/HyperLiquidProvider.cjs +0 -10416
  386. package/dist/providers/HyperLiquidProvider.cjs.map +0 -1
  387. package/dist/providers/HyperLiquidProvider.d.cts +0 -625
  388. package/dist/providers/HyperLiquidProvider.d.cts.map +0 -1
  389. package/dist/providers/HyperLiquidProvider.d.mts.map +0 -1
  390. package/dist/providers/HyperLiquidProvider.mjs.map +0 -1
  391. package/dist/routing/ProviderRouter.cjs +0 -154
  392. package/dist/routing/ProviderRouter.cjs.map +0 -1
  393. package/dist/routing/ProviderRouter.d.cts +0 -112
  394. package/dist/routing/ProviderRouter.d.cts.map +0 -1
  395. package/dist/routing/ProviderRouter.d.mts.map +0 -1
  396. package/dist/routing/ProviderRouter.mjs.map +0 -1
  397. package/dist/routing/index.cjs +0 -9
  398. package/dist/routing/index.cjs.map +0 -1
  399. package/dist/routing/index.d.cts +0 -6
  400. package/dist/routing/index.d.cts.map +0 -1
  401. package/dist/routing/index.d.mts +0 -6
  402. package/dist/routing/index.d.mts.map +0 -1
  403. package/dist/routing/index.mjs +0 -5
  404. package/dist/routing/index.mjs.map +0 -1
  405. package/dist/selectors.cjs +0 -264
  406. package/dist/selectors.cjs.map +0 -1
  407. package/dist/selectors.d.cts +0 -336
  408. package/dist/selectors.d.cts.map +0 -1
  409. package/dist/selectors.d.mts.map +0 -1
  410. package/dist/selectors.mjs.map +0 -1
  411. package/dist/services/AccountService.cjs +0 -324
  412. package/dist/services/AccountService.cjs.map +0 -1
  413. package/dist/services/AccountService.d.cts.map +0 -1
  414. package/dist/services/AccountService.d.mts +0 -56
  415. package/dist/services/AccountService.d.mts.map +0 -1
  416. package/dist/services/AccountService.mjs.map +0 -1
  417. package/dist/services/AggregatedOrderBookConnection.cjs +0 -405
  418. package/dist/services/AggregatedOrderBookConnection.cjs.map +0 -1
  419. package/dist/services/AggregatedOrderBookConnection.d.cts.map +0 -1
  420. package/dist/services/AggregatedOrderBookConnection.d.mts +0 -106
  421. package/dist/services/AggregatedOrderBookConnection.d.mts.map +0 -1
  422. package/dist/services/AggregatedOrderBookConnection.mjs.map +0 -1
  423. package/dist/services/DataLakeService.cjs +0 -233
  424. package/dist/services/DataLakeService.cjs.map +0 -1
  425. package/dist/services/DataLakeService.d.cts.map +0 -1
  426. package/dist/services/DataLakeService.d.mts +0 -51
  427. package/dist/services/DataLakeService.d.mts.map +0 -1
  428. package/dist/services/DataLakeService.mjs.map +0 -1
  429. package/dist/services/DepositService.cjs +0 -99
  430. package/dist/services/DepositService.cjs.map +0 -1
  431. package/dist/services/DepositService.d.cts.map +0 -1
  432. package/dist/services/DepositService.d.mts +0 -39
  433. package/dist/services/DepositService.d.mts.map +0 -1
  434. package/dist/services/DepositService.mjs.map +0 -1
  435. package/dist/services/DexDiscoveryCacheManager.cjs +0 -147
  436. package/dist/services/DexDiscoveryCacheManager.cjs.map +0 -1
  437. package/dist/services/DexDiscoveryCacheManager.d.cts.map +0 -1
  438. package/dist/services/DexDiscoveryCacheManager.d.mts +0 -52
  439. package/dist/services/DexDiscoveryCacheManager.d.mts.map +0 -1
  440. package/dist/services/DexDiscoveryCacheManager.mjs.map +0 -1
  441. package/dist/services/EligibilityService.cjs +0 -78
  442. package/dist/services/EligibilityService.cjs.map +0 -1
  443. package/dist/services/EligibilityService.d.cts.map +0 -1
  444. package/dist/services/EligibilityService.d.mts +0 -28
  445. package/dist/services/EligibilityService.d.mts.map +0 -1
  446. package/dist/services/EligibilityService.mjs.map +0 -1
  447. package/dist/services/FeatureFlagConfigurationService.cjs +0 -257
  448. package/dist/services/FeatureFlagConfigurationService.cjs.map +0 -1
  449. package/dist/services/FeatureFlagConfigurationService.d.cts.map +0 -1
  450. package/dist/services/FeatureFlagConfigurationService.d.mts +0 -73
  451. package/dist/services/FeatureFlagConfigurationService.d.mts.map +0 -1
  452. package/dist/services/FeatureFlagConfigurationService.mjs.map +0 -1
  453. package/dist/services/HyperLiquidClientService.cjs +0 -1045
  454. package/dist/services/HyperLiquidClientService.cjs.map +0 -1
  455. package/dist/services/HyperLiquidClientService.d.cts.map +0 -1
  456. package/dist/services/HyperLiquidClientService.d.mts +0 -239
  457. package/dist/services/HyperLiquidClientService.d.mts.map +0 -1
  458. package/dist/services/HyperLiquidClientService.mjs.map +0 -1
  459. package/dist/services/HyperLiquidSubscriptionService.cjs +0 -3196
  460. package/dist/services/HyperLiquidSubscriptionService.cjs.map +0 -1
  461. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +0 -1
  462. package/dist/services/HyperLiquidSubscriptionService.d.mts +0 -227
  463. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +0 -1
  464. package/dist/services/HyperLiquidSubscriptionService.mjs.map +0 -1
  465. package/dist/services/HyperLiquidWalletService.cjs +0 -186
  466. package/dist/services/HyperLiquidWalletService.cjs.map +0 -1
  467. package/dist/services/HyperLiquidWalletService.d.cts.map +0 -1
  468. package/dist/services/HyperLiquidWalletService.d.mts +0 -84
  469. package/dist/services/HyperLiquidWalletService.d.mts.map +0 -1
  470. package/dist/services/HyperLiquidWalletService.mjs.map +0 -1
  471. package/dist/services/MarketDataService.cjs +0 -1138
  472. package/dist/services/MarketDataService.cjs.map +0 -1
  473. package/dist/services/MarketDataService.d.cts.map +0 -1
  474. package/dist/services/MarketDataService.d.mts +0 -334
  475. package/dist/services/MarketDataService.d.mts.map +0 -1
  476. package/dist/services/MarketDataService.mjs.map +0 -1
  477. package/dist/services/RewardsIntegrationService.cjs +0 -391
  478. package/dist/services/RewardsIntegrationService.cjs.map +0 -1
  479. package/dist/services/RewardsIntegrationService.d.cts.map +0 -1
  480. package/dist/services/RewardsIntegrationService.d.mts +0 -84
  481. package/dist/services/RewardsIntegrationService.d.mts.map +0 -1
  482. package/dist/services/RewardsIntegrationService.mjs.map +0 -1
  483. package/dist/services/ServiceContext.cjs +0 -3
  484. package/dist/services/ServiceContext.cjs.map +0 -1
  485. package/dist/services/ServiceContext.d.cts.map +0 -1
  486. package/dist/services/ServiceContext.d.mts +0 -102
  487. package/dist/services/ServiceContext.d.mts.map +0 -1
  488. package/dist/services/ServiceContext.mjs +0 -2
  489. package/dist/services/ServiceContext.mjs.map +0 -1
  490. package/dist/services/TerminalMarketService.cjs +0 -623
  491. package/dist/services/TerminalMarketService.cjs.map +0 -1
  492. package/dist/services/TerminalMarketService.d.cts.map +0 -1
  493. package/dist/services/TerminalMarketService.d.mts +0 -45
  494. package/dist/services/TerminalMarketService.d.mts.map +0 -1
  495. package/dist/services/TerminalMarketService.mjs.map +0 -1
  496. package/dist/services/TradingReadinessCache.cjs +0 -329
  497. package/dist/services/TradingReadinessCache.cjs.map +0 -1
  498. package/dist/services/TradingReadinessCache.d.cts +0 -204
  499. package/dist/services/TradingReadinessCache.d.cts.map +0 -1
  500. package/dist/services/TradingReadinessCache.d.mts.map +0 -1
  501. package/dist/services/TradingReadinessCache.mjs.map +0 -1
  502. package/dist/services/TradingService.cjs +0 -1865
  503. package/dist/services/TradingService.cjs.map +0 -1
  504. package/dist/services/TradingService.d.cts.map +0 -1
  505. package/dist/services/TradingService.d.mts +0 -201
  506. package/dist/services/TradingService.d.mts.map +0 -1
  507. package/dist/services/TradingService.mjs.map +0 -1
  508. package/dist/types/config.cjs +0 -3
  509. package/dist/types/config.cjs.map +0 -1
  510. package/dist/types/config.d.cts.map +0 -1
  511. package/dist/types/config.d.mts +0 -49
  512. package/dist/types/config.d.mts.map +0 -1
  513. package/dist/types/config.mjs +0 -2
  514. package/dist/types/config.mjs.map +0 -1
  515. package/dist/types/hyperliquid-types.cjs +0 -45
  516. package/dist/types/hyperliquid-types.cjs.map +0 -1
  517. package/dist/types/hyperliquid-types.d.cts.map +0 -1
  518. package/dist/types/hyperliquid-types.d.mts +0 -67
  519. package/dist/types/hyperliquid-types.d.mts.map +0 -1
  520. package/dist/types/hyperliquid-types.mjs.map +0 -1
  521. package/dist/types/index.cjs +0 -151
  522. package/dist/types/index.cjs.map +0 -1
  523. package/dist/types/index.d.cts.map +0 -1
  524. package/dist/types/index.d.mts +0 -1951
  525. package/dist/types/index.d.mts.map +0 -1
  526. package/dist/types/index.mjs.map +0 -1
  527. package/dist/types/messenger.cjs +0 -3
  528. package/dist/types/messenger.cjs.map +0 -1
  529. package/dist/types/messenger.d.cts +0 -30
  530. package/dist/types/messenger.d.cts.map +0 -1
  531. package/dist/types/messenger.d.mts.map +0 -1
  532. package/dist/types/messenger.mjs +0 -2
  533. package/dist/types/messenger.mjs.map +0 -1
  534. package/dist/types/myx-types.cjs +0 -41
  535. package/dist/types/myx-types.cjs.map +0 -1
  536. package/dist/types/myx-types.d.cts +0 -94
  537. package/dist/types/myx-types.d.cts.map +0 -1
  538. package/dist/types/myx-types.d.mts.map +0 -1
  539. package/dist/types/myx-types.mjs.map +0 -1
  540. package/dist/types/perps-types.cjs +0 -7
  541. package/dist/types/perps-types.cjs.map +0 -1
  542. package/dist/types/perps-types.d.cts.map +0 -1
  543. package/dist/types/perps-types.d.mts +0 -184
  544. package/dist/types/perps-types.d.mts.map +0 -1
  545. package/dist/types/perps-types.mjs +0 -5
  546. package/dist/types/perps-types.mjs.map +0 -1
  547. package/dist/types/token.cjs +0 -3
  548. package/dist/types/token.cjs.map +0 -1
  549. package/dist/types/token.d.cts.map +0 -1
  550. package/dist/types/token.d.mts +0 -25
  551. package/dist/types/token.d.mts.map +0 -1
  552. package/dist/types/token.mjs +0 -2
  553. package/dist/types/token.mjs.map +0 -1
  554. package/dist/types/transactionTypes.cjs +0 -29
  555. package/dist/types/transactionTypes.cjs.map +0 -1
  556. package/dist/types/transactionTypes.d.cts.map +0 -1
  557. package/dist/types/transactionTypes.d.mts +0 -60
  558. package/dist/types/transactionTypes.d.mts.map +0 -1
  559. package/dist/types/transactionTypes.mjs.map +0 -1
  560. package/dist/utils/accountUtils.cjs +0 -236
  561. package/dist/utils/accountUtils.cjs.map +0 -1
  562. package/dist/utils/accountUtils.d.cts.map +0 -1
  563. package/dist/utils/accountUtils.d.mts +0 -72
  564. package/dist/utils/accountUtils.d.mts.map +0 -1
  565. package/dist/utils/accountUtils.mjs.map +0 -1
  566. package/dist/utils/capabilitySymbols.cjs +0 -25
  567. package/dist/utils/capabilitySymbols.cjs.map +0 -1
  568. package/dist/utils/capabilitySymbols.d.cts +0 -15
  569. package/dist/utils/capabilitySymbols.d.cts.map +0 -1
  570. package/dist/utils/capabilitySymbols.d.mts.map +0 -1
  571. package/dist/utils/capabilitySymbols.mjs.map +0 -1
  572. package/dist/utils/coalescePerpsRestRequest.cjs +0 -71
  573. package/dist/utils/coalescePerpsRestRequest.cjs.map +0 -1
  574. package/dist/utils/coalescePerpsRestRequest.d.cts.map +0 -1
  575. package/dist/utils/coalescePerpsRestRequest.d.mts +0 -32
  576. package/dist/utils/coalescePerpsRestRequest.d.mts.map +0 -1
  577. package/dist/utils/coalescePerpsRestRequest.mjs.map +0 -1
  578. package/dist/utils/errorUtils.cjs +0 -104
  579. package/dist/utils/errorUtils.cjs.map +0 -1
  580. package/dist/utils/errorUtils.d.cts +0 -50
  581. package/dist/utils/errorUtils.d.cts.map +0 -1
  582. package/dist/utils/errorUtils.d.mts.map +0 -1
  583. package/dist/utils/errorUtils.mjs.map +0 -1
  584. package/dist/utils/hyperLiquidAbstraction.cjs +0 -23
  585. package/dist/utils/hyperLiquidAbstraction.cjs.map +0 -1
  586. package/dist/utils/hyperLiquidAbstraction.d.cts.map +0 -1
  587. package/dist/utils/hyperLiquidAbstraction.d.mts +0 -11
  588. package/dist/utils/hyperLiquidAbstraction.d.mts.map +0 -1
  589. package/dist/utils/hyperLiquidAbstraction.mjs.map +0 -1
  590. package/dist/utils/hyperLiquidAdapter.cjs +0 -512
  591. package/dist/utils/hyperLiquidAdapter.cjs.map +0 -1
  592. package/dist/utils/hyperLiquidAdapter.d.cts.map +0 -1
  593. package/dist/utils/hyperLiquidAdapter.d.mts +0 -77
  594. package/dist/utils/hyperLiquidAdapter.d.mts.map +0 -1
  595. package/dist/utils/hyperLiquidAdapter.mjs.map +0 -1
  596. package/dist/utils/hyperLiquidOrderBookProcessor.cjs +0 -83
  597. package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +0 -1
  598. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +0 -55
  599. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +0 -1
  600. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +0 -1
  601. package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +0 -1
  602. package/dist/utils/hyperLiquidValidation.cjs +0 -799
  603. package/dist/utils/hyperLiquidValidation.cjs.map +0 -1
  604. package/dist/utils/hyperLiquidValidation.d.cts.map +0 -1
  605. package/dist/utils/hyperLiquidValidation.d.mts +0 -192
  606. package/dist/utils/hyperLiquidValidation.d.mts.map +0 -1
  607. package/dist/utils/hyperLiquidValidation.mjs.map +0 -1
  608. package/dist/utils/idUtils.cjs +0 -18
  609. package/dist/utils/idUtils.cjs.map +0 -1
  610. package/dist/utils/idUtils.d.cts.map +0 -1
  611. package/dist/utils/idUtils.d.mts +0 -6
  612. package/dist/utils/idUtils.d.mts.map +0 -1
  613. package/dist/utils/idUtils.mjs.map +0 -1
  614. package/dist/utils/index.cjs +0 -65
  615. package/dist/utils/index.cjs.map +0 -1
  616. package/dist/utils/index.d.cts +0 -28
  617. package/dist/utils/index.d.cts.map +0 -1
  618. package/dist/utils/index.d.mts +0 -28
  619. package/dist/utils/index.d.mts.map +0 -1
  620. package/dist/utils/index.mjs.map +0 -1
  621. package/dist/utils/marketDataTransform.cjs +0 -250
  622. package/dist/utils/marketDataTransform.cjs.map +0 -1
  623. package/dist/utils/marketDataTransform.d.cts.map +0 -1
  624. package/dist/utils/marketDataTransform.d.mts +0 -71
  625. package/dist/utils/marketDataTransform.d.mts.map +0 -1
  626. package/dist/utils/marketDataTransform.mjs.map +0 -1
  627. package/dist/utils/marketSearch.cjs +0 -111
  628. package/dist/utils/marketSearch.cjs.map +0 -1
  629. package/dist/utils/marketSearch.d.cts.map +0 -1
  630. package/dist/utils/marketSearch.d.mts +0 -48
  631. package/dist/utils/marketSearch.d.mts.map +0 -1
  632. package/dist/utils/marketSearch.mjs.map +0 -1
  633. package/dist/utils/marketUtils.cjs +0 -266
  634. package/dist/utils/marketUtils.cjs.map +0 -1
  635. package/dist/utils/marketUtils.d.cts.map +0 -1
  636. package/dist/utils/marketUtils.d.mts +0 -73
  637. package/dist/utils/marketUtils.d.mts.map +0 -1
  638. package/dist/utils/marketUtils.mjs.map +0 -1
  639. package/dist/utils/myxAdapter.cjs +0 -569
  640. package/dist/utils/myxAdapter.cjs.map +0 -1
  641. package/dist/utils/myxAdapter.d.cts.map +0 -1
  642. package/dist/utils/myxAdapter.d.mts +0 -168
  643. package/dist/utils/myxAdapter.d.mts.map +0 -1
  644. package/dist/utils/myxAdapter.mjs.map +0 -1
  645. package/dist/utils/orderCalculations.cjs +0 -823
  646. package/dist/utils/orderCalculations.cjs.map +0 -1
  647. package/dist/utils/orderCalculations.d.cts.map +0 -1
  648. package/dist/utils/orderCalculations.d.mts +0 -298
  649. package/dist/utils/orderCalculations.d.mts.map +0 -1
  650. package/dist/utils/orderCalculations.mjs.map +0 -1
  651. package/dist/utils/orderTypes.cjs +0 -301
  652. package/dist/utils/orderTypes.cjs.map +0 -1
  653. package/dist/utils/orderTypes.d.cts +0 -166
  654. package/dist/utils/orderTypes.d.cts.map +0 -1
  655. package/dist/utils/orderTypes.d.mts.map +0 -1
  656. package/dist/utils/orderTypes.mjs.map +0 -1
  657. package/dist/utils/perpsConnectionAttemptContext.cjs +0 -20
  658. package/dist/utils/perpsConnectionAttemptContext.cjs.map +0 -1
  659. package/dist/utils/perpsConnectionAttemptContext.d.cts +0 -7
  660. package/dist/utils/perpsConnectionAttemptContext.d.cts.map +0 -1
  661. package/dist/utils/perpsConnectionAttemptContext.d.mts.map +0 -1
  662. package/dist/utils/perpsConnectionAttemptContext.mjs.map +0 -1
  663. package/dist/utils/perpsDiskPersistence.cjs +0 -259
  664. package/dist/utils/perpsDiskPersistence.cjs.map +0 -1
  665. package/dist/utils/perpsDiskPersistence.d.cts.map +0 -1
  666. package/dist/utils/perpsDiskPersistence.d.mts +0 -112
  667. package/dist/utils/perpsDiskPersistence.d.mts.map +0 -1
  668. package/dist/utils/perpsDiskPersistence.mjs.map +0 -1
  669. package/dist/utils/perpsFormatters.cjs +0 -509
  670. package/dist/utils/perpsFormatters.cjs.map +0 -1
  671. package/dist/utils/perpsFormatters.d.cts.map +0 -1
  672. package/dist/utils/perpsFormatters.d.mts +0 -204
  673. package/dist/utils/perpsFormatters.d.mts.map +0 -1
  674. package/dist/utils/perpsFormatters.mjs.map +0 -1
  675. package/dist/utils/rewardsUtils.cjs +0 -98
  676. package/dist/utils/rewardsUtils.cjs.map +0 -1
  677. package/dist/utils/rewardsUtils.d.cts.map +0 -1
  678. package/dist/utils/rewardsUtils.d.mts +0 -33
  679. package/dist/utils/rewardsUtils.d.mts.map +0 -1
  680. package/dist/utils/rewardsUtils.mjs.map +0 -1
  681. package/dist/utils/significantFigures.cjs +0 -88
  682. package/dist/utils/significantFigures.cjs.map +0 -1
  683. package/dist/utils/significantFigures.d.cts.map +0 -1
  684. package/dist/utils/significantFigures.d.mts +0 -25
  685. package/dist/utils/significantFigures.d.mts.map +0 -1
  686. package/dist/utils/significantFigures.mjs.map +0 -1
  687. package/dist/utils/sortMarkets.cjs +0 -93
  688. package/dist/utils/sortMarkets.cjs.map +0 -1
  689. package/dist/utils/sortMarkets.d.cts.map +0 -1
  690. package/dist/utils/sortMarkets.d.mts +0 -25
  691. package/dist/utils/sortMarkets.d.mts.map +0 -1
  692. package/dist/utils/sortMarkets.mjs.map +0 -1
  693. package/dist/utils/standaloneInfoClient.cjs +0 -70
  694. package/dist/utils/standaloneInfoClient.cjs.map +0 -1
  695. package/dist/utils/standaloneInfoClient.d.cts.map +0 -1
  696. package/dist/utils/standaloneInfoClient.d.mts +0 -37
  697. package/dist/utils/standaloneInfoClient.d.mts.map +0 -1
  698. package/dist/utils/standaloneInfoClient.mjs.map +0 -1
  699. package/dist/utils/stringParseUtils.cjs +0 -34
  700. package/dist/utils/stringParseUtils.cjs.map +0 -1
  701. package/dist/utils/stringParseUtils.d.cts.map +0 -1
  702. package/dist/utils/stringParseUtils.d.mts +0 -11
  703. package/dist/utils/stringParseUtils.d.mts.map +0 -1
  704. package/dist/utils/stringParseUtils.mjs.map +0 -1
  705. package/dist/utils/transferData.cjs +0 -33
  706. package/dist/utils/transferData.cjs.map +0 -1
  707. package/dist/utils/transferData.d.cts.map +0 -1
  708. package/dist/utils/transferData.d.mts +0 -9
  709. package/dist/utils/transferData.d.mts.map +0 -1
  710. package/dist/utils/transferData.mjs.map +0 -1
  711. package/dist/utils/wait.cjs +0 -6
  712. package/dist/utils/wait.cjs.map +0 -1
  713. package/dist/utils/wait.d.cts.map +0 -1
  714. package/dist/utils/wait.d.mts +0 -2
  715. package/dist/utils/wait.d.mts.map +0 -1
  716. package/dist/utils/wait.mjs.map +0 -1
@@ -1,171 +0,0 @@
1
- /**
2
- * SubscriptionMultiplexer - Manages WebSocket subscriptions across multiple providers
3
- *
4
- * Responsibilities:
5
- * - Manage subscriptions to multiple providers simultaneously
6
- * - Tag all updates with providerId so UI can differentiate sources
7
- * - Support aggregation modes: 'merge' (all prices) or 'best_price' (best price per symbol)
8
- * - Cache latest updates per provider per symbol for aggregation
9
- */
10
- import type { PerpsProviderType, PerpsProvider, PerpsLogger, PriceUpdate, Position, OrderFill, Order, AccountState } from "../types/index.mjs";
11
- /**
12
- * Options for constructing SubscriptionMultiplexer
13
- */
14
- export type SubscriptionMultiplexerOptions = {
15
- /** Optional logger for error reporting (e.g., Sentry) */
16
- logger?: PerpsLogger;
17
- };
18
- /**
19
- * Aggregation mode for price subscriptions
20
- */
21
- export type PriceAggregationMode = 'merge' | 'best_price';
22
- /**
23
- * Parameters for multiplexed price subscriptions
24
- */
25
- export type MultiplexedPricesParams = {
26
- /** Symbols to subscribe to */
27
- symbols: string[];
28
- /** Provider instances to subscribe through */
29
- providers: [PerpsProviderType, PerpsProvider][];
30
- /** Callback to receive aggregated price updates */
31
- callback: (prices: PriceUpdate[]) => void;
32
- /** Aggregation mode: 'merge' returns all prices, 'best_price' returns best per symbol */
33
- aggregationMode?: PriceAggregationMode;
34
- /** Optional throttle in milliseconds */
35
- throttleMs?: number;
36
- /** Include order book data */
37
- includeOrderBook?: boolean;
38
- /** Include market data (funding, OI, volume) */
39
- includeMarketData?: boolean;
40
- };
41
- /**
42
- * Parameters for multiplexed position subscriptions
43
- */
44
- export type MultiplexedPositionsParams = {
45
- /** Provider instances to subscribe through */
46
- providers: [PerpsProviderType, PerpsProvider][];
47
- /** Callback to receive aggregated position updates */
48
- callback: (positions: Position[]) => void;
49
- };
50
- /**
51
- * Parameters for multiplexed order fill subscriptions
52
- */
53
- export type MultiplexedOrderFillsParams = {
54
- /** Provider instances to subscribe through */
55
- providers: [PerpsProviderType, PerpsProvider][];
56
- /** Callback to receive aggregated order fill updates */
57
- callback: (fills: OrderFill[], isSnapshot?: boolean) => void;
58
- };
59
- /**
60
- * Parameters for multiplexed order subscriptions
61
- */
62
- export type MultiplexedOrdersParams = {
63
- /** Provider instances to subscribe through */
64
- providers: [PerpsProviderType, PerpsProvider][];
65
- /** Callback to receive aggregated order updates */
66
- callback: (orders: Order[]) => void;
67
- };
68
- /**
69
- * Parameters for multiplexed account subscriptions
70
- */
71
- export type MultiplexedAccountParams = {
72
- /** Provider instances to subscribe through */
73
- providers: [PerpsProviderType, PerpsProvider][];
74
- /** Callback to receive account updates (one per provider) */
75
- callback: (accounts: AccountState[]) => void;
76
- };
77
- /**
78
- * SubscriptionMultiplexer manages real-time data subscriptions across
79
- * multiple perps providers.
80
- *
81
- * Key features:
82
- * - Subscribes to all providers simultaneously
83
- * - Tags all updates with source providerId
84
- * - Caches latest values for aggregation
85
- * - Supports different aggregation modes for prices
86
- *
87
- * @example
88
- * ```typescript
89
- * const mux = new SubscriptionMultiplexer();
90
- *
91
- * const unsubscribe = mux.subscribeToPrices({
92
- * symbols: ['BTC', 'ETH'],
93
- * providers: [
94
- * ['hyperliquid', hlProvider],
95
- * ['myx', myxProvider],
96
- * ],
97
- * callback: (prices) => {
98
- * // prices have providerId injected
99
- * prices.forEach(p => console.log(`${p.providerId}: ${p.symbol} = ${p.price}`));
100
- * },
101
- * aggregationMode: 'merge',
102
- * });
103
- *
104
- * // Later: clean up
105
- * unsubscribe();
106
- * ```
107
- */
108
- export declare class SubscriptionMultiplexer {
109
- #private;
110
- /**
111
- * Create a new SubscriptionMultiplexer.
112
- *
113
- * @param options - Optional configuration including logger for error reporting
114
- */
115
- constructor(options?: SubscriptionMultiplexerOptions);
116
- /**
117
- * Subscribe to price updates from multiple providers.
118
- *
119
- * @param params - Subscription parameters
120
- * @returns Unsubscribe function
121
- */
122
- subscribeToPrices(params: MultiplexedPricesParams): () => void;
123
- /**
124
- * Subscribe to position updates from multiple providers.
125
- *
126
- * @param params - Subscription parameters
127
- * @returns Unsubscribe function
128
- */
129
- subscribeToPositions(params: MultiplexedPositionsParams): () => void;
130
- /**
131
- * Subscribe to order fill updates from multiple providers.
132
- *
133
- * @param params - Subscription parameters
134
- * @returns Unsubscribe function
135
- */
136
- subscribeToOrderFills(params: MultiplexedOrderFillsParams): () => void;
137
- /**
138
- * Subscribe to order updates from multiple providers.
139
- *
140
- * @param params - Subscription parameters
141
- * @returns Unsubscribe function
142
- */
143
- subscribeToOrders(params: MultiplexedOrdersParams): () => void;
144
- /**
145
- * Subscribe to account updates from multiple providers.
146
- *
147
- * @param params - Subscription parameters
148
- * @returns Unsubscribe function
149
- */
150
- subscribeToAccount(params: MultiplexedAccountParams): () => void;
151
- /**
152
- * Clear all cached data.
153
- */
154
- clearCache(): void;
155
- /**
156
- * Get cached price for a symbol from a specific provider.
157
- *
158
- * @param symbol - Market symbol
159
- * @param providerId - Provider ID
160
- * @returns Cached price update or undefined
161
- */
162
- getCachedPrice(symbol: string, providerId: PerpsProviderType): PriceUpdate | undefined;
163
- /**
164
- * Get all cached prices for a symbol.
165
- *
166
- * @param symbol - Market symbol
167
- * @returns Map of provider ID to price update
168
- */
169
- getAllCachedPricesForSymbol(symbol: string): Map<PerpsProviderType, PriceUpdate> | undefined;
170
- }
171
- //# sourceMappingURL=SubscriptionMultiplexer.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubscriptionMultiplexer.d.mts","sourceRoot":"","sources":["../../src/aggregation/SubscriptionMultiplexer.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubscriptionMultiplexer.mjs","sourceRoot":"","sources":["../../src/aggregation/SubscriptionMultiplexer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SubscriptionMultiplexer - Manages WebSocket subscriptions across multiple providers\n *\n * Responsibilities:\n * - Manage subscriptions to multiple providers simultaneously\n * - Tag all updates with providerId so UI can differentiate sources\n * - Support aggregation modes: 'merge' (all prices) or 'best_price' (best price per symbol)\n * - Cache latest updates per provider per symbol for aggregation\n */\n\nimport { PERPS_CONSTANTS } from '../constants/perpsConfig.js';\nimport type {\n PerpsProviderType,\n PerpsProvider,\n PerpsLogger,\n PriceUpdate,\n Position,\n OrderFill,\n Order,\n AccountState,\n SubscribePricesParams,\n SubscribePositionsParams,\n SubscribeOrderFillsParams,\n SubscribeOrdersParams,\n SubscribeAccountParams,\n} from '../types/index.js';\nimport { ensureError } from '../utils/errorUtils.js';\n\n/**\n * Options for constructing SubscriptionMultiplexer\n */\nexport type SubscriptionMultiplexerOptions = {\n /** Optional logger for error reporting (e.g., Sentry) */\n logger?: PerpsLogger;\n};\n\n/**\n * Aggregation mode for price subscriptions\n */\nexport type PriceAggregationMode = 'merge' | 'best_price';\n\n/**\n * Parameters for multiplexed price subscriptions\n */\nexport type MultiplexedPricesParams = {\n /** Symbols to subscribe to */\n symbols: string[];\n /** Provider instances to subscribe through */\n providers: [PerpsProviderType, PerpsProvider][];\n /** Callback to receive aggregated price updates */\n callback: (prices: PriceUpdate[]) => void;\n /** Aggregation mode: 'merge' returns all prices, 'best_price' returns best per symbol */\n aggregationMode?: PriceAggregationMode;\n /** Optional throttle in milliseconds */\n throttleMs?: number;\n /** Include order book data */\n includeOrderBook?: boolean;\n /** Include market data (funding, OI, volume) */\n includeMarketData?: boolean;\n};\n\n/**\n * Parameters for multiplexed position subscriptions\n */\nexport type MultiplexedPositionsParams = {\n /** Provider instances to subscribe through */\n providers: [PerpsProviderType, PerpsProvider][];\n /** Callback to receive aggregated position updates */\n callback: (positions: Position[]) => void;\n};\n\n/**\n * Parameters for multiplexed order fill subscriptions\n */\nexport type MultiplexedOrderFillsParams = {\n /** Provider instances to subscribe through */\n providers: [PerpsProviderType, PerpsProvider][];\n /** Callback to receive aggregated order fill updates */\n callback: (fills: OrderFill[], isSnapshot?: boolean) => void;\n};\n\n/**\n * Parameters for multiplexed order subscriptions\n */\nexport type MultiplexedOrdersParams = {\n /** Provider instances to subscribe through */\n providers: [PerpsProviderType, PerpsProvider][];\n /** Callback to receive aggregated order updates */\n callback: (orders: Order[]) => void;\n};\n\n/**\n * Parameters for multiplexed account subscriptions\n */\nexport type MultiplexedAccountParams = {\n /** Provider instances to subscribe through */\n providers: [PerpsProviderType, PerpsProvider][];\n /** Callback to receive account updates (one per provider) */\n callback: (accounts: AccountState[]) => void;\n};\n\n/**\n * SubscriptionMultiplexer manages real-time data subscriptions across\n * multiple perps providers.\n *\n * Key features:\n * - Subscribes to all providers simultaneously\n * - Tags all updates with source providerId\n * - Caches latest values for aggregation\n * - Supports different aggregation modes for prices\n *\n * @example\n * ```typescript\n * const mux = new SubscriptionMultiplexer();\n *\n * const unsubscribe = mux.subscribeToPrices({\n * symbols: ['BTC', 'ETH'],\n * providers: [\n * ['hyperliquid', hlProvider],\n * ['myx', myxProvider],\n * ],\n * callback: (prices) => {\n * // prices have providerId injected\n * prices.forEach(p => console.log(`${p.providerId}: ${p.symbol} = ${p.price}`));\n * },\n * aggregationMode: 'merge',\n * });\n *\n * // Later: clean up\n * unsubscribe();\n * ```\n */\nexport class SubscriptionMultiplexer {\n /**\n * Optional logger for error reporting\n */\n readonly #logger?: PerpsLogger;\n\n /**\n * Cache of latest prices per symbol per provider\n * Map<symbol, Map<providerId, PriceUpdate>>\n */\n readonly #priceCache: Map<string, Map<PerpsProviderType, PriceUpdate>> =\n new Map();\n\n /**\n * Cache of latest positions per provider\n * Map<providerId, Position[]>\n */\n readonly #positionCache: Map<PerpsProviderType, Position[]> = new Map();\n\n /**\n * Cache of latest orders per provider\n * Map<providerId, Order[]>\n */\n readonly #orderCache: Map<PerpsProviderType, Order[]> = new Map();\n\n /**\n * Cache of latest account state per provider\n * Map<providerId, AccountState>\n */\n readonly #accountCache: Map<PerpsProviderType, AccountState> = new Map();\n\n /**\n * Create a new SubscriptionMultiplexer.\n *\n * @param options - Optional configuration including logger for error reporting\n */\n constructor(options?: SubscriptionMultiplexerOptions) {\n this.#logger = options?.logger;\n }\n\n /**\n * Subscribe to price updates from multiple providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToPrices(params: MultiplexedPricesParams): () => void {\n const {\n symbols,\n providers,\n callback,\n aggregationMode = 'merge',\n throttleMs,\n includeOrderBook,\n includeMarketData,\n } = params;\n\n const unsubscribers: (() => void)[] = [];\n\n // Subscribe to each provider with defensive error handling\n for (const [providerId, provider] of providers) {\n try {\n const subscribeParams: SubscribePricesParams = {\n symbols,\n callback: (updates) => {\n // Tag and cache each update\n updates.forEach((update) => {\n const taggedUpdate: PriceUpdate = { ...update, providerId };\n\n // Initialize symbol cache if needed\n if (!this.#priceCache.has(update.symbol)) {\n this.#priceCache.set(update.symbol, new Map());\n }\n const symbolCache = this.#priceCache.get(update.symbol);\n if (symbolCache) {\n symbolCache.set(providerId, taggedUpdate);\n }\n });\n\n // Aggregate and emit based on mode\n const aggregated = this.#aggregatePrices(symbols, aggregationMode);\n callback(aggregated);\n },\n throttleMs,\n includeOrderBook,\n includeMarketData,\n };\n\n const unsub = provider.subscribeToPrices(subscribeParams);\n unsubscribers.push(unsub);\n } catch (error) {\n // Log to Sentry before cleanup\n this.#logger?.error(\n ensureError(error, 'SubscriptionMultiplexer.subscribeToPrices'),\n {\n tags: {\n feature: PERPS_CONSTANTS.FeatureName,\n provider: providerId,\n method: 'subscribeToPrices',\n },\n context: {\n name: 'SubscriptionMultiplexer',\n data: { subscribedCount: unsubscribers.length },\n },\n },\n );\n\n // Clean up any subscriptions created before the failure\n unsubscribers.forEach((unsub) => unsub());\n throw error;\n }\n }\n\n // Return combined unsubscribe function\n return () => {\n unsubscribers.forEach((unsub) => unsub());\n // Optionally clear cache for these symbols\n symbols.forEach((symbol) => {\n this.#priceCache.delete(symbol);\n });\n };\n }\n\n /**\n * Subscribe to position updates from multiple providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToPositions(params: MultiplexedPositionsParams): () => void {\n const { providers, callback } = params;\n const unsubscribers: (() => void)[] = [];\n\n for (const [providerId, provider] of providers) {\n try {\n const subscribeParams: SubscribePositionsParams = {\n callback: (positions) => {\n // Tag positions with providerId and cache\n const taggedPositions = positions.map((pos) => ({\n ...pos,\n providerId,\n }));\n this.#positionCache.set(providerId, taggedPositions);\n\n // Emit aggregated positions from all providers\n const allPositions = this.#aggregatePositions();\n callback(allPositions);\n },\n };\n\n const unsub = provider.subscribeToPositions(subscribeParams);\n unsubscribers.push(unsub);\n } catch (error) {\n this.#logger?.error(\n ensureError(error, 'SubscriptionMultiplexer.subscribeToPositions'),\n {\n tags: {\n feature: PERPS_CONSTANTS.FeatureName,\n provider: providerId,\n method: 'subscribeToPositions',\n },\n context: {\n name: 'SubscriptionMultiplexer',\n data: { subscribedCount: unsubscribers.length },\n },\n },\n );\n unsubscribers.forEach((unsub) => unsub());\n throw error;\n }\n }\n\n return () => {\n unsubscribers.forEach((unsub) => unsub());\n // Clear position cache for these providers\n providers.forEach(([providerId]) => {\n this.#positionCache.delete(providerId);\n });\n };\n }\n\n /**\n * Subscribe to order fill updates from multiple providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToOrderFills(params: MultiplexedOrderFillsParams): () => void {\n const { providers, callback } = params;\n const unsubscribers: (() => void)[] = [];\n\n for (const [providerId, provider] of providers) {\n try {\n const subscribeParams: SubscribeOrderFillsParams = {\n callback: (fills, isSnapshot) => {\n // Tag fills with providerId\n const taggedFills = fills.map((fill) => ({\n ...fill,\n providerId,\n }));\n\n // For fills, we don't aggregate - emit immediately with tags\n callback(taggedFills, isSnapshot);\n },\n };\n\n const unsub = provider.subscribeToOrderFills(subscribeParams);\n unsubscribers.push(unsub);\n } catch (error) {\n this.#logger?.error(\n ensureError(error, 'SubscriptionMultiplexer.subscribeToOrderFills'),\n {\n tags: {\n feature: PERPS_CONSTANTS.FeatureName,\n provider: providerId,\n method: 'subscribeToOrderFills',\n },\n context: {\n name: 'SubscriptionMultiplexer',\n data: { subscribedCount: unsubscribers.length },\n },\n },\n );\n unsubscribers.forEach((unsub) => unsub());\n throw error;\n }\n }\n\n return () => {\n unsubscribers.forEach((unsub) => unsub());\n };\n }\n\n /**\n * Subscribe to order updates from multiple providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToOrders(params: MultiplexedOrdersParams): () => void {\n const { providers, callback } = params;\n const unsubscribers: (() => void)[] = [];\n\n for (const [providerId, provider] of providers) {\n try {\n const subscribeParams: SubscribeOrdersParams = {\n callback: (orders) => {\n // Tag orders with providerId and cache\n const taggedOrders = orders.map((order) => ({\n ...order,\n providerId,\n }));\n this.#orderCache.set(providerId, taggedOrders);\n\n // Emit aggregated orders from all providers\n const allOrders = this.#aggregateOrders();\n callback(allOrders);\n },\n };\n\n const unsub = provider.subscribeToOrders(subscribeParams);\n unsubscribers.push(unsub);\n } catch (error) {\n this.#logger?.error(\n ensureError(error, 'SubscriptionMultiplexer.subscribeToOrders'),\n {\n tags: {\n feature: PERPS_CONSTANTS.FeatureName,\n provider: providerId,\n method: 'subscribeToOrders',\n },\n context: {\n name: 'SubscriptionMultiplexer',\n data: { subscribedCount: unsubscribers.length },\n },\n },\n );\n unsubscribers.forEach((unsub) => unsub());\n throw error;\n }\n }\n\n return () => {\n unsubscribers.forEach((unsub) => unsub());\n providers.forEach(([providerId]) => {\n this.#orderCache.delete(providerId);\n });\n };\n }\n\n /**\n * Subscribe to account updates from multiple providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToAccount(params: MultiplexedAccountParams): () => void {\n const { providers, callback } = params;\n const unsubscribers: (() => void)[] = [];\n\n for (const [providerId, provider] of providers) {\n try {\n const subscribeParams: SubscribeAccountParams = {\n callback: (account) => {\n if (account === null) {\n this.#accountCache.delete(providerId);\n } else {\n // Tag account with providerId and cache\n const taggedAccount: AccountState = {\n ...account,\n providerId,\n };\n this.#accountCache.set(providerId, taggedAccount);\n }\n\n // Emit all cached account states\n const allAccounts = Array.from(this.#accountCache.values());\n callback(allAccounts);\n },\n };\n\n const unsub = provider.subscribeToAccount(subscribeParams);\n unsubscribers.push(unsub);\n } catch (error) {\n this.#logger?.error(\n ensureError(error, 'SubscriptionMultiplexer.subscribeToAccount'),\n {\n tags: {\n feature: PERPS_CONSTANTS.FeatureName,\n provider: providerId,\n method: 'subscribeToAccount',\n },\n context: {\n name: 'SubscriptionMultiplexer',\n data: { subscribedCount: unsubscribers.length },\n },\n },\n );\n unsubscribers.forEach((unsub) => unsub());\n throw error;\n }\n }\n\n return () => {\n unsubscribers.forEach((unsub) => unsub());\n providers.forEach(([providerId]) => {\n this.#accountCache.delete(providerId);\n });\n };\n }\n\n /**\n * Aggregate cached prices based on mode.\n *\n * @param symbols - Symbols to include in result\n * @param mode - Aggregation mode\n * @returns Aggregated price updates\n */\n #aggregatePrices(\n symbols: string[],\n mode: PriceAggregationMode,\n ): PriceUpdate[] {\n const result: PriceUpdate[] = [];\n\n symbols.forEach((symbol) => {\n const providerPrices = this.#priceCache.get(symbol);\n if (!providerPrices || providerPrices.size === 0) {\n return;\n }\n\n if (mode === 'merge') {\n // Return all prices (one per provider)\n providerPrices.forEach((price) => {\n result.push(price);\n });\n } else {\n // 'best_price': Return the best price across providers\n const best = this.#findBestPrice(providerPrices);\n if (best) {\n result.push(best);\n }\n }\n });\n\n return result;\n }\n\n /**\n * Find the best price from multiple provider prices.\n * \"Best\" is defined as the price with the smallest spread.\n *\n * @param providerPrices - Map of provider prices for a symbol\n * @returns Best price update or undefined\n */\n #findBestPrice(\n providerPrices: Map<PerpsProviderType, PriceUpdate>,\n ): PriceUpdate | undefined {\n let bestPrice: PriceUpdate | undefined;\n let smallestSpread = Infinity;\n\n providerPrices.forEach((price) => {\n if (price.spread === undefined) {\n // No spread info - just use the first one\n bestPrice ??= price;\n } else {\n // If spread is available, use it to determine best\n const spreadValue = parseFloat(price.spread);\n if (!isNaN(spreadValue) && spreadValue < smallestSpread) {\n smallestSpread = spreadValue;\n bestPrice = price;\n }\n }\n });\n\n return bestPrice;\n }\n\n /**\n * Aggregate positions from all providers.\n *\n * @returns All cached positions\n */\n #aggregatePositions(): Position[] {\n const allPositions: Position[] = [];\n this.#positionCache.forEach((positions) => {\n allPositions.push(...positions);\n });\n return allPositions;\n }\n\n /**\n * Aggregate orders from all providers.\n *\n * @returns All cached orders\n */\n #aggregateOrders(): Order[] {\n const allOrders: Order[] = [];\n this.#orderCache.forEach((orders) => {\n allOrders.push(...orders);\n });\n return allOrders;\n }\n\n /**\n * Clear all cached data.\n */\n clearCache(): void {\n this.#priceCache.clear();\n this.#positionCache.clear();\n this.#orderCache.clear();\n this.#accountCache.clear();\n }\n\n /**\n * Get cached price for a symbol from a specific provider.\n *\n * @param symbol - Market symbol\n * @param providerId - Provider ID\n * @returns Cached price update or undefined\n */\n getCachedPrice(\n symbol: string,\n providerId: PerpsProviderType,\n ): PriceUpdate | undefined {\n return this.#priceCache.get(symbol)?.get(providerId);\n }\n\n /**\n * Get all cached prices for a symbol.\n *\n * @param symbol - Market symbol\n * @returns Map of provider ID to price update\n */\n getAllCachedPricesForSymbol(\n symbol: string,\n ): Map<PerpsProviderType, PriceUpdate> | undefined {\n return this.#priceCache.get(symbol);\n }\n}\n"]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SubscriptionMultiplexer = void 0;
4
- /**
5
- * Provider aggregation module exports
6
- */
7
- var SubscriptionMultiplexer_js_1 = require("./SubscriptionMultiplexer.cjs");
8
- Object.defineProperty(exports, "SubscriptionMultiplexer", { enumerable: true, get: function () { return SubscriptionMultiplexer_js_1.SubscriptionMultiplexer; } });
9
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/aggregation/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,4EAAuE;AAA9D,qIAAA,uBAAuB,OAAA","sourcesContent":["/**\n * Provider aggregation module exports\n */\nexport { SubscriptionMultiplexer } from './SubscriptionMultiplexer.js';\nexport type {\n PriceAggregationMode,\n MultiplexedPricesParams,\n MultiplexedPositionsParams,\n MultiplexedOrderFillsParams,\n MultiplexedOrdersParams,\n MultiplexedAccountParams,\n} from './SubscriptionMultiplexer.js';\n"]}
@@ -1,6 +0,0 @@
1
- /**
2
- * Provider aggregation module exports
3
- */
4
- export { SubscriptionMultiplexer } from "./SubscriptionMultiplexer.cjs";
5
- export type { PriceAggregationMode, MultiplexedPricesParams, MultiplexedPositionsParams, MultiplexedOrderFillsParams, MultiplexedOrdersParams, MultiplexedAccountParams, } from "./SubscriptionMultiplexer.cjs";
6
- //# sourceMappingURL=index.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/aggregation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,sCAAqC;AACvE,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,GACzB,sCAAqC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Provider aggregation module exports
3
- */
4
- export { SubscriptionMultiplexer } from "./SubscriptionMultiplexer.mjs";
5
- export type { PriceAggregationMode, MultiplexedPricesParams, MultiplexedPositionsParams, MultiplexedOrderFillsParams, MultiplexedOrdersParams, MultiplexedAccountParams, } from "./SubscriptionMultiplexer.mjs";
6
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/aggregation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,sCAAqC;AACvE,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,GACzB,sCAAqC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Provider aggregation module exports
3
- */
4
- export { SubscriptionMultiplexer } from "./SubscriptionMultiplexer.mjs";
5
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/aggregation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,sCAAqC","sourcesContent":["/**\n * Provider aggregation module exports\n */\nexport { SubscriptionMultiplexer } from './SubscriptionMultiplexer.js';\nexport type {\n PriceAggregationMode,\n MultiplexedPricesParams,\n MultiplexedPositionsParams,\n MultiplexedOrderFillsParams,\n MultiplexedOrdersParams,\n MultiplexedAccountParams,\n} from './SubscriptionMultiplexer.js';\n"]}
@@ -1,239 +0,0 @@
1
- "use strict";
2
- /**
3
- * Portable chart configuration constants for PerpsController
4
- * NO UI dependencies (@metamask/design-tokens, Colors, Theme)
5
- *
6
- * UI-specific exports (PERPS_CHART_CONFIG, CHART_INTERVALS, TIME_DURATIONS,
7
- * getCandlestickColors) remain in the outer constants/chartConfig.ts
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.calculateCandleCount = exports.getDefaultCandlePeriodForDuration = exports.getCandlePeriodsForDuration = exports.DEFAULT_CANDLE_PERIOD = exports.CANDLE_PERIODS = exports.DURATION_CANDLE_PERIODS = exports.VISIBLE_CANDLE_COUNT_CONFIG = exports.MAX_CANDLE_COUNT = exports.ChartInterval = exports.TimeDuration = exports.CandlePeriod = void 0;
11
- /**
12
- * Enum for available candle periods
13
- * Provides type safety and prevents typos when referencing candle periods
14
- */
15
- var CandlePeriod;
16
- (function (CandlePeriod) {
17
- CandlePeriod["OneMinute"] = "1m";
18
- CandlePeriod["ThreeMinutes"] = "3m";
19
- CandlePeriod["FiveMinutes"] = "5m";
20
- CandlePeriod["FifteenMinutes"] = "15m";
21
- CandlePeriod["ThirtyMinutes"] = "30m";
22
- CandlePeriod["OneHour"] = "1h";
23
- CandlePeriod["TwoHours"] = "2h";
24
- CandlePeriod["FourHours"] = "4h";
25
- CandlePeriod["EightHours"] = "8h";
26
- CandlePeriod["TwelveHours"] = "12h";
27
- CandlePeriod["OneDay"] = "1d";
28
- CandlePeriod["ThreeDays"] = "3d";
29
- CandlePeriod["OneWeek"] = "1w";
30
- CandlePeriod["OneMonth"] = "1M";
31
- })(CandlePeriod || (exports.CandlePeriod = CandlePeriod = {}));
32
- /**
33
- * Enum for available time durations
34
- * Provides type safety and prevents typos when referencing durations
35
- */
36
- var TimeDuration;
37
- (function (TimeDuration) {
38
- TimeDuration["OneHour"] = "1hr";
39
- TimeDuration["OneDay"] = "1d";
40
- TimeDuration["OneWeek"] = "1w";
41
- TimeDuration["OneMonth"] = "1m";
42
- TimeDuration["YearToDate"] = "ytd";
43
- TimeDuration["Max"] = "max";
44
- })(TimeDuration || (exports.TimeDuration = TimeDuration = {}));
45
- /**
46
- * Enum for chart intervals (legacy support)
47
- * Note: Some intervals overlap with CandlePeriod but serve different purposes
48
- */
49
- var ChartInterval;
50
- (function (ChartInterval) {
51
- ChartInterval["OneMinute"] = "1m";
52
- ChartInterval["FiveMinutes"] = "5m";
53
- ChartInterval["FifteenMinutes"] = "15m";
54
- ChartInterval["ThirtyMinutes"] = "30m";
55
- ChartInterval["OneHour"] = "1h";
56
- ChartInterval["TwoHours"] = "2h";
57
- ChartInterval["FourHours"] = "4h";
58
- ChartInterval["EightHours"] = "8h";
59
- })(ChartInterval || (exports.ChartInterval = ChartInterval = {}));
60
- /**
61
- * Maximum number of candles to load in memory
62
- * Extracted from PERPS_CHART_CONFIG.CANDLE_COUNT.TOTAL for portability
63
- */
64
- exports.MAX_CANDLE_COUNT = 500;
65
- /**
66
- * Bounds and default for the user-controlled number of visible candles.
67
- *
68
- * This preference is shared by Lite and Pro charts. The maximum is lower than
69
- * MAX_CANDLE_COUNT because the latter controls fetched history, not viewport
70
- * density.
71
- */
72
- exports.VISIBLE_CANDLE_COUNT_CONFIG = {
73
- Min: 10,
74
- Default: 30,
75
- Max: 250,
76
- };
77
- /**
78
- * Available candle periods mapped to each time duration
79
- * This ensures users only see sensible candle periods for each duration
80
- * and keeps the chart readable on mobile screens (target: ~20-100 candles)
81
- */
82
- exports.DURATION_CANDLE_PERIODS = {
83
- [TimeDuration.OneHour]: {
84
- periods: [
85
- { label: '1min', value: CandlePeriod.OneMinute }, // 60 candles
86
- { label: '3min', value: CandlePeriod.ThreeMinutes }, // 20 candles
87
- { label: '5min', value: CandlePeriod.FiveMinutes }, // 12 candles
88
- { label: '15min', value: CandlePeriod.FifteenMinutes }, // 4 candles
89
- ],
90
- default: CandlePeriod.OneMinute, // 1-minute candles for development/testing
91
- },
92
- [TimeDuration.OneDay]: {
93
- periods: [
94
- { label: '15min', value: CandlePeriod.FifteenMinutes }, // 96 candles
95
- { label: '1h', value: CandlePeriod.OneHour }, // 24 candles
96
- { label: '2h', value: CandlePeriod.TwoHours }, // 12 candles
97
- { label: '4h', value: CandlePeriod.FourHours }, // 6 candles
98
- ],
99
- default: CandlePeriod.OneHour, // Good balance for daily view
100
- },
101
- [TimeDuration.OneWeek]: {
102
- periods: [
103
- { label: '1h', value: CandlePeriod.OneHour }, // 168 candles (bit high, but acceptable)
104
- { label: '2h', value: CandlePeriod.TwoHours }, // 84 candles
105
- { label: '4h', value: CandlePeriod.FourHours }, // 42 candles
106
- { label: '8h', value: CandlePeriod.EightHours }, // 21 candles
107
- { label: '1D', value: CandlePeriod.OneDay }, // 7 candles
108
- ],
109
- default: CandlePeriod.FourHours, // Good detail for weekly view
110
- },
111
- [TimeDuration.OneMonth]: {
112
- periods: [
113
- { label: '8h', value: CandlePeriod.EightHours }, // 90 candles (30 days * 3 per day)
114
- { label: '12h', value: CandlePeriod.TwelveHours }, // 60 candles (30 days * 2 per day)
115
- { label: '1D', value: CandlePeriod.OneDay }, // 30 candles
116
- { label: '1W', value: CandlePeriod.OneWeek }, // ~4 candles
117
- ],
118
- default: CandlePeriod.OneDay, // Daily candles for monthly view
119
- },
120
- [TimeDuration.YearToDate]: {
121
- periods: [
122
- { label: '1D', value: CandlePeriod.OneDay }, // ~365 candles (will be capped)
123
- { label: '1W', value: CandlePeriod.OneWeek }, // ~52 candles
124
- ],
125
- default: CandlePeriod.OneWeek, // Weekly candles for yearly view
126
- },
127
- [TimeDuration.Max]: {
128
- periods: [
129
- { label: '1W', value: CandlePeriod.OneWeek }, // ~104 candles (2 years)
130
- ],
131
- default: CandlePeriod.OneWeek, // Only weekly makes sense for max view
132
- },
133
- };
134
- exports.CANDLE_PERIODS = [
135
- { label: '1m', value: CandlePeriod.OneMinute },
136
- { label: '3m', value: CandlePeriod.ThreeMinutes },
137
- { label: '5m', value: CandlePeriod.FiveMinutes },
138
- { label: '15m', value: CandlePeriod.FifteenMinutes },
139
- { label: '30m', value: CandlePeriod.ThirtyMinutes },
140
- { label: '1h', value: CandlePeriod.OneHour },
141
- { label: '2h', value: CandlePeriod.TwoHours },
142
- { label: '4h', value: CandlePeriod.FourHours },
143
- { label: '8h', value: CandlePeriod.EightHours },
144
- { label: '12h', value: CandlePeriod.TwelveHours },
145
- { label: '1d', value: CandlePeriod.OneDay },
146
- { label: '3d', value: CandlePeriod.ThreeDays },
147
- { label: '7d', value: CandlePeriod.OneWeek },
148
- ];
149
- exports.DEFAULT_CANDLE_PERIOD = CandlePeriod.FifteenMinutes;
150
- /**
151
- * Get available candle periods for a specific duration
152
- *
153
- * @param duration - The time duration to retrieve candle periods for.
154
- * @returns The list of candle period options available for the given duration.
155
- */
156
- const getCandlePeriodsForDuration = (duration) => {
157
- const periods = exports.DURATION_CANDLE_PERIODS[duration]?.periods || [];
158
- return periods;
159
- };
160
- exports.getCandlePeriodsForDuration = getCandlePeriodsForDuration;
161
- /**
162
- * Get the default candle period for a specific duration
163
- *
164
- * @param duration - The time duration to retrieve the default candle period for.
165
- * @returns The default candle period for the given duration.
166
- */
167
- const getDefaultCandlePeriodForDuration = (duration) => exports.DURATION_CANDLE_PERIODS[duration]?.default ||
168
- CandlePeriod.OneHour;
169
- exports.getDefaultCandlePeriodForDuration = getDefaultCandlePeriodForDuration;
170
- /**
171
- * Calculate the number of candles to fetch based on duration and candle period
172
- *
173
- * @param duration - The time duration for the chart display.
174
- * @param candlePeriod - The candle period interval.
175
- * @returns The number of candles to fetch, capped at MAX_CANDLE_COUNT.
176
- */
177
- const calculateCandleCount = (duration, candlePeriod) => {
178
- // Convert candle period to minutes
179
- const periodInMinutes = (() => {
180
- switch (candlePeriod) {
181
- case CandlePeriod.OneMinute:
182
- return 1;
183
- case CandlePeriod.ThreeMinutes:
184
- return 3;
185
- case CandlePeriod.FiveMinutes:
186
- return 5;
187
- case CandlePeriod.FifteenMinutes:
188
- return 15;
189
- case CandlePeriod.ThirtyMinutes:
190
- return 30;
191
- case CandlePeriod.OneHour:
192
- return 60;
193
- case CandlePeriod.TwoHours:
194
- return 120;
195
- case CandlePeriod.FourHours:
196
- return 240;
197
- case CandlePeriod.EightHours:
198
- return 480;
199
- case CandlePeriod.TwelveHours:
200
- return 720;
201
- case CandlePeriod.OneDay:
202
- return 1440; // 24 * 60
203
- case CandlePeriod.ThreeDays:
204
- return 4320; // 3 * 24 * 60
205
- case CandlePeriod.OneWeek:
206
- return 10080; // 7 * 24 * 60
207
- case CandlePeriod.OneMonth:
208
- return 43200; // 30 * 24 * 60 (approximate)
209
- default:
210
- return 60; // Default to 1h
211
- }
212
- })();
213
- // Convert duration to total minutes needed
214
- const durationInMinutes = (() => {
215
- switch (duration) {
216
- case TimeDuration.OneHour:
217
- return 60; // 1 hour
218
- case TimeDuration.OneDay:
219
- return 60 * 24; // 1 day
220
- case TimeDuration.OneWeek:
221
- return 60 * 24 * 7; // 1 week
222
- case TimeDuration.OneMonth:
223
- return 60 * 24 * 30; // 1 month (30 days)
224
- case TimeDuration.YearToDate:
225
- return 60 * 24 * 365; // Year to date (365 days max)
226
- case TimeDuration.Max:
227
- return 60 * 24 * 365 * 2; // Max (2 years)
228
- default:
229
- return 60 * 24; // Default to 1 day
230
- }
231
- })();
232
- // Calculate number of candles needed
233
- const candleCount = Math.ceil(durationInMinutes / periodInMinutes);
234
- // Cap at MAX_CANDLE_COUNT candles max for memory management
235
- // Allow minimum of 10 candles for basic functionality
236
- return Math.min(Math.max(candleCount, 10), exports.MAX_CANDLE_COUNT);
237
- };
238
- exports.calculateCandleCount = calculateCandleCount;
239
- //# sourceMappingURL=chartConfig.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chartConfig.cjs","sourceRoot":"","sources":["../../src/constants/chartConfig.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Portable chart configuration constants for PerpsController\n * NO UI dependencies (@metamask/design-tokens, Colors, Theme)\n *\n * UI-specific exports (PERPS_CHART_CONFIG, CHART_INTERVALS, TIME_DURATIONS,\n * getCandlestickColors) remain in the outer constants/chartConfig.ts\n */\n\n/**\n * Enum for available candle periods\n * Provides type safety and prevents typos when referencing candle periods\n */\nexport enum CandlePeriod {\n OneMinute = '1m',\n ThreeMinutes = '3m',\n FiveMinutes = '5m',\n FifteenMinutes = '15m',\n ThirtyMinutes = '30m',\n OneHour = '1h',\n TwoHours = '2h',\n FourHours = '4h',\n EightHours = '8h',\n TwelveHours = '12h',\n OneDay = '1d',\n ThreeDays = '3d',\n OneWeek = '1w',\n OneMonth = '1M',\n}\n\n/**\n * Enum for available time durations\n * Provides type safety and prevents typos when referencing durations\n */\nexport enum TimeDuration {\n OneHour = '1hr',\n OneDay = '1d',\n OneWeek = '1w',\n OneMonth = '1m',\n YearToDate = 'ytd',\n Max = 'max',\n}\n\n/**\n * Enum for chart intervals (legacy support)\n * Note: Some intervals overlap with CandlePeriod but serve different purposes\n */\nexport enum ChartInterval {\n OneMinute = '1m',\n FiveMinutes = '5m',\n FifteenMinutes = '15m',\n ThirtyMinutes = '30m',\n OneHour = '1h',\n TwoHours = '2h',\n FourHours = '4h',\n EightHours = '8h',\n}\n\n/**\n * Maximum number of candles to load in memory\n * Extracted from PERPS_CHART_CONFIG.CANDLE_COUNT.TOTAL for portability\n */\nexport const MAX_CANDLE_COUNT = 500;\n\n/**\n * Bounds and default for the user-controlled number of visible candles.\n *\n * This preference is shared by Lite and Pro charts. The maximum is lower than\n * MAX_CANDLE_COUNT because the latter controls fetched history, not viewport\n * density.\n */\nexport const VISIBLE_CANDLE_COUNT_CONFIG = {\n Min: 10,\n Default: 30,\n Max: 250,\n} as const;\n\n/**\n * Available candle periods mapped to each time duration\n * This ensures users only see sensible candle periods for each duration\n * and keeps the chart readable on mobile screens (target: ~20-100 candles)\n */\nexport const DURATION_CANDLE_PERIODS = {\n [TimeDuration.OneHour]: {\n periods: [\n { label: '1min', value: CandlePeriod.OneMinute }, // 60 candles\n { label: '3min', value: CandlePeriod.ThreeMinutes }, // 20 candles\n { label: '5min', value: CandlePeriod.FiveMinutes }, // 12 candles\n { label: '15min', value: CandlePeriod.FifteenMinutes }, // 4 candles\n ],\n default: CandlePeriod.OneMinute, // 1-minute candles for development/testing\n },\n [TimeDuration.OneDay]: {\n periods: [\n { label: '15min', value: CandlePeriod.FifteenMinutes }, // 96 candles\n { label: '1h', value: CandlePeriod.OneHour }, // 24 candles\n { label: '2h', value: CandlePeriod.TwoHours }, // 12 candles\n { label: '4h', value: CandlePeriod.FourHours }, // 6 candles\n ],\n default: CandlePeriod.OneHour, // Good balance for daily view\n },\n [TimeDuration.OneWeek]: {\n periods: [\n { label: '1h', value: CandlePeriod.OneHour }, // 168 candles (bit high, but acceptable)\n { label: '2h', value: CandlePeriod.TwoHours }, // 84 candles\n { label: '4h', value: CandlePeriod.FourHours }, // 42 candles\n { label: '8h', value: CandlePeriod.EightHours }, // 21 candles\n { label: '1D', value: CandlePeriod.OneDay }, // 7 candles\n ],\n default: CandlePeriod.FourHours, // Good detail for weekly view\n },\n [TimeDuration.OneMonth]: {\n periods: [\n { label: '8h', value: CandlePeriod.EightHours }, // 90 candles (30 days * 3 per day)\n { label: '12h', value: CandlePeriod.TwelveHours }, // 60 candles (30 days * 2 per day)\n { label: '1D', value: CandlePeriod.OneDay }, // 30 candles\n { label: '1W', value: CandlePeriod.OneWeek }, // ~4 candles\n ],\n default: CandlePeriod.OneDay, // Daily candles for monthly view\n },\n [TimeDuration.YearToDate]: {\n periods: [\n { label: '1D', value: CandlePeriod.OneDay }, // ~365 candles (will be capped)\n { label: '1W', value: CandlePeriod.OneWeek }, // ~52 candles\n ],\n default: CandlePeriod.OneWeek, // Weekly candles for yearly view\n },\n [TimeDuration.Max]: {\n periods: [\n { label: '1W', value: CandlePeriod.OneWeek }, // ~104 candles (2 years)\n ],\n default: CandlePeriod.OneWeek, // Only weekly makes sense for max view\n },\n} as const;\n\nexport const CANDLE_PERIODS = [\n { label: '1m', value: CandlePeriod.OneMinute },\n { label: '3m', value: CandlePeriod.ThreeMinutes },\n { label: '5m', value: CandlePeriod.FiveMinutes },\n { label: '15m', value: CandlePeriod.FifteenMinutes },\n { label: '30m', value: CandlePeriod.ThirtyMinutes },\n { label: '1h', value: CandlePeriod.OneHour },\n { label: '2h', value: CandlePeriod.TwoHours },\n { label: '4h', value: CandlePeriod.FourHours },\n { label: '8h', value: CandlePeriod.EightHours },\n { label: '12h', value: CandlePeriod.TwelveHours },\n { label: '1d', value: CandlePeriod.OneDay },\n { label: '3d', value: CandlePeriod.ThreeDays },\n { label: '7d', value: CandlePeriod.OneWeek },\n] as const;\n\nexport const DEFAULT_CANDLE_PERIOD = CandlePeriod.FifteenMinutes;\n\n/**\n * Get available candle periods for a specific duration\n *\n * @param duration - The time duration to retrieve candle periods for.\n * @returns The list of candle period options available for the given duration.\n */\nexport const getCandlePeriodsForDuration = (\n duration: TimeDuration | string,\n): readonly { label: string; value: CandlePeriod }[] => {\n const periods =\n DURATION_CANDLE_PERIODS[duration as TimeDuration]?.periods || [];\n\n return periods;\n};\n\n/**\n * Get the default candle period for a specific duration\n *\n * @param duration - The time duration to retrieve the default candle period for.\n * @returns The default candle period for the given duration.\n */\nexport const getDefaultCandlePeriodForDuration = (\n duration: TimeDuration | string,\n): CandlePeriod =>\n DURATION_CANDLE_PERIODS[duration as TimeDuration]?.default ||\n CandlePeriod.OneHour;\n\n/**\n * Calculate the number of candles to fetch based on duration and candle period\n *\n * @param duration - The time duration for the chart display.\n * @param candlePeriod - The candle period interval.\n * @returns The number of candles to fetch, capped at MAX_CANDLE_COUNT.\n */\nexport const calculateCandleCount = (\n duration: TimeDuration | string,\n candlePeriod: CandlePeriod | string,\n): number => {\n // Convert candle period to minutes\n const periodInMinutes = ((): number => {\n switch (candlePeriod) {\n case CandlePeriod.OneMinute:\n return 1;\n case CandlePeriod.ThreeMinutes:\n return 3;\n case CandlePeriod.FiveMinutes:\n return 5;\n case CandlePeriod.FifteenMinutes:\n return 15;\n case CandlePeriod.ThirtyMinutes:\n return 30;\n case CandlePeriod.OneHour:\n return 60;\n case CandlePeriod.TwoHours:\n return 120;\n case CandlePeriod.FourHours:\n return 240;\n case CandlePeriod.EightHours:\n return 480;\n case CandlePeriod.TwelveHours:\n return 720;\n case CandlePeriod.OneDay:\n return 1440; // 24 * 60\n case CandlePeriod.ThreeDays:\n return 4320; // 3 * 24 * 60\n case CandlePeriod.OneWeek:\n return 10080; // 7 * 24 * 60\n case CandlePeriod.OneMonth:\n return 43200; // 30 * 24 * 60 (approximate)\n default:\n return 60; // Default to 1h\n }\n })();\n\n // Convert duration to total minutes needed\n const durationInMinutes = ((): number => {\n switch (duration) {\n case TimeDuration.OneHour:\n return 60; // 1 hour\n case TimeDuration.OneDay:\n return 60 * 24; // 1 day\n case TimeDuration.OneWeek:\n return 60 * 24 * 7; // 1 week\n case TimeDuration.OneMonth:\n return 60 * 24 * 30; // 1 month (30 days)\n case TimeDuration.YearToDate:\n return 60 * 24 * 365; // Year to date (365 days max)\n case TimeDuration.Max:\n return 60 * 24 * 365 * 2; // Max (2 years)\n default:\n return 60 * 24; // Default to 1 day\n }\n })();\n\n // Calculate number of candles needed\n const candleCount = Math.ceil(durationInMinutes / periodInMinutes);\n\n // Cap at MAX_CANDLE_COUNT candles max for memory management\n // Allow minimum of 10 candles for basic functionality\n return Math.min(Math.max(candleCount, 10), MAX_CANDLE_COUNT);\n};\n"]}