@metamask-previews/perps-controller 0.0.0-preview-685dbf46b → 1.0.0-preview-bc00f2c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/CHANGELOG.md +30 -2
  2. package/dist/PerpsController.cjs +3077 -65
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts +969 -82
  5. package/dist/PerpsController.d.cts.map +1 -1
  6. package/dist/PerpsController.d.mts +969 -82
  7. package/dist/PerpsController.d.mts.map +1 -1
  8. package/dist/PerpsController.mjs +3073 -62
  9. package/dist/PerpsController.mjs.map +1 -1
  10. package/dist/aggregation/SubscriptionMultiplexer.cjs +441 -0
  11. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +1 -0
  12. package/dist/aggregation/SubscriptionMultiplexer.d.cts +171 -0
  13. package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +1 -0
  14. package/dist/aggregation/SubscriptionMultiplexer.d.mts +171 -0
  15. package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +1 -0
  16. package/dist/aggregation/SubscriptionMultiplexer.mjs +437 -0
  17. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +1 -0
  18. package/dist/aggregation/index.cjs +9 -0
  19. package/dist/aggregation/index.cjs.map +1 -0
  20. package/dist/aggregation/index.d.cts +6 -0
  21. package/dist/aggregation/index.d.cts.map +1 -0
  22. package/dist/aggregation/index.d.mts +6 -0
  23. package/dist/aggregation/index.d.mts.map +1 -0
  24. package/dist/aggregation/index.mjs +5 -0
  25. package/dist/aggregation/index.mjs.map +1 -0
  26. package/dist/constants/chartConfig.cjs +227 -0
  27. package/dist/constants/chartConfig.cjs.map +1 -0
  28. package/dist/constants/chartConfig.d.cts +216 -0
  29. package/dist/constants/chartConfig.d.cts.map +1 -0
  30. package/dist/constants/chartConfig.d.mts +216 -0
  31. package/dist/constants/chartConfig.d.mts.map +1 -0
  32. package/dist/constants/chartConfig.mjs +221 -0
  33. package/dist/constants/chartConfig.mjs.map +1 -0
  34. package/dist/constants/eventNames.cjs +436 -0
  35. package/dist/constants/eventNames.cjs.map +1 -0
  36. package/dist/constants/eventNames.d.cts +387 -0
  37. package/dist/constants/eventNames.d.cts.map +1 -0
  38. package/dist/constants/eventNames.d.mts +387 -0
  39. package/dist/constants/eventNames.d.mts.map +1 -0
  40. package/dist/constants/eventNames.mjs +433 -0
  41. package/dist/constants/eventNames.mjs.map +1 -0
  42. package/dist/constants/hyperLiquidConfig.cjs +380 -0
  43. package/dist/constants/hyperLiquidConfig.cjs.map +1 -0
  44. package/dist/constants/hyperLiquidConfig.d.cts +236 -0
  45. package/dist/constants/hyperLiquidConfig.d.cts.map +1 -0
  46. package/dist/constants/hyperLiquidConfig.d.mts +236 -0
  47. package/dist/constants/hyperLiquidConfig.d.mts.map +1 -0
  48. package/dist/constants/hyperLiquidConfig.mjs +371 -0
  49. package/dist/constants/hyperLiquidConfig.mjs.map +1 -0
  50. package/dist/constants/index.cjs +28 -0
  51. package/dist/constants/index.cjs.map +1 -0
  52. package/dist/constants/index.d.cts +12 -0
  53. package/dist/constants/index.d.cts.map +1 -0
  54. package/dist/constants/index.d.mts +12 -0
  55. package/dist/constants/index.d.mts.map +1 -0
  56. package/dist/constants/index.mjs +12 -0
  57. package/dist/constants/index.mjs.map +1 -0
  58. package/dist/constants/myxConfig.cjs +229 -0
  59. package/dist/constants/myxConfig.cjs.map +1 -0
  60. package/dist/constants/myxConfig.d.cts +106 -0
  61. package/dist/constants/myxConfig.d.cts.map +1 -0
  62. package/dist/constants/myxConfig.d.mts +106 -0
  63. package/dist/constants/myxConfig.d.mts.map +1 -0
  64. package/dist/constants/myxConfig.mjs +219 -0
  65. package/dist/constants/myxConfig.mjs.map +1 -0
  66. package/dist/constants/orderTypes.cjs +31 -0
  67. package/dist/constants/orderTypes.cjs.map +1 -0
  68. package/dist/constants/orderTypes.d.cts +19 -0
  69. package/dist/constants/orderTypes.d.cts.map +1 -0
  70. package/dist/constants/orderTypes.d.mts +19 -0
  71. package/dist/constants/orderTypes.d.mts.map +1 -0
  72. package/dist/constants/orderTypes.mjs +27 -0
  73. package/dist/constants/orderTypes.mjs.map +1 -0
  74. package/dist/constants/performanceMetrics.cjs +63 -0
  75. package/dist/constants/performanceMetrics.cjs.map +1 -0
  76. package/dist/constants/performanceMetrics.d.cts +46 -0
  77. package/dist/constants/performanceMetrics.d.cts.map +1 -0
  78. package/dist/constants/performanceMetrics.d.mts +46 -0
  79. package/dist/constants/performanceMetrics.d.mts.map +1 -0
  80. package/dist/constants/performanceMetrics.mjs +60 -0
  81. package/dist/constants/performanceMetrics.mjs.map +1 -0
  82. package/dist/constants/perpsConfig.cjs +295 -0
  83. package/dist/constants/perpsConfig.cjs.map +1 -0
  84. package/dist/constants/perpsConfig.d.cts +221 -0
  85. package/dist/constants/perpsConfig.d.cts.map +1 -0
  86. package/dist/constants/perpsConfig.d.mts +221 -0
  87. package/dist/constants/perpsConfig.d.mts.map +1 -0
  88. package/dist/constants/perpsConfig.mjs +292 -0
  89. package/dist/constants/perpsConfig.mjs.map +1 -0
  90. package/dist/constants/transactionsHistoryConfig.cjs +19 -0
  91. package/dist/constants/transactionsHistoryConfig.cjs.map +1 -0
  92. package/dist/constants/transactionsHistoryConfig.d.cts +16 -0
  93. package/dist/constants/transactionsHistoryConfig.d.cts.map +1 -0
  94. package/dist/constants/transactionsHistoryConfig.d.mts +16 -0
  95. package/dist/constants/transactionsHistoryConfig.d.mts.map +1 -0
  96. package/dist/constants/transactionsHistoryConfig.mjs +16 -0
  97. package/dist/constants/transactionsHistoryConfig.mjs.map +1 -0
  98. package/dist/index.cjs +63 -1
  99. package/dist/index.cjs.map +1 -1
  100. package/dist/index.d.cts +38 -2
  101. package/dist/index.d.cts.map +1 -1
  102. package/dist/index.d.mts +38 -2
  103. package/dist/index.d.mts.map +1 -1
  104. package/dist/index.mjs +46 -1
  105. package/dist/index.mjs.map +1 -1
  106. package/dist/perpsErrorCodes.cjs +80 -0
  107. package/dist/perpsErrorCodes.cjs.map +1 -0
  108. package/dist/perpsErrorCodes.d.cts +65 -0
  109. package/dist/perpsErrorCodes.d.cts.map +1 -0
  110. package/dist/perpsErrorCodes.d.mts +65 -0
  111. package/dist/perpsErrorCodes.d.mts.map +1 -0
  112. package/dist/perpsErrorCodes.mjs +77 -0
  113. package/dist/perpsErrorCodes.mjs.map +1 -0
  114. package/dist/providers/AggregatedPerpsProvider.cjs +508 -0
  115. package/dist/providers/AggregatedPerpsProvider.cjs.map +1 -0
  116. package/dist/providers/AggregatedPerpsProvider.d.cts +171 -0
  117. package/dist/providers/AggregatedPerpsProvider.d.cts.map +1 -0
  118. package/dist/providers/AggregatedPerpsProvider.d.mts +171 -0
  119. package/dist/providers/AggregatedPerpsProvider.d.mts.map +1 -0
  120. package/dist/providers/AggregatedPerpsProvider.mjs +504 -0
  121. package/dist/providers/AggregatedPerpsProvider.mjs.map +1 -0
  122. package/dist/providers/HyperLiquidProvider.cjs +5679 -0
  123. package/dist/providers/HyperLiquidProvider.cjs.map +1 -0
  124. package/dist/providers/HyperLiquidProvider.d.cts +516 -0
  125. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -0
  126. package/dist/providers/HyperLiquidProvider.d.mts +516 -0
  127. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -0
  128. package/dist/providers/HyperLiquidProvider.mjs +5675 -0
  129. package/dist/providers/HyperLiquidProvider.mjs.map +1 -0
  130. package/dist/providers/MYXProvider.cjs +514 -0
  131. package/dist/providers/MYXProvider.cjs.map +1 -0
  132. package/dist/providers/MYXProvider.d.cts +105 -0
  133. package/dist/providers/MYXProvider.d.cts.map +1 -0
  134. package/dist/providers/MYXProvider.d.mts +105 -0
  135. package/dist/providers/MYXProvider.d.mts.map +1 -0
  136. package/dist/providers/MYXProvider.mjs +510 -0
  137. package/dist/providers/MYXProvider.mjs.map +1 -0
  138. package/dist/routing/ProviderRouter.cjs +154 -0
  139. package/dist/routing/ProviderRouter.cjs.map +1 -0
  140. package/dist/routing/ProviderRouter.d.cts +112 -0
  141. package/dist/routing/ProviderRouter.d.cts.map +1 -0
  142. package/dist/routing/ProviderRouter.d.mts +112 -0
  143. package/dist/routing/ProviderRouter.d.mts.map +1 -0
  144. package/dist/routing/ProviderRouter.mjs +150 -0
  145. package/dist/routing/ProviderRouter.mjs.map +1 -0
  146. package/dist/routing/index.cjs +9 -0
  147. package/dist/routing/index.cjs.map +1 -0
  148. package/dist/routing/index.d.cts +6 -0
  149. package/dist/routing/index.d.cts.map +1 -0
  150. package/dist/routing/index.d.mts +6 -0
  151. package/dist/routing/index.d.mts.map +1 -0
  152. package/dist/routing/index.mjs +5 -0
  153. package/dist/routing/index.mjs.map +1 -0
  154. package/dist/selectors.cjs +166 -0
  155. package/dist/selectors.cjs.map +1 -0
  156. package/dist/selectors.d.cts +362 -0
  157. package/dist/selectors.d.cts.map +1 -0
  158. package/dist/selectors.d.mts +362 -0
  159. package/dist/selectors.d.mts.map +1 -0
  160. package/dist/selectors.mjs +158 -0
  161. package/dist/selectors.mjs.map +1 -0
  162. package/dist/services/AccountService.cjs +324 -0
  163. package/dist/services/AccountService.cjs.map +1 -0
  164. package/dist/services/AccountService.d.cts +56 -0
  165. package/dist/services/AccountService.d.cts.map +1 -0
  166. package/dist/services/AccountService.d.mts +56 -0
  167. package/dist/services/AccountService.d.mts.map +1 -0
  168. package/dist/services/AccountService.mjs +320 -0
  169. package/dist/services/AccountService.mjs.map +1 -0
  170. package/dist/services/DataLakeService.cjs +233 -0
  171. package/dist/services/DataLakeService.cjs.map +1 -0
  172. package/dist/services/DataLakeService.d.cts +51 -0
  173. package/dist/services/DataLakeService.d.cts.map +1 -0
  174. package/dist/services/DataLakeService.d.mts +51 -0
  175. package/dist/services/DataLakeService.d.mts.map +1 -0
  176. package/dist/services/DataLakeService.mjs +229 -0
  177. package/dist/services/DataLakeService.mjs.map +1 -0
  178. package/dist/services/DepositService.cjs +98 -0
  179. package/dist/services/DepositService.cjs.map +1 -0
  180. package/dist/services/DepositService.d.cts +39 -0
  181. package/dist/services/DepositService.d.cts.map +1 -0
  182. package/dist/services/DepositService.d.mts +39 -0
  183. package/dist/services/DepositService.d.mts.map +1 -0
  184. package/dist/services/DepositService.mjs +94 -0
  185. package/dist/services/DepositService.mjs.map +1 -0
  186. package/dist/services/EligibilityService.cjs +173 -0
  187. package/dist/services/EligibilityService.cjs.map +1 -0
  188. package/dist/services/EligibilityService.d.cts +39 -0
  189. package/dist/services/EligibilityService.d.cts.map +1 -0
  190. package/dist/services/EligibilityService.d.mts +39 -0
  191. package/dist/services/EligibilityService.d.mts.map +1 -0
  192. package/dist/services/EligibilityService.mjs +169 -0
  193. package/dist/services/EligibilityService.mjs.map +1 -0
  194. package/dist/services/FeatureFlagConfigurationService.cjs +257 -0
  195. package/dist/services/FeatureFlagConfigurationService.cjs.map +1 -0
  196. package/dist/services/FeatureFlagConfigurationService.d.cts +73 -0
  197. package/dist/services/FeatureFlagConfigurationService.d.cts.map +1 -0
  198. package/dist/services/FeatureFlagConfigurationService.d.mts +73 -0
  199. package/dist/services/FeatureFlagConfigurationService.d.mts.map +1 -0
  200. package/dist/services/FeatureFlagConfigurationService.mjs +253 -0
  201. package/dist/services/FeatureFlagConfigurationService.mjs.map +1 -0
  202. package/dist/services/HyperLiquidClientService.cjs +867 -0
  203. package/dist/services/HyperLiquidClientService.cjs.map +1 -0
  204. package/dist/services/HyperLiquidClientService.d.cts +214 -0
  205. package/dist/services/HyperLiquidClientService.d.cts.map +1 -0
  206. package/dist/services/HyperLiquidClientService.d.mts +214 -0
  207. package/dist/services/HyperLiquidClientService.d.mts.map +1 -0
  208. package/dist/services/HyperLiquidClientService.mjs +862 -0
  209. package/dist/services/HyperLiquidClientService.mjs.map +1 -0
  210. package/dist/services/HyperLiquidSubscriptionService.cjs +2199 -0
  211. package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -0
  212. package/dist/services/HyperLiquidSubscriptionService.d.cts +187 -0
  213. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -0
  214. package/dist/services/HyperLiquidSubscriptionService.d.mts +187 -0
  215. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -0
  216. package/dist/services/HyperLiquidSubscriptionService.mjs +2195 -0
  217. package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -0
  218. package/dist/services/HyperLiquidWalletService.cjs +163 -0
  219. package/dist/services/HyperLiquidWalletService.cjs.map +1 -0
  220. package/dist/services/HyperLiquidWalletService.d.cts +78 -0
  221. package/dist/services/HyperLiquidWalletService.d.cts.map +1 -0
  222. package/dist/services/HyperLiquidWalletService.d.mts +78 -0
  223. package/dist/services/HyperLiquidWalletService.d.mts.map +1 -0
  224. package/dist/services/HyperLiquidWalletService.mjs +159 -0
  225. package/dist/services/HyperLiquidWalletService.mjs.map +1 -0
  226. package/dist/services/MYXClientService.cjs +304 -0
  227. package/dist/services/MYXClientService.cjs.map +1 -0
  228. package/dist/services/MYXClientService.d.cts +81 -0
  229. package/dist/services/MYXClientService.d.cts.map +1 -0
  230. package/dist/services/MYXClientService.d.mts +81 -0
  231. package/dist/services/MYXClientService.d.mts.map +1 -0
  232. package/dist/services/MYXClientService.mjs +300 -0
  233. package/dist/services/MYXClientService.mjs.map +1 -0
  234. package/dist/services/MarketDataService.cjs +848 -0
  235. package/dist/services/MarketDataService.cjs.map +1 -0
  236. package/dist/services/MarketDataService.d.cts +291 -0
  237. package/dist/services/MarketDataService.d.cts.map +1 -0
  238. package/dist/services/MarketDataService.d.mts +291 -0
  239. package/dist/services/MarketDataService.d.mts.map +1 -0
  240. package/dist/services/MarketDataService.mjs +844 -0
  241. package/dist/services/MarketDataService.mjs.map +1 -0
  242. package/dist/services/RewardsIntegrationService.cjs +120 -0
  243. package/dist/services/RewardsIntegrationService.cjs.map +1 -0
  244. package/dist/services/RewardsIntegrationService.d.cts +28 -0
  245. package/dist/services/RewardsIntegrationService.d.cts.map +1 -0
  246. package/dist/services/RewardsIntegrationService.d.mts +28 -0
  247. package/dist/services/RewardsIntegrationService.d.mts.map +1 -0
  248. package/dist/services/RewardsIntegrationService.mjs +116 -0
  249. package/dist/services/RewardsIntegrationService.mjs.map +1 -0
  250. package/dist/services/ServiceContext.cjs +3 -0
  251. package/dist/services/ServiceContext.cjs.map +1 -0
  252. package/dist/services/ServiceContext.d.cts +86 -0
  253. package/dist/services/ServiceContext.d.cts.map +1 -0
  254. package/dist/services/ServiceContext.d.mts +86 -0
  255. package/dist/services/ServiceContext.d.mts.map +1 -0
  256. package/dist/services/ServiceContext.mjs +2 -0
  257. package/dist/services/ServiceContext.mjs.map +1 -0
  258. package/dist/services/TradingReadinessCache.cjs +288 -0
  259. package/dist/services/TradingReadinessCache.cjs.map +1 -0
  260. package/dist/services/TradingReadinessCache.d.cts +174 -0
  261. package/dist/services/TradingReadinessCache.d.cts.map +1 -0
  262. package/dist/services/TradingReadinessCache.d.mts +174 -0
  263. package/dist/services/TradingReadinessCache.d.mts.map +1 -0
  264. package/dist/services/TradingReadinessCache.mjs +285 -0
  265. package/dist/services/TradingReadinessCache.mjs.map +1 -0
  266. package/dist/services/TradingService.cjs +1457 -0
  267. package/dist/services/TradingService.cjs.map +1 -0
  268. package/dist/services/TradingService.d.cts +195 -0
  269. package/dist/services/TradingService.d.cts.map +1 -0
  270. package/dist/services/TradingService.d.mts +195 -0
  271. package/dist/services/TradingService.d.mts.map +1 -0
  272. package/dist/services/TradingService.mjs +1453 -0
  273. package/dist/services/TradingService.mjs.map +1 -0
  274. package/dist/types/config.cjs +3 -0
  275. package/dist/types/config.cjs.map +1 -0
  276. package/dist/types/config.d.cts +49 -0
  277. package/dist/types/config.d.cts.map +1 -0
  278. package/dist/types/config.d.mts +49 -0
  279. package/dist/types/config.d.mts.map +1 -0
  280. package/dist/types/config.mjs +2 -0
  281. package/dist/types/config.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 +20 -0
  285. package/dist/types/hyperliquid-types.d.cts.map +1 -0
  286. package/dist/types/hyperliquid-types.d.mts +20 -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 +115 -0
  291. package/dist/types/index.cjs.map +1 -0
  292. package/dist/types/index.d.cts +1262 -0
  293. package/dist/types/index.d.cts.map +1 -0
  294. package/dist/types/index.d.mts +1262 -0
  295. package/dist/types/index.d.mts.map +1 -0
  296. package/dist/types/index.mjs +97 -0
  297. package/dist/types/index.mjs.map +1 -0
  298. package/dist/types/messenger.cjs +3 -0
  299. package/dist/types/messenger.cjs.map +1 -0
  300. package/dist/types/messenger.d.cts +27 -0
  301. package/dist/types/messenger.d.cts.map +1 -0
  302. package/dist/types/messenger.d.mts +27 -0
  303. package/dist/types/messenger.d.mts.map +1 -0
  304. package/dist/types/messenger.mjs +2 -0
  305. package/dist/types/messenger.mjs.map +1 -0
  306. package/dist/types/myx-types.cjs +25 -0
  307. package/dist/types/myx-types.cjs.map +1 -0
  308. package/dist/types/myx-types.d.cts +63 -0
  309. package/dist/types/myx-types.d.cts.map +1 -0
  310. package/dist/types/myx-types.d.mts +63 -0
  311. package/dist/types/myx-types.d.mts.map +1 -0
  312. package/dist/types/myx-types.mjs +22 -0
  313. package/dist/types/myx-types.mjs.map +1 -0
  314. package/dist/types/perps-types.cjs +4 -0
  315. package/dist/types/perps-types.cjs.map +1 -0
  316. package/dist/types/perps-types.d.cts +105 -0
  317. package/dist/types/perps-types.d.cts.map +1 -0
  318. package/dist/types/perps-types.d.mts +105 -0
  319. package/dist/types/perps-types.d.mts.map +1 -0
  320. package/dist/types/perps-types.mjs +2 -0
  321. package/dist/types/perps-types.mjs.map +1 -0
  322. package/dist/types/token.cjs +3 -0
  323. package/dist/types/token.cjs.map +1 -0
  324. package/dist/types/token.d.cts +25 -0
  325. package/dist/types/token.d.cts.map +1 -0
  326. package/dist/types/token.d.mts +25 -0
  327. package/dist/types/token.d.mts.map +1 -0
  328. package/dist/types/token.mjs +2 -0
  329. package/dist/types/token.mjs.map +1 -0
  330. package/dist/types/transactionTypes.cjs +28 -0
  331. package/dist/types/transactionTypes.cjs.map +1 -0
  332. package/dist/types/transactionTypes.d.cts +64 -0
  333. package/dist/types/transactionTypes.d.cts.map +1 -0
  334. package/dist/types/transactionTypes.d.mts +64 -0
  335. package/dist/types/transactionTypes.d.mts.map +1 -0
  336. package/dist/types/transactionTypes.mjs +23 -0
  337. package/dist/types/transactionTypes.mjs.map +1 -0
  338. package/dist/utils/accountUtils.cjs +100 -0
  339. package/dist/utils/accountUtils.cjs.map +1 -0
  340. package/dist/utils/accountUtils.d.cts +30 -0
  341. package/dist/utils/accountUtils.d.cts.map +1 -0
  342. package/dist/utils/accountUtils.d.mts +30 -0
  343. package/dist/utils/accountUtils.d.mts.map +1 -0
  344. package/dist/utils/accountUtils.mjs +92 -0
  345. package/dist/utils/accountUtils.mjs.map +1 -0
  346. package/dist/utils/errorUtils.cjs +35 -0
  347. package/dist/utils/errorUtils.cjs.map +1 -0
  348. package/dist/utils/errorUtils.d.cts +15 -0
  349. package/dist/utils/errorUtils.d.cts.map +1 -0
  350. package/dist/utils/errorUtils.d.mts +15 -0
  351. package/dist/utils/errorUtils.d.mts.map +1 -0
  352. package/dist/utils/errorUtils.mjs +31 -0
  353. package/dist/utils/errorUtils.mjs.map +1 -0
  354. package/dist/utils/hyperLiquidAdapter.cjs +331 -0
  355. package/dist/utils/hyperLiquidAdapter.cjs.map +1 -0
  356. package/dist/utils/hyperLiquidAdapter.d.cts +42 -0
  357. package/dist/utils/hyperLiquidAdapter.d.cts.map +1 -0
  358. package/dist/utils/hyperLiquidAdapter.d.mts +42 -0
  359. package/dist/utils/hyperLiquidAdapter.d.mts.map +1 -0
  360. package/dist/utils/hyperLiquidAdapter.mjs +316 -0
  361. package/dist/utils/hyperLiquidAdapter.mjs.map +1 -0
  362. package/dist/utils/hyperLiquidOrderBookProcessor.cjs +83 -0
  363. package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +1 -0
  364. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +55 -0
  365. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +1 -0
  366. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +55 -0
  367. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +1 -0
  368. package/dist/utils/hyperLiquidOrderBookProcessor.mjs +78 -0
  369. package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +1 -0
  370. package/dist/utils/hyperLiquidValidation.cjs +426 -0
  371. package/dist/utils/hyperLiquidValidation.cjs.map +1 -0
  372. package/dist/utils/hyperLiquidValidation.d.cts +143 -0
  373. package/dist/utils/hyperLiquidValidation.d.cts.map +1 -0
  374. package/dist/utils/hyperLiquidValidation.d.mts +143 -0
  375. package/dist/utils/hyperLiquidValidation.d.mts.map +1 -0
  376. package/dist/utils/hyperLiquidValidation.mjs +413 -0
  377. package/dist/utils/hyperLiquidValidation.mjs.map +1 -0
  378. package/dist/utils/idUtils.cjs +18 -0
  379. package/dist/utils/idUtils.cjs.map +1 -0
  380. package/dist/utils/idUtils.d.cts +6 -0
  381. package/dist/utils/idUtils.d.cts.map +1 -0
  382. package/dist/utils/idUtils.d.mts +6 -0
  383. package/dist/utils/idUtils.d.mts.map +1 -0
  384. package/dist/utils/idUtils.mjs +10 -0
  385. package/dist/utils/idUtils.mjs.map +1 -0
  386. package/dist/utils/index.cjs +59 -0
  387. package/dist/utils/index.cjs.map +1 -0
  388. package/dist/utils/index.d.cts +25 -0
  389. package/dist/utils/index.d.cts.map +1 -0
  390. package/dist/utils/index.d.mts +25 -0
  391. package/dist/utils/index.d.mts.map +1 -0
  392. package/dist/utils/index.mjs +30 -0
  393. package/dist/utils/index.mjs.map +1 -0
  394. package/dist/utils/marketDataTransform.cjs +211 -0
  395. package/dist/utils/marketDataTransform.cjs.map +1 -0
  396. package/dist/utils/marketDataTransform.d.cts +40 -0
  397. package/dist/utils/marketDataTransform.d.cts.map +1 -0
  398. package/dist/utils/marketDataTransform.d.mts +40 -0
  399. package/dist/utils/marketDataTransform.d.mts.map +1 -0
  400. package/dist/utils/marketDataTransform.mjs +205 -0
  401. package/dist/utils/marketDataTransform.mjs.map +1 -0
  402. package/dist/utils/marketUtils.cjs +151 -0
  403. package/dist/utils/marketUtils.cjs.map +1 -0
  404. package/dist/utils/marketUtils.d.cts +30 -0
  405. package/dist/utils/marketUtils.d.cts.map +1 -0
  406. package/dist/utils/marketUtils.d.mts +30 -0
  407. package/dist/utils/marketUtils.d.mts.map +1 -0
  408. package/dist/utils/marketUtils.mjs +138 -0
  409. package/dist/utils/marketUtils.mjs.map +1 -0
  410. package/dist/utils/myxAdapter.cjs +224 -0
  411. package/dist/utils/myxAdapter.cjs.map +1 -0
  412. package/dist/utils/myxAdapter.d.cts +81 -0
  413. package/dist/utils/myxAdapter.d.cts.map +1 -0
  414. package/dist/utils/myxAdapter.d.mts +81 -0
  415. package/dist/utils/myxAdapter.d.mts.map +1 -0
  416. package/dist/utils/myxAdapter.mjs +213 -0
  417. package/dist/utils/myxAdapter.mjs.map +1 -0
  418. package/dist/utils/orderCalculations.cjs +283 -0
  419. package/dist/utils/orderCalculations.cjs.map +1 -0
  420. package/dist/utils/orderCalculations.d.cts +107 -0
  421. package/dist/utils/orderCalculations.d.cts.map +1 -0
  422. package/dist/utils/orderCalculations.d.mts +107 -0
  423. package/dist/utils/orderCalculations.d.mts.map +1 -0
  424. package/dist/utils/orderCalculations.mjs +274 -0
  425. package/dist/utils/orderCalculations.mjs.map +1 -0
  426. package/dist/utils/rewardsUtils.cjs +98 -0
  427. package/dist/utils/rewardsUtils.cjs.map +1 -0
  428. package/dist/utils/rewardsUtils.d.cts +33 -0
  429. package/dist/utils/rewardsUtils.d.cts.map +1 -0
  430. package/dist/utils/rewardsUtils.d.mts +33 -0
  431. package/dist/utils/rewardsUtils.d.mts.map +1 -0
  432. package/dist/utils/rewardsUtils.mjs +92 -0
  433. package/dist/utils/rewardsUtils.mjs.map +1 -0
  434. package/dist/utils/significantFigures.cjs +88 -0
  435. package/dist/utils/significantFigures.cjs.map +1 -0
  436. package/dist/utils/significantFigures.d.cts +25 -0
  437. package/dist/utils/significantFigures.d.cts.map +1 -0
  438. package/dist/utils/significantFigures.d.mts +25 -0
  439. package/dist/utils/significantFigures.d.mts.map +1 -0
  440. package/dist/utils/significantFigures.mjs +82 -0
  441. package/dist/utils/significantFigures.mjs.map +1 -0
  442. package/dist/utils/sortMarkets.cjs +93 -0
  443. package/dist/utils/sortMarkets.cjs.map +1 -0
  444. package/dist/utils/sortMarkets.d.cts +27 -0
  445. package/dist/utils/sortMarkets.d.cts.map +1 -0
  446. package/dist/utils/sortMarkets.d.mts +27 -0
  447. package/dist/utils/sortMarkets.d.mts.map +1 -0
  448. package/dist/utils/sortMarkets.mjs +88 -0
  449. package/dist/utils/sortMarkets.mjs.map +1 -0
  450. package/dist/utils/standaloneInfoClient.cjs +70 -0
  451. package/dist/utils/standaloneInfoClient.cjs.map +1 -0
  452. package/dist/utils/standaloneInfoClient.d.cts +37 -0
  453. package/dist/utils/standaloneInfoClient.d.cts.map +1 -0
  454. package/dist/utils/standaloneInfoClient.d.mts +37 -0
  455. package/dist/utils/standaloneInfoClient.d.mts.map +1 -0
  456. package/dist/utils/standaloneInfoClient.mjs +64 -0
  457. package/dist/utils/standaloneInfoClient.mjs.map +1 -0
  458. package/dist/utils/stringParseUtils.cjs +18 -0
  459. package/dist/utils/stringParseUtils.cjs.map +1 -0
  460. package/dist/utils/stringParseUtils.d.cts +3 -0
  461. package/dist/utils/stringParseUtils.d.cts.map +1 -0
  462. package/dist/utils/stringParseUtils.d.mts +3 -0
  463. package/dist/utils/stringParseUtils.d.mts.map +1 -0
  464. package/dist/utils/stringParseUtils.mjs +13 -0
  465. package/dist/utils/stringParseUtils.mjs.map +1 -0
  466. package/dist/utils/transferData.cjs +33 -0
  467. package/dist/utils/transferData.cjs.map +1 -0
  468. package/dist/utils/transferData.d.cts +9 -0
  469. package/dist/utils/transferData.d.cts.map +1 -0
  470. package/dist/utils/transferData.d.mts +9 -0
  471. package/dist/utils/transferData.d.mts.map +1 -0
  472. package/dist/utils/transferData.mjs +29 -0
  473. package/dist/utils/transferData.mjs.map +1 -0
  474. package/dist/utils/wait.cjs +6 -0
  475. package/dist/utils/wait.cjs.map +1 -0
  476. package/dist/utils/wait.d.cts +2 -0
  477. package/dist/utils/wait.d.cts.map +1 -0
  478. package/dist/utils/wait.d.mts +2 -0
  479. package/dist/utils/wait.d.mts.map +1 -0
  480. package/dist/utils/wait.mjs +2 -0
  481. package/dist/utils/wait.mjs.map +1 -0
  482. package/package.json +16 -2
@@ -0,0 +1,362 @@
1
+ import { SortOptionId } from "./constants/perpsConfig.mjs";
2
+ import type { PerpsControllerState } from "./PerpsController.mjs";
3
+ import type { PerpsSelectedPaymentToken } from "./types/index.mjs";
4
+ import type { SortDirection } from "./utils/sortMarkets.mjs";
5
+ /**
6
+ * Select whether the user is a first-time perps user
7
+ *
8
+ * @param state - PerpsController state
9
+ * @returns true if user is first-time, false otherwise
10
+ */
11
+ export declare const selectIsFirstTimeUser: (state: PerpsControllerState | undefined) => boolean;
12
+ /**
13
+ * Select whether user has ever placed their first successful order
14
+ *
15
+ * @param state - PerpsController state
16
+ * @returns boolean indicating if first order was placed
17
+ */
18
+ export declare const selectHasPlacedFirstOrder: (state: PerpsControllerState) => boolean;
19
+ /**
20
+ * Select watchlist markets for the current network
21
+ *
22
+ * @param state - PerpsController state
23
+ * @returns Array of watchlist market symbols for current network
24
+ */
25
+ export declare const selectWatchlistMarkets: (state: PerpsControllerState) => string[];
26
+ /**
27
+ * Check if a specific market is in the watchlist on the current network
28
+ *
29
+ * @param state - PerpsController state
30
+ * @param symbol - Market symbol to check (e.g., 'BTC', 'ETH')
31
+ * @returns boolean indicating if market is in watchlist
32
+ */
33
+ export declare const selectIsWatchlistMarket: (state: PerpsControllerState, symbol: string) => boolean;
34
+ /**
35
+ * Select trade configuration for a specific market on the current network.
36
+ * Uses memoization to return stable object references and prevent unnecessary re-renders.
37
+ *
38
+ * Usage: selectTradeConfiguration(state, coin)
39
+ *
40
+ * @param state - The perps controller state.
41
+ * @param coin - The market coin symbol.
42
+ * @returns The trade configuration for the specified market, or undefined.
43
+ */
44
+ export declare const selectTradeConfiguration: ((state: PerpsControllerState, _coin: string) => {
45
+ leverage?: number | undefined;
46
+ } | undefined) & {
47
+ clearCache: () => void;
48
+ resultsCount: () => number;
49
+ resetResultsCount: () => void;
50
+ } & {
51
+ resultFunc: (resultFuncArgs_0: boolean | undefined, resultFuncArgs_1: {
52
+ testnet: {
53
+ [marketSymbol: string]: {
54
+ leverage?: number | undefined;
55
+ orderBookGrouping?: number | undefined;
56
+ pendingConfig?: {
57
+ amount?: string | undefined;
58
+ leverage?: number | undefined;
59
+ takeProfitPrice?: string | undefined;
60
+ stopLossPrice?: string | undefined;
61
+ limitPrice?: string | undefined;
62
+ orderType?: import("./types/index.mjs").OrderType | undefined;
63
+ timestamp: number;
64
+ } | undefined;
65
+ };
66
+ };
67
+ mainnet: {
68
+ [marketSymbol: string]: {
69
+ leverage?: number | undefined;
70
+ orderBookGrouping?: number | undefined;
71
+ pendingConfig?: {
72
+ amount?: string | undefined;
73
+ leverage?: number | undefined;
74
+ takeProfitPrice?: string | undefined;
75
+ stopLossPrice?: string | undefined;
76
+ limitPrice?: string | undefined;
77
+ orderType?: import("./types/index.mjs").OrderType | undefined;
78
+ timestamp: number;
79
+ } | undefined;
80
+ };
81
+ };
82
+ } | undefined, resultFuncArgs_2: string) => {
83
+ leverage?: number | undefined;
84
+ } | undefined;
85
+ memoizedResultFunc: ((resultFuncArgs_0: boolean | undefined, resultFuncArgs_1: {
86
+ testnet: {
87
+ [marketSymbol: string]: {
88
+ leverage?: number | undefined;
89
+ orderBookGrouping?: number | undefined;
90
+ pendingConfig?: {
91
+ amount?: string | undefined;
92
+ leverage?: number | undefined;
93
+ takeProfitPrice?: string | undefined;
94
+ stopLossPrice?: string | undefined;
95
+ limitPrice?: string | undefined;
96
+ orderType?: import("./types/index.mjs").OrderType | undefined;
97
+ timestamp: number;
98
+ } | undefined;
99
+ };
100
+ };
101
+ mainnet: {
102
+ [marketSymbol: string]: {
103
+ leverage?: number | undefined;
104
+ orderBookGrouping?: number | undefined;
105
+ pendingConfig?: {
106
+ amount?: string | undefined;
107
+ leverage?: number | undefined;
108
+ takeProfitPrice?: string | undefined;
109
+ stopLossPrice?: string | undefined;
110
+ limitPrice?: string | undefined;
111
+ orderType?: import("./types/index.mjs").OrderType | undefined;
112
+ timestamp: number;
113
+ } | undefined;
114
+ };
115
+ };
116
+ } | undefined, resultFuncArgs_2: string) => {
117
+ leverage?: number | undefined;
118
+ } | undefined) & {
119
+ clearCache: () => void;
120
+ resultsCount: () => number;
121
+ resetResultsCount: () => void;
122
+ };
123
+ lastResult: () => {
124
+ leverage?: number | undefined;
125
+ } | undefined;
126
+ dependencies: [(state: PerpsControllerState) => boolean | undefined, (state: PerpsControllerState, _coin: string) => PerpsControllerState['tradeConfigurations'] | undefined, (_state: PerpsControllerState, coin: string) => string];
127
+ recomputations: () => number;
128
+ resetRecomputations: () => void;
129
+ dependencyRecomputations: () => number;
130
+ resetDependencyRecomputations: () => void;
131
+ } & {
132
+ memoize: typeof import("reselect").weakMapMemoize;
133
+ argsMemoize: typeof import("reselect").weakMapMemoize;
134
+ };
135
+ /**
136
+ * Select pending trade configuration for a specific market on the current network.
137
+ * Returns undefined if config doesn't exist or has expired (more than 5 minutes old).
138
+ *
139
+ * Usage: selectPendingTradeConfiguration(state, coin)
140
+ *
141
+ * @param state - The perps controller state.
142
+ * @param coin - The market coin symbol.
143
+ * @returns The pending trade configuration, or undefined if expired or not found.
144
+ */
145
+ export declare const selectPendingTradeConfiguration: ((state: PerpsControllerState, _coin: string) => {
146
+ amount?: string | undefined;
147
+ leverage?: number | undefined;
148
+ takeProfitPrice?: string | undefined;
149
+ stopLossPrice?: string | undefined;
150
+ limitPrice?: string | undefined;
151
+ orderType?: "market" | "limit" | undefined;
152
+ selectedPaymentToken?: PerpsSelectedPaymentToken | null | undefined;
153
+ } | undefined) & {
154
+ clearCache: () => void;
155
+ resultsCount: () => number;
156
+ resetResultsCount: () => void;
157
+ } & {
158
+ resultFunc: (resultFuncArgs_0: boolean | undefined, resultFuncArgs_1: {
159
+ testnet: {
160
+ [marketSymbol: string]: {
161
+ leverage?: number | undefined;
162
+ orderBookGrouping?: number | undefined;
163
+ pendingConfig?: {
164
+ amount?: string | undefined;
165
+ leverage?: number | undefined;
166
+ takeProfitPrice?: string | undefined;
167
+ stopLossPrice?: string | undefined;
168
+ limitPrice?: string | undefined;
169
+ orderType?: import("./types/index.mjs").OrderType | undefined;
170
+ timestamp: number;
171
+ } | undefined;
172
+ };
173
+ };
174
+ mainnet: {
175
+ [marketSymbol: string]: {
176
+ leverage?: number | undefined;
177
+ orderBookGrouping?: number | undefined;
178
+ pendingConfig?: {
179
+ amount?: string | undefined;
180
+ leverage?: number | undefined;
181
+ takeProfitPrice?: string | undefined;
182
+ stopLossPrice?: string | undefined;
183
+ limitPrice?: string | undefined;
184
+ orderType?: import("./types/index.mjs").OrderType | undefined;
185
+ timestamp: number;
186
+ } | undefined;
187
+ };
188
+ };
189
+ } | undefined, resultFuncArgs_2: string) => {
190
+ amount?: string | undefined;
191
+ leverage?: number | undefined;
192
+ takeProfitPrice?: string | undefined;
193
+ stopLossPrice?: string | undefined;
194
+ limitPrice?: string | undefined;
195
+ orderType?: "market" | "limit" | undefined;
196
+ selectedPaymentToken?: PerpsSelectedPaymentToken | null | undefined;
197
+ } | undefined;
198
+ memoizedResultFunc: ((resultFuncArgs_0: boolean | undefined, resultFuncArgs_1: {
199
+ testnet: {
200
+ [marketSymbol: string]: {
201
+ leverage?: number | undefined;
202
+ orderBookGrouping?: number | undefined;
203
+ pendingConfig?: {
204
+ amount?: string | undefined;
205
+ leverage?: number | undefined;
206
+ takeProfitPrice?: string | undefined;
207
+ stopLossPrice?: string | undefined;
208
+ limitPrice?: string | undefined;
209
+ orderType?: import("./types/index.mjs").OrderType | undefined;
210
+ timestamp: number;
211
+ } | undefined;
212
+ };
213
+ };
214
+ mainnet: {
215
+ [marketSymbol: string]: {
216
+ leverage?: number | undefined;
217
+ orderBookGrouping?: number | undefined;
218
+ pendingConfig?: {
219
+ amount?: string | undefined;
220
+ leverage?: number | undefined;
221
+ takeProfitPrice?: string | undefined;
222
+ stopLossPrice?: string | undefined;
223
+ limitPrice?: string | undefined;
224
+ orderType?: import("./types/index.mjs").OrderType | undefined;
225
+ timestamp: number;
226
+ } | undefined;
227
+ };
228
+ };
229
+ } | undefined, resultFuncArgs_2: string) => {
230
+ amount?: string | undefined;
231
+ leverage?: number | undefined;
232
+ takeProfitPrice?: string | undefined;
233
+ stopLossPrice?: string | undefined;
234
+ limitPrice?: string | undefined;
235
+ orderType?: "market" | "limit" | undefined;
236
+ selectedPaymentToken?: PerpsSelectedPaymentToken | null | undefined;
237
+ } | undefined) & {
238
+ clearCache: () => void;
239
+ resultsCount: () => number;
240
+ resetResultsCount: () => void;
241
+ };
242
+ lastResult: () => {
243
+ amount?: string | undefined;
244
+ leverage?: number | undefined;
245
+ takeProfitPrice?: string | undefined;
246
+ stopLossPrice?: string | undefined;
247
+ limitPrice?: string | undefined;
248
+ orderType?: "market" | "limit" | undefined;
249
+ selectedPaymentToken?: PerpsSelectedPaymentToken | null | undefined;
250
+ } | undefined;
251
+ dependencies: [(state: PerpsControllerState) => boolean | undefined, (state: PerpsControllerState, _coin: string) => PerpsControllerState['tradeConfigurations'] | undefined, (_state: PerpsControllerState, coin: string) => string];
252
+ recomputations: () => number;
253
+ resetRecomputations: () => void;
254
+ dependencyRecomputations: () => number;
255
+ resetDependencyRecomputations: () => void;
256
+ } & {
257
+ memoize: typeof import("reselect").weakMapMemoize;
258
+ argsMemoize: typeof import("reselect").weakMapMemoize;
259
+ };
260
+ /**
261
+ * Select market filter preferences (network-independent)
262
+ *
263
+ * @param state - PerpsController state
264
+ * @returns Sort/filter preferences object with optionId and direction
265
+ */
266
+ export declare const selectMarketFilterPreferences: (state: PerpsControllerState) => {
267
+ optionId: SortOptionId;
268
+ direction: SortDirection;
269
+ };
270
+ /**
271
+ * Select order book grouping for a specific market on the current network.
272
+ *
273
+ * Usage: selectOrderBookGrouping(state, coin)
274
+ *
275
+ * @param state - The perps controller state.
276
+ * @param coin - The market coin symbol.
277
+ * @returns The order book grouping value, or undefined.
278
+ */
279
+ export declare const selectOrderBookGrouping: ((state: PerpsControllerState, _coin: string) => number | undefined) & {
280
+ clearCache: () => void;
281
+ resultsCount: () => number;
282
+ resetResultsCount: () => void;
283
+ } & {
284
+ resultFunc: (resultFuncArgs_0: boolean | undefined, resultFuncArgs_1: {
285
+ testnet: {
286
+ [marketSymbol: string]: {
287
+ leverage?: number | undefined;
288
+ orderBookGrouping?: number | undefined;
289
+ pendingConfig?: {
290
+ amount?: string | undefined;
291
+ leverage?: number | undefined;
292
+ takeProfitPrice?: string | undefined;
293
+ stopLossPrice?: string | undefined;
294
+ limitPrice?: string | undefined;
295
+ orderType?: import("./types/index.mjs").OrderType | undefined;
296
+ timestamp: number;
297
+ } | undefined;
298
+ };
299
+ };
300
+ mainnet: {
301
+ [marketSymbol: string]: {
302
+ leverage?: number | undefined;
303
+ orderBookGrouping?: number | undefined;
304
+ pendingConfig?: {
305
+ amount?: string | undefined;
306
+ leverage?: number | undefined;
307
+ takeProfitPrice?: string | undefined;
308
+ stopLossPrice?: string | undefined;
309
+ limitPrice?: string | undefined;
310
+ orderType?: import("./types/index.mjs").OrderType | undefined;
311
+ timestamp: number;
312
+ } | undefined;
313
+ };
314
+ };
315
+ } | undefined, resultFuncArgs_2: string) => number | undefined;
316
+ memoizedResultFunc: ((resultFuncArgs_0: boolean | undefined, resultFuncArgs_1: {
317
+ testnet: {
318
+ [marketSymbol: string]: {
319
+ leverage?: number | undefined;
320
+ orderBookGrouping?: number | undefined;
321
+ pendingConfig?: {
322
+ amount?: string | undefined;
323
+ leverage?: number | undefined;
324
+ takeProfitPrice?: string | undefined;
325
+ stopLossPrice?: string | undefined;
326
+ limitPrice?: string | undefined;
327
+ orderType?: import("./types/index.mjs").OrderType | undefined;
328
+ timestamp: number;
329
+ } | undefined;
330
+ };
331
+ };
332
+ mainnet: {
333
+ [marketSymbol: string]: {
334
+ leverage?: number | undefined;
335
+ orderBookGrouping?: number | undefined;
336
+ pendingConfig?: {
337
+ amount?: string | undefined;
338
+ leverage?: number | undefined;
339
+ takeProfitPrice?: string | undefined;
340
+ stopLossPrice?: string | undefined;
341
+ limitPrice?: string | undefined;
342
+ orderType?: import("./types/index.mjs").OrderType | undefined;
343
+ timestamp: number;
344
+ } | undefined;
345
+ };
346
+ };
347
+ } | undefined, resultFuncArgs_2: string) => number | undefined) & {
348
+ clearCache: () => void;
349
+ resultsCount: () => number;
350
+ resetResultsCount: () => void;
351
+ };
352
+ lastResult: () => number | undefined;
353
+ dependencies: [(state: PerpsControllerState) => boolean | undefined, (state: PerpsControllerState, _coin: string) => PerpsControllerState['tradeConfigurations'] | undefined, (_state: PerpsControllerState, coin: string) => string];
354
+ recomputations: () => number;
355
+ resetRecomputations: () => void;
356
+ dependencyRecomputations: () => number;
357
+ resetDependencyRecomputations: () => void;
358
+ } & {
359
+ memoize: typeof import("reselect").weakMapMemoize;
360
+ argsMemoize: typeof import("reselect").weakMapMemoize;
361
+ };
362
+ //# sourceMappingURL=selectors.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,YAAY,EAAE,oCAAgC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA0B;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAAgB;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,gCAA4B;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,UACzB,oBAAoB,GAAG,SAAS,KACtC,OAKF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAC7B,oBAAoB,KAC1B,OAKF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,UAC1B,oBAAoB,KAC1B,MAAM,EAKR,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,UAC3B,oBAAoB,UACnB,MAAM,KACb,OAGF,CAAC;AAEF;;;;;;;;;GASG;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAEzB,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAYvD,CAAC;AAEF;;;;;;;;;GASG;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAEhC,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAsCvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,UACjC,oBAAoB,KAC1B;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAmCpD,CAAC;AAEF;;;;;;;;GAQG;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAExB,oBAAoB,KAAG,OAAO,GAAG,SAAS,UAEzC,oBAAoB,SACpB,MAAM,KACZ,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,WAEjD,oBAAoB,QAAQ,MAAM,KAAG,MAAM;;;;;;;;CAMvD,CAAC"}
@@ -0,0 +1,158 @@
1
+ import { createSelector } from "reselect";
2
+ import { MARKET_SORTING_CONFIG } from "./constants/perpsConfig.mjs";
3
+ /**
4
+ * Select whether the user is a first-time perps user
5
+ *
6
+ * @param state - PerpsController state
7
+ * @returns true if user is first-time, false otherwise
8
+ */
9
+ export const selectIsFirstTimeUser = (state) => {
10
+ if (state?.isTestnet) {
11
+ return state?.isFirstTimeUser?.testnet ?? true;
12
+ }
13
+ return state?.isFirstTimeUser?.mainnet ?? true;
14
+ };
15
+ /**
16
+ * Select whether user has ever placed their first successful order
17
+ *
18
+ * @param state - PerpsController state
19
+ * @returns boolean indicating if first order was placed
20
+ */
21
+ export const selectHasPlacedFirstOrder = (state) => {
22
+ if (state?.isTestnet) {
23
+ return state?.hasPlacedFirstOrder?.testnet ?? false;
24
+ }
25
+ return state?.hasPlacedFirstOrder?.mainnet ?? false;
26
+ };
27
+ /**
28
+ * Select watchlist markets for the current network
29
+ *
30
+ * @param state - PerpsController state
31
+ * @returns Array of watchlist market symbols for current network
32
+ */
33
+ export const selectWatchlistMarkets = (state) => {
34
+ if (state?.isTestnet) {
35
+ return state?.watchlistMarkets?.testnet ?? [];
36
+ }
37
+ return state?.watchlistMarkets?.mainnet ?? [];
38
+ };
39
+ /**
40
+ * Check if a specific market is in the watchlist on the current network
41
+ *
42
+ * @param state - PerpsController state
43
+ * @param symbol - Market symbol to check (e.g., 'BTC', 'ETH')
44
+ * @returns boolean indicating if market is in watchlist
45
+ */
46
+ export const selectIsWatchlistMarket = (state, symbol) => {
47
+ const watchlist = selectWatchlistMarkets(state);
48
+ return watchlist.includes(symbol);
49
+ };
50
+ /**
51
+ * Select trade configuration for a specific market on the current network.
52
+ * Uses memoization to return stable object references and prevent unnecessary re-renders.
53
+ *
54
+ * Usage: selectTradeConfiguration(state, coin)
55
+ *
56
+ * @param state - The perps controller state.
57
+ * @param coin - The market coin symbol.
58
+ * @returns The trade configuration for the specified market, or undefined.
59
+ */
60
+ export const selectTradeConfiguration = createSelector([
61
+ (state) => state?.isTestnet,
62
+ (state, _coin) => state?.tradeConfigurations,
63
+ (_state, coin) => coin,
64
+ ], (isTestnet, configs, coin) => {
65
+ const network = isTestnet ? 'testnet' : 'mainnet';
66
+ const config = configs?.[network]?.[coin];
67
+ if (!config?.leverage) {
68
+ return undefined;
69
+ }
70
+ return { leverage: config.leverage };
71
+ });
72
+ /**
73
+ * Select pending trade configuration for a specific market on the current network.
74
+ * Returns undefined if config doesn't exist or has expired (more than 5 minutes old).
75
+ *
76
+ * Usage: selectPendingTradeConfiguration(state, coin)
77
+ *
78
+ * @param state - The perps controller state.
79
+ * @param coin - The market coin symbol.
80
+ * @returns The pending trade configuration, or undefined if expired or not found.
81
+ */
82
+ export const selectPendingTradeConfiguration = createSelector([
83
+ (state) => state?.isTestnet,
84
+ (state, _coin) => state?.tradeConfigurations,
85
+ (_state, coin) => coin,
86
+ ], (isTestnet, configs, coin) => {
87
+ const network = isTestnet ? 'testnet' : 'mainnet';
88
+ const config = configs?.[network]?.[coin]?.pendingConfig;
89
+ if (!config) {
90
+ return undefined;
91
+ }
92
+ // Check if config has expired (5 minutes = 300,000 milliseconds)
93
+ const FIVE_MINUTES_MS = 5 * 60 * 1000;
94
+ const now = Date.now();
95
+ const age = now - config.timestamp;
96
+ if (age > FIVE_MINUTES_MS) {
97
+ // Config expired, return undefined
98
+ return undefined;
99
+ }
100
+ // Return config without timestamp
101
+ const { timestamp, ...configWithoutTimestamp } = config;
102
+ return configWithoutTimestamp;
103
+ });
104
+ /**
105
+ * Select market filter preferences (network-independent)
106
+ *
107
+ * @param state - PerpsController state
108
+ * @returns Sort/filter preferences object with optionId and direction
109
+ */
110
+ export const selectMarketFilterPreferences = (state) => {
111
+ const pref = state?.marketFilterPreferences;
112
+ // Handle legacy string format (backward compatibility)
113
+ if (typeof pref === 'string') {
114
+ // Map legacy compound IDs to new format
115
+ // Old format: 'priceChange-desc' or 'priceChange-asc'
116
+ // New format: { optionId: 'priceChange', direction: 'desc'/'asc' }
117
+ if (pref === 'priceChange-desc') {
118
+ return {
119
+ optionId: 'priceChange',
120
+ direction: 'desc',
121
+ };
122
+ }
123
+ if (pref === 'priceChange-asc') {
124
+ return {
125
+ optionId: 'priceChange',
126
+ direction: 'asc',
127
+ };
128
+ }
129
+ // Handle other simple legacy strings (e.g., 'volume', 'openInterest', etc.)
130
+ return {
131
+ optionId: pref,
132
+ direction: MARKET_SORTING_CONFIG.DefaultDirection,
133
+ };
134
+ }
135
+ // Return new object format or default
136
+ return (pref ?? {
137
+ optionId: MARKET_SORTING_CONFIG.DefaultSortOptionId,
138
+ direction: MARKET_SORTING_CONFIG.DefaultDirection,
139
+ });
140
+ };
141
+ /**
142
+ * Select order book grouping for a specific market on the current network.
143
+ *
144
+ * Usage: selectOrderBookGrouping(state, coin)
145
+ *
146
+ * @param state - The perps controller state.
147
+ * @param coin - The market coin symbol.
148
+ * @returns The order book grouping value, or undefined.
149
+ */
150
+ export const selectOrderBookGrouping = createSelector([
151
+ (state) => state?.isTestnet,
152
+ (state, _coin) => state?.tradeConfigurations,
153
+ (_state, coin) => coin,
154
+ ], (isTestnet, configs, coin) => {
155
+ const network = isTestnet ? 'testnet' : 'mainnet';
156
+ return configs?.[network]?.[coin]?.orderBookGrouping;
157
+ });
158
+ //# sourceMappingURL=selectors.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { createSelector } from 'reselect';\n\nimport { MARKET_SORTING_CONFIG, SortOptionId } from './constants/perpsConfig';\nimport type { PerpsControllerState } from './PerpsController';\nimport type { PerpsSelectedPaymentToken } from './types';\nimport type { SortDirection } from './utils/sortMarkets';\n\n/**\n * Select whether the user is a first-time perps user\n *\n * @param state - PerpsController state\n * @returns true if user is first-time, false otherwise\n */\nexport const selectIsFirstTimeUser = (\n state: PerpsControllerState | undefined,\n): boolean => {\n if (state?.isTestnet) {\n return state?.isFirstTimeUser?.testnet ?? true;\n }\n return state?.isFirstTimeUser?.mainnet ?? true;\n};\n\n/**\n * Select whether user has ever placed their first successful order\n *\n * @param state - PerpsController state\n * @returns boolean indicating if first order was placed\n */\nexport const selectHasPlacedFirstOrder = (\n state: PerpsControllerState,\n): boolean => {\n if (state?.isTestnet) {\n return state?.hasPlacedFirstOrder?.testnet ?? false;\n }\n return state?.hasPlacedFirstOrder?.mainnet ?? false;\n};\n\n/**\n * Select watchlist markets for the current network\n *\n * @param state - PerpsController state\n * @returns Array of watchlist market symbols for current network\n */\nexport const selectWatchlistMarkets = (\n state: PerpsControllerState,\n): string[] => {\n if (state?.isTestnet) {\n return state?.watchlistMarkets?.testnet ?? [];\n }\n return state?.watchlistMarkets?.mainnet ?? [];\n};\n\n/**\n * Check if a specific market is in the watchlist on the current network\n *\n * @param state - PerpsController state\n * @param symbol - Market symbol to check (e.g., 'BTC', 'ETH')\n * @returns boolean indicating if market is in watchlist\n */\nexport const selectIsWatchlistMarket = (\n state: PerpsControllerState,\n symbol: string,\n): boolean => {\n const watchlist = selectWatchlistMarkets(state);\n return watchlist.includes(symbol);\n};\n\n/**\n * Select trade configuration for a specific market on the current network.\n * Uses memoization to return stable object references and prevent unnecessary re-renders.\n *\n * Usage: selectTradeConfiguration(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The trade configuration for the specified market, or undefined.\n */\n\nexport const selectTradeConfiguration = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (isTestnet, configs, coin): { leverage?: number } | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n const config = configs?.[network]?.[coin];\n\n if (!config?.leverage) {\n return undefined;\n }\n\n return { leverage: config.leverage };\n },\n);\n\n/**\n * Select pending trade configuration for a specific market on the current network.\n * Returns undefined if config doesn't exist or has expired (more than 5 minutes old).\n *\n * Usage: selectPendingTradeConfiguration(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The pending trade configuration, or undefined if expired or not found.\n */\n\nexport const selectPendingTradeConfiguration = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (\n isTestnet,\n configs,\n coin,\n ):\n | {\n amount?: string;\n leverage?: number;\n takeProfitPrice?: string;\n stopLossPrice?: string;\n limitPrice?: string;\n orderType?: 'market' | 'limit';\n selectedPaymentToken?: PerpsSelectedPaymentToken | null;\n }\n | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n const config = configs?.[network]?.[coin]?.pendingConfig;\n\n if (!config) {\n return undefined;\n }\n\n // Check if config has expired (5 minutes = 300,000 milliseconds)\n const FIVE_MINUTES_MS = 5 * 60 * 1000;\n const now = Date.now();\n const age = now - config.timestamp;\n\n if (age > FIVE_MINUTES_MS) {\n // Config expired, return undefined\n return undefined;\n }\n\n // Return config without timestamp\n const { timestamp, ...configWithoutTimestamp } = config;\n return configWithoutTimestamp;\n },\n);\n\n/**\n * Select market filter preferences (network-independent)\n *\n * @param state - PerpsController state\n * @returns Sort/filter preferences object with optionId and direction\n */\nexport const selectMarketFilterPreferences = (\n state: PerpsControllerState,\n): { optionId: SortOptionId; direction: SortDirection } => {\n const pref = state?.marketFilterPreferences;\n\n // Handle legacy string format (backward compatibility)\n if (typeof pref === 'string') {\n // Map legacy compound IDs to new format\n // Old format: 'priceChange-desc' or 'priceChange-asc'\n // New format: { optionId: 'priceChange', direction: 'desc'/'asc' }\n if (pref === 'priceChange-desc') {\n return {\n optionId: 'priceChange',\n direction: 'desc',\n };\n }\n if (pref === 'priceChange-asc') {\n return {\n optionId: 'priceChange',\n direction: 'asc',\n };\n }\n\n // Handle other simple legacy strings (e.g., 'volume', 'openInterest', etc.)\n return {\n optionId: pref as SortOptionId,\n direction: MARKET_SORTING_CONFIG.DefaultDirection,\n };\n }\n\n // Return new object format or default\n return (\n pref ?? {\n optionId: MARKET_SORTING_CONFIG.DefaultSortOptionId,\n direction: MARKET_SORTING_CONFIG.DefaultDirection,\n }\n );\n};\n\n/**\n * Select order book grouping for a specific market on the current network.\n *\n * Usage: selectOrderBookGrouping(state, coin)\n *\n * @param state - The perps controller state.\n * @param coin - The market coin symbol.\n * @returns The order book grouping value, or undefined.\n */\n\nexport const selectOrderBookGrouping = createSelector(\n [\n (state: PerpsControllerState): boolean | undefined => state?.isTestnet,\n (\n state: PerpsControllerState,\n _coin: string,\n ): PerpsControllerState['tradeConfigurations'] | undefined =>\n state?.tradeConfigurations,\n (_state: PerpsControllerState, coin: string): string => coin,\n ],\n (isTestnet, configs, coin): number | undefined => {\n const network = isTestnet ? 'testnet' : 'mainnet';\n return configs?.[network]?.[coin]?.orderBookGrouping;\n },\n);\n"]}