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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/CHANGELOG.md +0 -25
  2. package/dist/PerpsController.cjs +65 -3077
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts +82 -969
  5. package/dist/PerpsController.d.cts.map +1 -1
  6. package/dist/PerpsController.d.mts +82 -969
  7. package/dist/PerpsController.d.mts.map +1 -1
  8. package/dist/PerpsController.mjs +62 -3073
  9. package/dist/PerpsController.mjs.map +1 -1
  10. package/dist/index.cjs +1 -63
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +2 -38
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.mts +2 -38
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +1 -46
  17. package/dist/index.mjs.map +1 -1
  18. package/package.json +2 -16
  19. package/dist/aggregation/SubscriptionMultiplexer.cjs +0 -441
  20. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +0 -1
  21. package/dist/aggregation/SubscriptionMultiplexer.d.cts +0 -171
  22. package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +0 -1
  23. package/dist/aggregation/SubscriptionMultiplexer.d.mts +0 -171
  24. package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +0 -1
  25. package/dist/aggregation/SubscriptionMultiplexer.mjs +0 -437
  26. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +0 -1
  27. package/dist/aggregation/index.cjs +0 -9
  28. package/dist/aggregation/index.cjs.map +0 -1
  29. package/dist/aggregation/index.d.cts +0 -6
  30. package/dist/aggregation/index.d.cts.map +0 -1
  31. package/dist/aggregation/index.d.mts +0 -6
  32. package/dist/aggregation/index.d.mts.map +0 -1
  33. package/dist/aggregation/index.mjs +0 -5
  34. package/dist/aggregation/index.mjs.map +0 -1
  35. package/dist/constants/chartConfig.cjs +0 -227
  36. package/dist/constants/chartConfig.cjs.map +0 -1
  37. package/dist/constants/chartConfig.d.cts +0 -216
  38. package/dist/constants/chartConfig.d.cts.map +0 -1
  39. package/dist/constants/chartConfig.d.mts +0 -216
  40. package/dist/constants/chartConfig.d.mts.map +0 -1
  41. package/dist/constants/chartConfig.mjs +0 -221
  42. package/dist/constants/chartConfig.mjs.map +0 -1
  43. package/dist/constants/eventNames.cjs +0 -436
  44. package/dist/constants/eventNames.cjs.map +0 -1
  45. package/dist/constants/eventNames.d.cts +0 -387
  46. package/dist/constants/eventNames.d.cts.map +0 -1
  47. package/dist/constants/eventNames.d.mts +0 -387
  48. package/dist/constants/eventNames.d.mts.map +0 -1
  49. package/dist/constants/eventNames.mjs +0 -433
  50. package/dist/constants/eventNames.mjs.map +0 -1
  51. package/dist/constants/hyperLiquidConfig.cjs +0 -380
  52. package/dist/constants/hyperLiquidConfig.cjs.map +0 -1
  53. package/dist/constants/hyperLiquidConfig.d.cts +0 -236
  54. package/dist/constants/hyperLiquidConfig.d.cts.map +0 -1
  55. package/dist/constants/hyperLiquidConfig.d.mts +0 -236
  56. package/dist/constants/hyperLiquidConfig.d.mts.map +0 -1
  57. package/dist/constants/hyperLiquidConfig.mjs +0 -371
  58. package/dist/constants/hyperLiquidConfig.mjs.map +0 -1
  59. package/dist/constants/index.cjs +0 -28
  60. package/dist/constants/index.cjs.map +0 -1
  61. package/dist/constants/index.d.cts +0 -12
  62. package/dist/constants/index.d.cts.map +0 -1
  63. package/dist/constants/index.d.mts +0 -12
  64. package/dist/constants/index.d.mts.map +0 -1
  65. package/dist/constants/index.mjs +0 -12
  66. package/dist/constants/index.mjs.map +0 -1
  67. package/dist/constants/myxConfig.cjs +0 -229
  68. package/dist/constants/myxConfig.cjs.map +0 -1
  69. package/dist/constants/myxConfig.d.cts +0 -106
  70. package/dist/constants/myxConfig.d.cts.map +0 -1
  71. package/dist/constants/myxConfig.d.mts +0 -106
  72. package/dist/constants/myxConfig.d.mts.map +0 -1
  73. package/dist/constants/myxConfig.mjs +0 -219
  74. package/dist/constants/myxConfig.mjs.map +0 -1
  75. package/dist/constants/orderTypes.cjs +0 -31
  76. package/dist/constants/orderTypes.cjs.map +0 -1
  77. package/dist/constants/orderTypes.d.cts +0 -19
  78. package/dist/constants/orderTypes.d.cts.map +0 -1
  79. package/dist/constants/orderTypes.d.mts +0 -19
  80. package/dist/constants/orderTypes.d.mts.map +0 -1
  81. package/dist/constants/orderTypes.mjs +0 -27
  82. package/dist/constants/orderTypes.mjs.map +0 -1
  83. package/dist/constants/performanceMetrics.cjs +0 -63
  84. package/dist/constants/performanceMetrics.cjs.map +0 -1
  85. package/dist/constants/performanceMetrics.d.cts +0 -46
  86. package/dist/constants/performanceMetrics.d.cts.map +0 -1
  87. package/dist/constants/performanceMetrics.d.mts +0 -46
  88. package/dist/constants/performanceMetrics.d.mts.map +0 -1
  89. package/dist/constants/performanceMetrics.mjs +0 -60
  90. package/dist/constants/performanceMetrics.mjs.map +0 -1
  91. package/dist/constants/perpsConfig.cjs +0 -295
  92. package/dist/constants/perpsConfig.cjs.map +0 -1
  93. package/dist/constants/perpsConfig.d.cts +0 -221
  94. package/dist/constants/perpsConfig.d.cts.map +0 -1
  95. package/dist/constants/perpsConfig.d.mts +0 -221
  96. package/dist/constants/perpsConfig.d.mts.map +0 -1
  97. package/dist/constants/perpsConfig.mjs +0 -292
  98. package/dist/constants/perpsConfig.mjs.map +0 -1
  99. package/dist/constants/transactionsHistoryConfig.cjs +0 -19
  100. package/dist/constants/transactionsHistoryConfig.cjs.map +0 -1
  101. package/dist/constants/transactionsHistoryConfig.d.cts +0 -16
  102. package/dist/constants/transactionsHistoryConfig.d.cts.map +0 -1
  103. package/dist/constants/transactionsHistoryConfig.d.mts +0 -16
  104. package/dist/constants/transactionsHistoryConfig.d.mts.map +0 -1
  105. package/dist/constants/transactionsHistoryConfig.mjs +0 -16
  106. package/dist/constants/transactionsHistoryConfig.mjs.map +0 -1
  107. package/dist/perpsErrorCodes.cjs +0 -80
  108. package/dist/perpsErrorCodes.cjs.map +0 -1
  109. package/dist/perpsErrorCodes.d.cts +0 -65
  110. package/dist/perpsErrorCodes.d.cts.map +0 -1
  111. package/dist/perpsErrorCodes.d.mts +0 -65
  112. package/dist/perpsErrorCodes.d.mts.map +0 -1
  113. package/dist/perpsErrorCodes.mjs +0 -77
  114. package/dist/perpsErrorCodes.mjs.map +0 -1
  115. package/dist/providers/AggregatedPerpsProvider.cjs +0 -508
  116. package/dist/providers/AggregatedPerpsProvider.cjs.map +0 -1
  117. package/dist/providers/AggregatedPerpsProvider.d.cts +0 -171
  118. package/dist/providers/AggregatedPerpsProvider.d.cts.map +0 -1
  119. package/dist/providers/AggregatedPerpsProvider.d.mts +0 -171
  120. package/dist/providers/AggregatedPerpsProvider.d.mts.map +0 -1
  121. package/dist/providers/AggregatedPerpsProvider.mjs +0 -504
  122. package/dist/providers/AggregatedPerpsProvider.mjs.map +0 -1
  123. package/dist/providers/HyperLiquidProvider.cjs +0 -5679
  124. package/dist/providers/HyperLiquidProvider.cjs.map +0 -1
  125. package/dist/providers/HyperLiquidProvider.d.cts +0 -516
  126. package/dist/providers/HyperLiquidProvider.d.cts.map +0 -1
  127. package/dist/providers/HyperLiquidProvider.d.mts +0 -516
  128. package/dist/providers/HyperLiquidProvider.d.mts.map +0 -1
  129. package/dist/providers/HyperLiquidProvider.mjs +0 -5675
  130. package/dist/providers/HyperLiquidProvider.mjs.map +0 -1
  131. package/dist/providers/MYXProvider.cjs +0 -514
  132. package/dist/providers/MYXProvider.cjs.map +0 -1
  133. package/dist/providers/MYXProvider.d.cts +0 -105
  134. package/dist/providers/MYXProvider.d.cts.map +0 -1
  135. package/dist/providers/MYXProvider.d.mts +0 -105
  136. package/dist/providers/MYXProvider.d.mts.map +0 -1
  137. package/dist/providers/MYXProvider.mjs +0 -510
  138. package/dist/providers/MYXProvider.mjs.map +0 -1
  139. package/dist/routing/ProviderRouter.cjs +0 -154
  140. package/dist/routing/ProviderRouter.cjs.map +0 -1
  141. package/dist/routing/ProviderRouter.d.cts +0 -112
  142. package/dist/routing/ProviderRouter.d.cts.map +0 -1
  143. package/dist/routing/ProviderRouter.d.mts +0 -112
  144. package/dist/routing/ProviderRouter.d.mts.map +0 -1
  145. package/dist/routing/ProviderRouter.mjs +0 -150
  146. package/dist/routing/ProviderRouter.mjs.map +0 -1
  147. package/dist/routing/index.cjs +0 -9
  148. package/dist/routing/index.cjs.map +0 -1
  149. package/dist/routing/index.d.cts +0 -6
  150. package/dist/routing/index.d.cts.map +0 -1
  151. package/dist/routing/index.d.mts +0 -6
  152. package/dist/routing/index.d.mts.map +0 -1
  153. package/dist/routing/index.mjs +0 -5
  154. package/dist/routing/index.mjs.map +0 -1
  155. package/dist/selectors.cjs +0 -166
  156. package/dist/selectors.cjs.map +0 -1
  157. package/dist/selectors.d.cts +0 -362
  158. package/dist/selectors.d.cts.map +0 -1
  159. package/dist/selectors.d.mts +0 -362
  160. package/dist/selectors.d.mts.map +0 -1
  161. package/dist/selectors.mjs +0 -158
  162. package/dist/selectors.mjs.map +0 -1
  163. package/dist/services/AccountService.cjs +0 -324
  164. package/dist/services/AccountService.cjs.map +0 -1
  165. package/dist/services/AccountService.d.cts +0 -56
  166. package/dist/services/AccountService.d.cts.map +0 -1
  167. package/dist/services/AccountService.d.mts +0 -56
  168. package/dist/services/AccountService.d.mts.map +0 -1
  169. package/dist/services/AccountService.mjs +0 -320
  170. package/dist/services/AccountService.mjs.map +0 -1
  171. package/dist/services/DataLakeService.cjs +0 -233
  172. package/dist/services/DataLakeService.cjs.map +0 -1
  173. package/dist/services/DataLakeService.d.cts +0 -51
  174. package/dist/services/DataLakeService.d.cts.map +0 -1
  175. package/dist/services/DataLakeService.d.mts +0 -51
  176. package/dist/services/DataLakeService.d.mts.map +0 -1
  177. package/dist/services/DataLakeService.mjs +0 -229
  178. package/dist/services/DataLakeService.mjs.map +0 -1
  179. package/dist/services/DepositService.cjs +0 -98
  180. package/dist/services/DepositService.cjs.map +0 -1
  181. package/dist/services/DepositService.d.cts +0 -39
  182. package/dist/services/DepositService.d.cts.map +0 -1
  183. package/dist/services/DepositService.d.mts +0 -39
  184. package/dist/services/DepositService.d.mts.map +0 -1
  185. package/dist/services/DepositService.mjs +0 -94
  186. package/dist/services/DepositService.mjs.map +0 -1
  187. package/dist/services/EligibilityService.cjs +0 -173
  188. package/dist/services/EligibilityService.cjs.map +0 -1
  189. package/dist/services/EligibilityService.d.cts +0 -39
  190. package/dist/services/EligibilityService.d.cts.map +0 -1
  191. package/dist/services/EligibilityService.d.mts +0 -39
  192. package/dist/services/EligibilityService.d.mts.map +0 -1
  193. package/dist/services/EligibilityService.mjs +0 -169
  194. package/dist/services/EligibilityService.mjs.map +0 -1
  195. package/dist/services/FeatureFlagConfigurationService.cjs +0 -257
  196. package/dist/services/FeatureFlagConfigurationService.cjs.map +0 -1
  197. package/dist/services/FeatureFlagConfigurationService.d.cts +0 -73
  198. package/dist/services/FeatureFlagConfigurationService.d.cts.map +0 -1
  199. package/dist/services/FeatureFlagConfigurationService.d.mts +0 -73
  200. package/dist/services/FeatureFlagConfigurationService.d.mts.map +0 -1
  201. package/dist/services/FeatureFlagConfigurationService.mjs +0 -253
  202. package/dist/services/FeatureFlagConfigurationService.mjs.map +0 -1
  203. package/dist/services/HyperLiquidClientService.cjs +0 -867
  204. package/dist/services/HyperLiquidClientService.cjs.map +0 -1
  205. package/dist/services/HyperLiquidClientService.d.cts +0 -214
  206. package/dist/services/HyperLiquidClientService.d.cts.map +0 -1
  207. package/dist/services/HyperLiquidClientService.d.mts +0 -214
  208. package/dist/services/HyperLiquidClientService.d.mts.map +0 -1
  209. package/dist/services/HyperLiquidClientService.mjs +0 -862
  210. package/dist/services/HyperLiquidClientService.mjs.map +0 -1
  211. package/dist/services/HyperLiquidSubscriptionService.cjs +0 -2199
  212. package/dist/services/HyperLiquidSubscriptionService.cjs.map +0 -1
  213. package/dist/services/HyperLiquidSubscriptionService.d.cts +0 -187
  214. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +0 -1
  215. package/dist/services/HyperLiquidSubscriptionService.d.mts +0 -187
  216. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +0 -1
  217. package/dist/services/HyperLiquidSubscriptionService.mjs +0 -2195
  218. package/dist/services/HyperLiquidSubscriptionService.mjs.map +0 -1
  219. package/dist/services/HyperLiquidWalletService.cjs +0 -163
  220. package/dist/services/HyperLiquidWalletService.cjs.map +0 -1
  221. package/dist/services/HyperLiquidWalletService.d.cts +0 -78
  222. package/dist/services/HyperLiquidWalletService.d.cts.map +0 -1
  223. package/dist/services/HyperLiquidWalletService.d.mts +0 -78
  224. package/dist/services/HyperLiquidWalletService.d.mts.map +0 -1
  225. package/dist/services/HyperLiquidWalletService.mjs +0 -159
  226. package/dist/services/HyperLiquidWalletService.mjs.map +0 -1
  227. package/dist/services/MYXClientService.cjs +0 -304
  228. package/dist/services/MYXClientService.cjs.map +0 -1
  229. package/dist/services/MYXClientService.d.cts +0 -81
  230. package/dist/services/MYXClientService.d.cts.map +0 -1
  231. package/dist/services/MYXClientService.d.mts +0 -81
  232. package/dist/services/MYXClientService.d.mts.map +0 -1
  233. package/dist/services/MYXClientService.mjs +0 -300
  234. package/dist/services/MYXClientService.mjs.map +0 -1
  235. package/dist/services/MarketDataService.cjs +0 -848
  236. package/dist/services/MarketDataService.cjs.map +0 -1
  237. package/dist/services/MarketDataService.d.cts +0 -291
  238. package/dist/services/MarketDataService.d.cts.map +0 -1
  239. package/dist/services/MarketDataService.d.mts +0 -291
  240. package/dist/services/MarketDataService.d.mts.map +0 -1
  241. package/dist/services/MarketDataService.mjs +0 -844
  242. package/dist/services/MarketDataService.mjs.map +0 -1
  243. package/dist/services/RewardsIntegrationService.cjs +0 -120
  244. package/dist/services/RewardsIntegrationService.cjs.map +0 -1
  245. package/dist/services/RewardsIntegrationService.d.cts +0 -28
  246. package/dist/services/RewardsIntegrationService.d.cts.map +0 -1
  247. package/dist/services/RewardsIntegrationService.d.mts +0 -28
  248. package/dist/services/RewardsIntegrationService.d.mts.map +0 -1
  249. package/dist/services/RewardsIntegrationService.mjs +0 -116
  250. package/dist/services/RewardsIntegrationService.mjs.map +0 -1
  251. package/dist/services/ServiceContext.cjs +0 -3
  252. package/dist/services/ServiceContext.cjs.map +0 -1
  253. package/dist/services/ServiceContext.d.cts +0 -86
  254. package/dist/services/ServiceContext.d.cts.map +0 -1
  255. package/dist/services/ServiceContext.d.mts +0 -86
  256. package/dist/services/ServiceContext.d.mts.map +0 -1
  257. package/dist/services/ServiceContext.mjs +0 -2
  258. package/dist/services/ServiceContext.mjs.map +0 -1
  259. package/dist/services/TradingReadinessCache.cjs +0 -288
  260. package/dist/services/TradingReadinessCache.cjs.map +0 -1
  261. package/dist/services/TradingReadinessCache.d.cts +0 -174
  262. package/dist/services/TradingReadinessCache.d.cts.map +0 -1
  263. package/dist/services/TradingReadinessCache.d.mts +0 -174
  264. package/dist/services/TradingReadinessCache.d.mts.map +0 -1
  265. package/dist/services/TradingReadinessCache.mjs +0 -285
  266. package/dist/services/TradingReadinessCache.mjs.map +0 -1
  267. package/dist/services/TradingService.cjs +0 -1457
  268. package/dist/services/TradingService.cjs.map +0 -1
  269. package/dist/services/TradingService.d.cts +0 -195
  270. package/dist/services/TradingService.d.cts.map +0 -1
  271. package/dist/services/TradingService.d.mts +0 -195
  272. package/dist/services/TradingService.d.mts.map +0 -1
  273. package/dist/services/TradingService.mjs +0 -1453
  274. package/dist/services/TradingService.mjs.map +0 -1
  275. package/dist/types/config.cjs +0 -3
  276. package/dist/types/config.cjs.map +0 -1
  277. package/dist/types/config.d.cts +0 -49
  278. package/dist/types/config.d.cts.map +0 -1
  279. package/dist/types/config.d.mts +0 -49
  280. package/dist/types/config.d.mts.map +0 -1
  281. package/dist/types/config.mjs +0 -2
  282. package/dist/types/config.mjs.map +0 -1
  283. package/dist/types/hyperliquid-types.cjs +0 -3
  284. package/dist/types/hyperliquid-types.cjs.map +0 -1
  285. package/dist/types/hyperliquid-types.d.cts +0 -20
  286. package/dist/types/hyperliquid-types.d.cts.map +0 -1
  287. package/dist/types/hyperliquid-types.d.mts +0 -20
  288. package/dist/types/hyperliquid-types.d.mts.map +0 -1
  289. package/dist/types/hyperliquid-types.mjs +0 -2
  290. package/dist/types/hyperliquid-types.mjs.map +0 -1
  291. package/dist/types/index.cjs +0 -115
  292. package/dist/types/index.cjs.map +0 -1
  293. package/dist/types/index.d.cts +0 -1262
  294. package/dist/types/index.d.cts.map +0 -1
  295. package/dist/types/index.d.mts +0 -1262
  296. package/dist/types/index.d.mts.map +0 -1
  297. package/dist/types/index.mjs +0 -97
  298. package/dist/types/index.mjs.map +0 -1
  299. package/dist/types/messenger.cjs +0 -3
  300. package/dist/types/messenger.cjs.map +0 -1
  301. package/dist/types/messenger.d.cts +0 -27
  302. package/dist/types/messenger.d.cts.map +0 -1
  303. package/dist/types/messenger.d.mts +0 -27
  304. package/dist/types/messenger.d.mts.map +0 -1
  305. package/dist/types/messenger.mjs +0 -2
  306. package/dist/types/messenger.mjs.map +0 -1
  307. package/dist/types/myx-types.cjs +0 -25
  308. package/dist/types/myx-types.cjs.map +0 -1
  309. package/dist/types/myx-types.d.cts +0 -63
  310. package/dist/types/myx-types.d.cts.map +0 -1
  311. package/dist/types/myx-types.d.mts +0 -63
  312. package/dist/types/myx-types.d.mts.map +0 -1
  313. package/dist/types/myx-types.mjs +0 -22
  314. package/dist/types/myx-types.mjs.map +0 -1
  315. package/dist/types/perps-types.cjs +0 -4
  316. package/dist/types/perps-types.cjs.map +0 -1
  317. package/dist/types/perps-types.d.cts +0 -105
  318. package/dist/types/perps-types.d.cts.map +0 -1
  319. package/dist/types/perps-types.d.mts +0 -105
  320. package/dist/types/perps-types.d.mts.map +0 -1
  321. package/dist/types/perps-types.mjs +0 -2
  322. package/dist/types/perps-types.mjs.map +0 -1
  323. package/dist/types/token.cjs +0 -3
  324. package/dist/types/token.cjs.map +0 -1
  325. package/dist/types/token.d.cts +0 -25
  326. package/dist/types/token.d.cts.map +0 -1
  327. package/dist/types/token.d.mts +0 -25
  328. package/dist/types/token.d.mts.map +0 -1
  329. package/dist/types/token.mjs +0 -2
  330. package/dist/types/token.mjs.map +0 -1
  331. package/dist/types/transactionTypes.cjs +0 -28
  332. package/dist/types/transactionTypes.cjs.map +0 -1
  333. package/dist/types/transactionTypes.d.cts +0 -64
  334. package/dist/types/transactionTypes.d.cts.map +0 -1
  335. package/dist/types/transactionTypes.d.mts +0 -64
  336. package/dist/types/transactionTypes.d.mts.map +0 -1
  337. package/dist/types/transactionTypes.mjs +0 -23
  338. package/dist/types/transactionTypes.mjs.map +0 -1
  339. package/dist/utils/accountUtils.cjs +0 -100
  340. package/dist/utils/accountUtils.cjs.map +0 -1
  341. package/dist/utils/accountUtils.d.cts +0 -30
  342. package/dist/utils/accountUtils.d.cts.map +0 -1
  343. package/dist/utils/accountUtils.d.mts +0 -30
  344. package/dist/utils/accountUtils.d.mts.map +0 -1
  345. package/dist/utils/accountUtils.mjs +0 -92
  346. package/dist/utils/accountUtils.mjs.map +0 -1
  347. package/dist/utils/errorUtils.cjs +0 -35
  348. package/dist/utils/errorUtils.cjs.map +0 -1
  349. package/dist/utils/errorUtils.d.cts +0 -15
  350. package/dist/utils/errorUtils.d.cts.map +0 -1
  351. package/dist/utils/errorUtils.d.mts +0 -15
  352. package/dist/utils/errorUtils.d.mts.map +0 -1
  353. package/dist/utils/errorUtils.mjs +0 -31
  354. package/dist/utils/errorUtils.mjs.map +0 -1
  355. package/dist/utils/hyperLiquidAdapter.cjs +0 -331
  356. package/dist/utils/hyperLiquidAdapter.cjs.map +0 -1
  357. package/dist/utils/hyperLiquidAdapter.d.cts +0 -42
  358. package/dist/utils/hyperLiquidAdapter.d.cts.map +0 -1
  359. package/dist/utils/hyperLiquidAdapter.d.mts +0 -42
  360. package/dist/utils/hyperLiquidAdapter.d.mts.map +0 -1
  361. package/dist/utils/hyperLiquidAdapter.mjs +0 -316
  362. package/dist/utils/hyperLiquidAdapter.mjs.map +0 -1
  363. package/dist/utils/hyperLiquidOrderBookProcessor.cjs +0 -83
  364. package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +0 -1
  365. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +0 -55
  366. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +0 -1
  367. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +0 -55
  368. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +0 -1
  369. package/dist/utils/hyperLiquidOrderBookProcessor.mjs +0 -78
  370. package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +0 -1
  371. package/dist/utils/hyperLiquidValidation.cjs +0 -426
  372. package/dist/utils/hyperLiquidValidation.cjs.map +0 -1
  373. package/dist/utils/hyperLiquidValidation.d.cts +0 -143
  374. package/dist/utils/hyperLiquidValidation.d.cts.map +0 -1
  375. package/dist/utils/hyperLiquidValidation.d.mts +0 -143
  376. package/dist/utils/hyperLiquidValidation.d.mts.map +0 -1
  377. package/dist/utils/hyperLiquidValidation.mjs +0 -413
  378. package/dist/utils/hyperLiquidValidation.mjs.map +0 -1
  379. package/dist/utils/idUtils.cjs +0 -18
  380. package/dist/utils/idUtils.cjs.map +0 -1
  381. package/dist/utils/idUtils.d.cts +0 -6
  382. package/dist/utils/idUtils.d.cts.map +0 -1
  383. package/dist/utils/idUtils.d.mts +0 -6
  384. package/dist/utils/idUtils.d.mts.map +0 -1
  385. package/dist/utils/idUtils.mjs +0 -10
  386. package/dist/utils/idUtils.mjs.map +0 -1
  387. package/dist/utils/index.cjs +0 -59
  388. package/dist/utils/index.cjs.map +0 -1
  389. package/dist/utils/index.d.cts +0 -25
  390. package/dist/utils/index.d.cts.map +0 -1
  391. package/dist/utils/index.d.mts +0 -25
  392. package/dist/utils/index.d.mts.map +0 -1
  393. package/dist/utils/index.mjs +0 -30
  394. package/dist/utils/index.mjs.map +0 -1
  395. package/dist/utils/marketDataTransform.cjs +0 -211
  396. package/dist/utils/marketDataTransform.cjs.map +0 -1
  397. package/dist/utils/marketDataTransform.d.cts +0 -40
  398. package/dist/utils/marketDataTransform.d.cts.map +0 -1
  399. package/dist/utils/marketDataTransform.d.mts +0 -40
  400. package/dist/utils/marketDataTransform.d.mts.map +0 -1
  401. package/dist/utils/marketDataTransform.mjs +0 -205
  402. package/dist/utils/marketDataTransform.mjs.map +0 -1
  403. package/dist/utils/marketUtils.cjs +0 -151
  404. package/dist/utils/marketUtils.cjs.map +0 -1
  405. package/dist/utils/marketUtils.d.cts +0 -30
  406. package/dist/utils/marketUtils.d.cts.map +0 -1
  407. package/dist/utils/marketUtils.d.mts +0 -30
  408. package/dist/utils/marketUtils.d.mts.map +0 -1
  409. package/dist/utils/marketUtils.mjs +0 -138
  410. package/dist/utils/marketUtils.mjs.map +0 -1
  411. package/dist/utils/myxAdapter.cjs +0 -224
  412. package/dist/utils/myxAdapter.cjs.map +0 -1
  413. package/dist/utils/myxAdapter.d.cts +0 -81
  414. package/dist/utils/myxAdapter.d.cts.map +0 -1
  415. package/dist/utils/myxAdapter.d.mts +0 -81
  416. package/dist/utils/myxAdapter.d.mts.map +0 -1
  417. package/dist/utils/myxAdapter.mjs +0 -213
  418. package/dist/utils/myxAdapter.mjs.map +0 -1
  419. package/dist/utils/orderCalculations.cjs +0 -283
  420. package/dist/utils/orderCalculations.cjs.map +0 -1
  421. package/dist/utils/orderCalculations.d.cts +0 -107
  422. package/dist/utils/orderCalculations.d.cts.map +0 -1
  423. package/dist/utils/orderCalculations.d.mts +0 -107
  424. package/dist/utils/orderCalculations.d.mts.map +0 -1
  425. package/dist/utils/orderCalculations.mjs +0 -274
  426. package/dist/utils/orderCalculations.mjs.map +0 -1
  427. package/dist/utils/rewardsUtils.cjs +0 -98
  428. package/dist/utils/rewardsUtils.cjs.map +0 -1
  429. package/dist/utils/rewardsUtils.d.cts +0 -33
  430. package/dist/utils/rewardsUtils.d.cts.map +0 -1
  431. package/dist/utils/rewardsUtils.d.mts +0 -33
  432. package/dist/utils/rewardsUtils.d.mts.map +0 -1
  433. package/dist/utils/rewardsUtils.mjs +0 -92
  434. package/dist/utils/rewardsUtils.mjs.map +0 -1
  435. package/dist/utils/significantFigures.cjs +0 -88
  436. package/dist/utils/significantFigures.cjs.map +0 -1
  437. package/dist/utils/significantFigures.d.cts +0 -25
  438. package/dist/utils/significantFigures.d.cts.map +0 -1
  439. package/dist/utils/significantFigures.d.mts +0 -25
  440. package/dist/utils/significantFigures.d.mts.map +0 -1
  441. package/dist/utils/significantFigures.mjs +0 -82
  442. package/dist/utils/significantFigures.mjs.map +0 -1
  443. package/dist/utils/sortMarkets.cjs +0 -93
  444. package/dist/utils/sortMarkets.cjs.map +0 -1
  445. package/dist/utils/sortMarkets.d.cts +0 -27
  446. package/dist/utils/sortMarkets.d.cts.map +0 -1
  447. package/dist/utils/sortMarkets.d.mts +0 -27
  448. package/dist/utils/sortMarkets.d.mts.map +0 -1
  449. package/dist/utils/sortMarkets.mjs +0 -88
  450. package/dist/utils/sortMarkets.mjs.map +0 -1
  451. package/dist/utils/standaloneInfoClient.cjs +0 -70
  452. package/dist/utils/standaloneInfoClient.cjs.map +0 -1
  453. package/dist/utils/standaloneInfoClient.d.cts +0 -37
  454. package/dist/utils/standaloneInfoClient.d.cts.map +0 -1
  455. package/dist/utils/standaloneInfoClient.d.mts +0 -37
  456. package/dist/utils/standaloneInfoClient.d.mts.map +0 -1
  457. package/dist/utils/standaloneInfoClient.mjs +0 -64
  458. package/dist/utils/standaloneInfoClient.mjs.map +0 -1
  459. package/dist/utils/stringParseUtils.cjs +0 -18
  460. package/dist/utils/stringParseUtils.cjs.map +0 -1
  461. package/dist/utils/stringParseUtils.d.cts +0 -3
  462. package/dist/utils/stringParseUtils.d.cts.map +0 -1
  463. package/dist/utils/stringParseUtils.d.mts +0 -3
  464. package/dist/utils/stringParseUtils.d.mts.map +0 -1
  465. package/dist/utils/stringParseUtils.mjs +0 -13
  466. package/dist/utils/stringParseUtils.mjs.map +0 -1
  467. package/dist/utils/transferData.cjs +0 -33
  468. package/dist/utils/transferData.cjs.map +0 -1
  469. package/dist/utils/transferData.d.cts +0 -9
  470. package/dist/utils/transferData.d.cts.map +0 -1
  471. package/dist/utils/transferData.d.mts +0 -9
  472. package/dist/utils/transferData.d.mts.map +0 -1
  473. package/dist/utils/transferData.mjs +0 -29
  474. package/dist/utils/transferData.mjs.map +0 -1
  475. package/dist/utils/wait.cjs +0 -6
  476. package/dist/utils/wait.cjs.map +0 -1
  477. package/dist/utils/wait.d.cts +0 -2
  478. package/dist/utils/wait.d.cts.map +0 -1
  479. package/dist/utils/wait.d.mts +0 -2
  480. package/dist/utils/wait.d.mts.map +0 -1
  481. package/dist/utils/wait.mjs +0 -2
  482. package/dist/utils/wait.mjs.map +0 -1
@@ -1,224 +0,0 @@
1
- "use strict";
2
- /**
3
- * MYX SDK Adapter Utilities
4
- *
5
- * Stage 1 adapters for transforming between MetaMask Perps API types and MYX SDK types.
6
- * Only includes adapters needed for market display and price fetching.
7
- *
8
- * Portable: no mobile-specific imports.
9
- * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).
10
- *
11
- * Key differences from HyperLiquid:
12
- * - Prices use 30 decimals
13
- * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)
14
- * - Multiple pools can exist per symbol (MPM model)
15
- * - USDT collateral (vs USDC)
16
- */
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.extractSymbolFromPoolId = exports.buildSymbolPoolsMap = exports.buildPoolSymbolMap = exports.isOverlappingMarket = exports.filterMYXExclusiveMarkets = exports.adaptMarketDataFromMYX = exports.adaptPriceFromMYX = exports.adaptMarketFromMYX = void 0;
19
- const myxConfig_1 = require("../constants/myxConfig.cjs");
20
- const myx_types_1 = require("../types/myx-types.cjs");
21
- /**
22
- * Format a price change value with sign prefix.
23
- * Uses injected formatters (same pattern as marketDataTransform.ts formatChange).
24
- *
25
- * @param change - The price change value to format.
26
- * @param formatters - Injectable formatters for platform-agnostic formatting.
27
- * @returns The formatted change string with sign and dollar symbol.
28
- */
29
- function formatChange(change, formatters) {
30
- if (isNaN(change) || !isFinite(change)) {
31
- return '$0.00';
32
- }
33
- if (change === 0) {
34
- return '$0.00';
35
- }
36
- const formatted = formatters.formatPerpsFiat(Math.abs(change), {
37
- ranges: formatters.priceRangesUniversal,
38
- });
39
- const valueWithoutDollar = formatted.replace('$', '');
40
- return change > 0 ? `+$${valueWithoutDollar}` : `-$${valueWithoutDollar}`;
41
- }
42
- // ============================================================================
43
- // Market Transformation
44
- // ============================================================================
45
- /**
46
- * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format
47
- *
48
- * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)
49
- * @returns MetaMask Perps API market info object
50
- */
51
- function adaptMarketFromMYX(pool) {
52
- // Extract base symbol from pool data
53
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
54
- // MYX uses fixed 18 decimals for sizes
55
- const szDecimals = 18;
56
- // Default max leverage - MYX supports up to 100x on most markets
57
- // Will be refined when pool level config is fetched
58
- const maxLeverage = 100;
59
- return {
60
- name: symbol,
61
- szDecimals,
62
- maxLeverage,
63
- marginTableId: 0, // MYX doesn't use margin tables like HyperLiquid
64
- minimumOrderSize: 10, // MYX minimum order size is $10
65
- providerId: 'myx',
66
- };
67
- }
68
- exports.adaptMarketFromMYX = adaptMarketFromMYX;
69
- /**
70
- * Convert MYX ticker data to price and change values
71
- *
72
- * @param ticker - Ticker data from MYX SDK
73
- * @returns Object with price string and 24h change percentage
74
- */
75
- function adaptPriceFromMYX(ticker) {
76
- // MYX ticker prices are in 30-decimal format
77
- const priceNum = (0, myxConfig_1.fromMYXPrice)(ticker.price);
78
- // Change is provided as a percentage string (e.g., "2.5" means 2.5%)
79
- const change24h = ticker.change ? parseFloat(ticker.change) : 0;
80
- return {
81
- price: priceNum.toString(),
82
- change24h,
83
- };
84
- }
85
- exports.adaptPriceFromMYX = adaptPriceFromMYX;
86
- /**
87
- * Transform MYX pool and ticker to PerpsMarketData for UI display
88
- *
89
- * @param pool - Pool symbol data from MYX SDK
90
- * @param ticker - Optional ticker data for price info
91
- * @param formatters - Injectable formatters for platform-agnostic formatting
92
- * @returns Formatted market data for UI display
93
- */
94
- function adaptMarketDataFromMYX(pool, ticker, formatters) {
95
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
96
- // Get price data from ticker if available
97
- let price = '0';
98
- let change24h = 0;
99
- let volume = '0';
100
- if (ticker) {
101
- const priceData = adaptPriceFromMYX(ticker);
102
- price = priceData.price;
103
- change24h = priceData.change24h;
104
- // Volume is already in USD (not 30-decimal format)
105
- volume = ticker.volume || '0';
106
- }
107
- // Format using injected formatters (consistent with HyperLiquid via marketDataTransform.ts)
108
- const priceNum = parseFloat(price);
109
- const formattedPrice = formatters.formatPerpsFiat(priceNum);
110
- const priceChange = priceNum * (change24h / 100);
111
- const formattedChange = formatChange(priceChange, formatters);
112
- const formattedChangePercent = formatters.formatPercentage(change24h);
113
- const formattedVolume = formatters.formatVolume(parseFloat(volume));
114
- return {
115
- symbol,
116
- name: getTokenName(symbol),
117
- maxLeverage: '100x', // MYX default
118
- price: formattedPrice,
119
- change24h: formattedChange,
120
- change24hPercent: formattedChangePercent,
121
- volume: formattedVolume,
122
- providerId: 'myx',
123
- };
124
- }
125
- exports.adaptMarketDataFromMYX = adaptMarketDataFromMYX;
126
- // ============================================================================
127
- // Market Filtering
128
- // ============================================================================
129
- /**
130
- * Filter MYX markets to only include MYX-exclusive markets
131
- * Removes markets that overlap with HyperLiquid
132
- *
133
- * @param pools - Array of MYX pool symbols
134
- * @returns Filtered array with only MYX-exclusive markets
135
- */
136
- function filterMYXExclusiveMarkets(pools) {
137
- return pools.filter((pool) => {
138
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
139
- // Exclude markets that overlap with HyperLiquid
140
- return !myx_types_1.MYX_HL_OVERLAPPING_MARKETS.includes(symbol);
141
- });
142
- }
143
- exports.filterMYXExclusiveMarkets = filterMYXExclusiveMarkets;
144
- /**
145
- * Check if a symbol overlaps with HyperLiquid markets
146
- *
147
- * @param symbol - Market symbol to check
148
- * @returns true if the symbol is available on both MYX and HyperLiquid
149
- */
150
- function isOverlappingMarket(symbol) {
151
- return myx_types_1.MYX_HL_OVERLAPPING_MARKETS.includes(symbol);
152
- }
153
- exports.isOverlappingMarket = isOverlappingMarket;
154
- // ============================================================================
155
- // Pool ID Utilities
156
- // ============================================================================
157
- /**
158
- * Build a map of poolId to symbol for quick lookup
159
- *
160
- * @param pools - Array of MYX pool symbols
161
- * @returns Map of poolId to symbol
162
- */
163
- function buildPoolSymbolMap(pools) {
164
- const map = new Map();
165
- for (const pool of pools) {
166
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
167
- map.set(pool.poolId, symbol);
168
- }
169
- return map;
170
- }
171
- exports.buildPoolSymbolMap = buildPoolSymbolMap;
172
- /**
173
- * Build a map of symbol to poolIds (for multi-pool support)
174
- *
175
- * @param pools - Array of MYX pool symbols
176
- * @returns Map of symbol to array of poolIds
177
- */
178
- function buildSymbolPoolsMap(pools) {
179
- const map = new Map();
180
- for (const pool of pools) {
181
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
182
- const existing = map.get(symbol) ?? [];
183
- existing.push(pool.poolId);
184
- map.set(symbol, existing);
185
- }
186
- return map;
187
- }
188
- exports.buildSymbolPoolsMap = buildSymbolPoolsMap;
189
- /**
190
- * Extract symbol from pool ID
191
- * Pool IDs typically contain the symbol as a suffix or can be parsed
192
- *
193
- * @param poolId - MYX pool ID string
194
- * @returns Extracted symbol or poolId as fallback
195
- */
196
- function extractSymbolFromPoolId(poolId) {
197
- // Pool IDs in MYX typically look like "0x..." hex addresses
198
- // The actual symbol comes from the pool's baseSymbol field
199
- // This is a fallback when baseSymbol is not available
200
- return poolId;
201
- }
202
- exports.extractSymbolFromPoolId = extractSymbolFromPoolId;
203
- /**
204
- * Get full token name from symbol
205
- * Returns the symbol as name if not found (MYX-specific tokens)
206
- *
207
- * @param symbol - The market symbol to look up.
208
- * @returns The human-readable token name, or the symbol itself if not found.
209
- */
210
- function getTokenName(symbol) {
211
- const tokenNames = {
212
- BTC: 'Bitcoin',
213
- ETH: 'Ethereum',
214
- BNB: 'BNB',
215
- MYX: 'MYX Protocol',
216
- RHEA: 'Rhea Finance',
217
- PARTI: 'Particle Network',
218
- SKYAI: 'SkyAI',
219
- PUMP: 'PumpFun',
220
- WLFI: 'World Liberty Financial',
221
- };
222
- return tokenNames[symbol] || symbol;
223
- }
224
- //# sourceMappingURL=myxAdapter.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"myxAdapter.cjs","sourceRoot":"","sources":["../../src/utils/myxAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * MYX SDK Adapter Utilities\n *\n * Stage 1 adapters for transforming between MetaMask Perps API types and MYX SDK types.\n * Only includes adapters needed for market display and price fetching.\n *\n * Portable: no mobile-specific imports.\n * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).\n *\n * Key differences from HyperLiquid:\n * - Prices use 30 decimals\n * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)\n * - Multiple pools can exist per symbol (MPM model)\n * - USDT collateral (vs USDC)\n */\n\nimport { fromMYXPrice } from '../constants/myxConfig';\nimport type {\n MarketInfo,\n PerpsMarketData,\n MarketDataFormatters,\n} from '../types';\nimport { MYX_HL_OVERLAPPING_MARKETS } from '../types/myx-types';\nimport type { MYXPoolSymbol, MYXTicker } from '../types/myx-types';\n\n/**\n * Format a price change value with sign prefix.\n * Uses injected formatters (same pattern as marketDataTransform.ts formatChange).\n *\n * @param change - The price change value to format.\n * @param formatters - Injectable formatters for platform-agnostic formatting.\n * @returns The formatted change string with sign and dollar symbol.\n */\nfunction formatChange(\n change: number,\n formatters: MarketDataFormatters,\n): string {\n if (isNaN(change) || !isFinite(change)) {\n return '$0.00';\n }\n if (change === 0) {\n return '$0.00';\n }\n\n const formatted = formatters.formatPerpsFiat(Math.abs(change), {\n ranges: formatters.priceRangesUniversal,\n });\n\n const valueWithoutDollar = formatted.replace('$', '');\n return change > 0 ? `+$${valueWithoutDollar}` : `-$${valueWithoutDollar}`;\n}\n\n// ============================================================================\n// Market Transformation\n// ============================================================================\n\n/**\n * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format\n *\n * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)\n * @returns MetaMask Perps API market info object\n */\nexport function adaptMarketFromMYX(pool: MYXPoolSymbol): MarketInfo {\n // Extract base symbol from pool data\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n\n // MYX uses fixed 18 decimals for sizes\n const szDecimals = 18;\n\n // Default max leverage - MYX supports up to 100x on most markets\n // Will be refined when pool level config is fetched\n const maxLeverage = 100;\n\n return {\n name: symbol,\n szDecimals,\n maxLeverage,\n marginTableId: 0, // MYX doesn't use margin tables like HyperLiquid\n minimumOrderSize: 10, // MYX minimum order size is $10\n providerId: 'myx',\n };\n}\n\n/**\n * Convert MYX ticker data to price and change values\n *\n * @param ticker - Ticker data from MYX SDK\n * @returns Object with price string and 24h change percentage\n */\nexport function adaptPriceFromMYX(ticker: MYXTicker): {\n price: string;\n change24h: number;\n} {\n // MYX ticker prices are in 30-decimal format\n const priceNum = fromMYXPrice(ticker.price);\n\n // Change is provided as a percentage string (e.g., \"2.5\" means 2.5%)\n const change24h = ticker.change ? parseFloat(ticker.change) : 0;\n\n return {\n price: priceNum.toString(),\n change24h,\n };\n}\n\n/**\n * Transform MYX pool and ticker to PerpsMarketData for UI display\n *\n * @param pool - Pool symbol data from MYX SDK\n * @param ticker - Optional ticker data for price info\n * @param formatters - Injectable formatters for platform-agnostic formatting\n * @returns Formatted market data for UI display\n */\nexport function adaptMarketDataFromMYX(\n pool: MYXPoolSymbol,\n ticker: MYXTicker | undefined,\n formatters: MarketDataFormatters,\n): PerpsMarketData {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n\n // Get price data from ticker if available\n let price = '0';\n let change24h = 0;\n let volume = '0';\n\n if (ticker) {\n const priceData = adaptPriceFromMYX(ticker);\n price = priceData.price;\n change24h = priceData.change24h;\n // Volume is already in USD (not 30-decimal format)\n volume = ticker.volume || '0';\n }\n\n // Format using injected formatters (consistent with HyperLiquid via marketDataTransform.ts)\n const priceNum = parseFloat(price);\n const formattedPrice = formatters.formatPerpsFiat(priceNum);\n const priceChange = priceNum * (change24h / 100);\n const formattedChange = formatChange(priceChange, formatters);\n const formattedChangePercent = formatters.formatPercentage(change24h);\n const formattedVolume = formatters.formatVolume(parseFloat(volume));\n\n return {\n symbol,\n name: getTokenName(symbol),\n maxLeverage: '100x', // MYX default\n price: formattedPrice,\n change24h: formattedChange,\n change24hPercent: formattedChangePercent,\n volume: formattedVolume,\n providerId: 'myx',\n };\n}\n\n// ============================================================================\n// Market Filtering\n// ============================================================================\n\n/**\n * Filter MYX markets to only include MYX-exclusive markets\n * Removes markets that overlap with HyperLiquid\n *\n * @param pools - Array of MYX pool symbols\n * @returns Filtered array with only MYX-exclusive markets\n */\nexport function filterMYXExclusiveMarkets(\n pools: MYXPoolSymbol[],\n): MYXPoolSymbol[] {\n return pools.filter((pool) => {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n // Exclude markets that overlap with HyperLiquid\n return !MYX_HL_OVERLAPPING_MARKETS.includes(\n symbol as (typeof MYX_HL_OVERLAPPING_MARKETS)[number],\n );\n });\n}\n\n/**\n * Check if a symbol overlaps with HyperLiquid markets\n *\n * @param symbol - Market symbol to check\n * @returns true if the symbol is available on both MYX and HyperLiquid\n */\nexport function isOverlappingMarket(symbol: string): boolean {\n return MYX_HL_OVERLAPPING_MARKETS.includes(\n symbol as (typeof MYX_HL_OVERLAPPING_MARKETS)[number],\n );\n}\n\n// ============================================================================\n// Pool ID Utilities\n// ============================================================================\n\n/**\n * Build a map of poolId to symbol for quick lookup\n *\n * @param pools - Array of MYX pool symbols\n * @returns Map of poolId to symbol\n */\nexport function buildPoolSymbolMap(\n pools: MYXPoolSymbol[],\n): Map<string, string> {\n const map = new Map<string, string>();\n for (const pool of pools) {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n map.set(pool.poolId, symbol);\n }\n return map;\n}\n\n/**\n * Build a map of symbol to poolIds (for multi-pool support)\n *\n * @param pools - Array of MYX pool symbols\n * @returns Map of symbol to array of poolIds\n */\nexport function buildSymbolPoolsMap(\n pools: MYXPoolSymbol[],\n): Map<string, string[]> {\n const map = new Map<string, string[]>();\n for (const pool of pools) {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n const existing = map.get(symbol) ?? [];\n existing.push(pool.poolId);\n map.set(symbol, existing);\n }\n return map;\n}\n\n/**\n * Extract symbol from pool ID\n * Pool IDs typically contain the symbol as a suffix or can be parsed\n *\n * @param poolId - MYX pool ID string\n * @returns Extracted symbol or poolId as fallback\n */\nexport function extractSymbolFromPoolId(poolId: string): string {\n // Pool IDs in MYX typically look like \"0x...\" hex addresses\n // The actual symbol comes from the pool's baseSymbol field\n // This is a fallback when baseSymbol is not available\n return poolId;\n}\n\n/**\n * Get full token name from symbol\n * Returns the symbol as name if not found (MYX-specific tokens)\n *\n * @param symbol - The market symbol to look up.\n * @returns The human-readable token name, or the symbol itself if not found.\n */\nfunction getTokenName(symbol: string): string {\n const tokenNames: Record<string, string> = {\n BTC: 'Bitcoin',\n ETH: 'Ethereum',\n BNB: 'BNB',\n MYX: 'MYX Protocol',\n RHEA: 'Rhea Finance',\n PARTI: 'Particle Network',\n SKYAI: 'SkyAI',\n PUMP: 'PumpFun',\n WLFI: 'World Liberty Financial',\n };\n\n return tokenNames[symbol] || symbol;\n}\n"]}
@@ -1,81 +0,0 @@
1
- /**
2
- * MYX SDK Adapter Utilities
3
- *
4
- * Stage 1 adapters for transforming between MetaMask Perps API types and MYX SDK types.
5
- * Only includes adapters needed for market display and price fetching.
6
- *
7
- * Portable: no mobile-specific imports.
8
- * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).
9
- *
10
- * Key differences from HyperLiquid:
11
- * - Prices use 30 decimals
12
- * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)
13
- * - Multiple pools can exist per symbol (MPM model)
14
- * - USDT collateral (vs USDC)
15
- */
16
- import type { MarketInfo, PerpsMarketData, MarketDataFormatters } from "../types/index.cjs";
17
- import type { MYXPoolSymbol, MYXTicker } from "../types/myx-types.cjs";
18
- /**
19
- * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format
20
- *
21
- * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)
22
- * @returns MetaMask Perps API market info object
23
- */
24
- export declare function adaptMarketFromMYX(pool: MYXPoolSymbol): MarketInfo;
25
- /**
26
- * Convert MYX ticker data to price and change values
27
- *
28
- * @param ticker - Ticker data from MYX SDK
29
- * @returns Object with price string and 24h change percentage
30
- */
31
- export declare function adaptPriceFromMYX(ticker: MYXTicker): {
32
- price: string;
33
- change24h: number;
34
- };
35
- /**
36
- * Transform MYX pool and ticker to PerpsMarketData for UI display
37
- *
38
- * @param pool - Pool symbol data from MYX SDK
39
- * @param ticker - Optional ticker data for price info
40
- * @param formatters - Injectable formatters for platform-agnostic formatting
41
- * @returns Formatted market data for UI display
42
- */
43
- export declare function adaptMarketDataFromMYX(pool: MYXPoolSymbol, ticker: MYXTicker | undefined, formatters: MarketDataFormatters): PerpsMarketData;
44
- /**
45
- * Filter MYX markets to only include MYX-exclusive markets
46
- * Removes markets that overlap with HyperLiquid
47
- *
48
- * @param pools - Array of MYX pool symbols
49
- * @returns Filtered array with only MYX-exclusive markets
50
- */
51
- export declare function filterMYXExclusiveMarkets(pools: MYXPoolSymbol[]): MYXPoolSymbol[];
52
- /**
53
- * Check if a symbol overlaps with HyperLiquid markets
54
- *
55
- * @param symbol - Market symbol to check
56
- * @returns true if the symbol is available on both MYX and HyperLiquid
57
- */
58
- export declare function isOverlappingMarket(symbol: string): boolean;
59
- /**
60
- * Build a map of poolId to symbol for quick lookup
61
- *
62
- * @param pools - Array of MYX pool symbols
63
- * @returns Map of poolId to symbol
64
- */
65
- export declare function buildPoolSymbolMap(pools: MYXPoolSymbol[]): Map<string, string>;
66
- /**
67
- * Build a map of symbol to poolIds (for multi-pool support)
68
- *
69
- * @param pools - Array of MYX pool symbols
70
- * @returns Map of symbol to array of poolIds
71
- */
72
- export declare function buildSymbolPoolsMap(pools: MYXPoolSymbol[]): Map<string, string[]>;
73
- /**
74
- * Extract symbol from pool ID
75
- * Pool IDs typically contain the symbol as a suffix or can be parsed
76
- *
77
- * @param poolId - MYX pool ID string
78
- * @returns Extracted symbol or poolId as fallback
79
- */
80
- export declare function extractSymbolFromPoolId(poolId: string): string;
81
- //# sourceMappingURL=myxAdapter.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"myxAdapter.d.cts","sourceRoot":"","sources":["../../src/utils/myxAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,oBAAoB,EACrB,2BAAiB;AAElB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,+BAA2B;AAiCnE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CAmBlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAWA;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,UAAU,EAAE,oBAAoB,GAC/B,eAAe,CAkCjB;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EAAE,GACrB,aAAa,EAAE,CAQjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI3D;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EAAE,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EAAE,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CASvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK9D"}
@@ -1,81 +0,0 @@
1
- /**
2
- * MYX SDK Adapter Utilities
3
- *
4
- * Stage 1 adapters for transforming between MetaMask Perps API types and MYX SDK types.
5
- * Only includes adapters needed for market display and price fetching.
6
- *
7
- * Portable: no mobile-specific imports.
8
- * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).
9
- *
10
- * Key differences from HyperLiquid:
11
- * - Prices use 30 decimals
12
- * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)
13
- * - Multiple pools can exist per symbol (MPM model)
14
- * - USDT collateral (vs USDC)
15
- */
16
- import type { MarketInfo, PerpsMarketData, MarketDataFormatters } from "../types/index.mjs";
17
- import type { MYXPoolSymbol, MYXTicker } from "../types/myx-types.mjs";
18
- /**
19
- * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format
20
- *
21
- * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)
22
- * @returns MetaMask Perps API market info object
23
- */
24
- export declare function adaptMarketFromMYX(pool: MYXPoolSymbol): MarketInfo;
25
- /**
26
- * Convert MYX ticker data to price and change values
27
- *
28
- * @param ticker - Ticker data from MYX SDK
29
- * @returns Object with price string and 24h change percentage
30
- */
31
- export declare function adaptPriceFromMYX(ticker: MYXTicker): {
32
- price: string;
33
- change24h: number;
34
- };
35
- /**
36
- * Transform MYX pool and ticker to PerpsMarketData for UI display
37
- *
38
- * @param pool - Pool symbol data from MYX SDK
39
- * @param ticker - Optional ticker data for price info
40
- * @param formatters - Injectable formatters for platform-agnostic formatting
41
- * @returns Formatted market data for UI display
42
- */
43
- export declare function adaptMarketDataFromMYX(pool: MYXPoolSymbol, ticker: MYXTicker | undefined, formatters: MarketDataFormatters): PerpsMarketData;
44
- /**
45
- * Filter MYX markets to only include MYX-exclusive markets
46
- * Removes markets that overlap with HyperLiquid
47
- *
48
- * @param pools - Array of MYX pool symbols
49
- * @returns Filtered array with only MYX-exclusive markets
50
- */
51
- export declare function filterMYXExclusiveMarkets(pools: MYXPoolSymbol[]): MYXPoolSymbol[];
52
- /**
53
- * Check if a symbol overlaps with HyperLiquid markets
54
- *
55
- * @param symbol - Market symbol to check
56
- * @returns true if the symbol is available on both MYX and HyperLiquid
57
- */
58
- export declare function isOverlappingMarket(symbol: string): boolean;
59
- /**
60
- * Build a map of poolId to symbol for quick lookup
61
- *
62
- * @param pools - Array of MYX pool symbols
63
- * @returns Map of poolId to symbol
64
- */
65
- export declare function buildPoolSymbolMap(pools: MYXPoolSymbol[]): Map<string, string>;
66
- /**
67
- * Build a map of symbol to poolIds (for multi-pool support)
68
- *
69
- * @param pools - Array of MYX pool symbols
70
- * @returns Map of symbol to array of poolIds
71
- */
72
- export declare function buildSymbolPoolsMap(pools: MYXPoolSymbol[]): Map<string, string[]>;
73
- /**
74
- * Extract symbol from pool ID
75
- * Pool IDs typically contain the symbol as a suffix or can be parsed
76
- *
77
- * @param poolId - MYX pool ID string
78
- * @returns Extracted symbol or poolId as fallback
79
- */
80
- export declare function extractSymbolFromPoolId(poolId: string): string;
81
- //# sourceMappingURL=myxAdapter.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"myxAdapter.d.mts","sourceRoot":"","sources":["../../src/utils/myxAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,oBAAoB,EACrB,2BAAiB;AAElB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,+BAA2B;AAiCnE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CAmBlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAWA;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,UAAU,EAAE,oBAAoB,GAC/B,eAAe,CAkCjB;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EAAE,GACrB,aAAa,EAAE,CAQjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI3D;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EAAE,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EAAE,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CASvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK9D"}
@@ -1,213 +0,0 @@
1
- /**
2
- * MYX SDK Adapter Utilities
3
- *
4
- * Stage 1 adapters for transforming between MetaMask Perps API types and MYX SDK types.
5
- * Only includes adapters needed for market display and price fetching.
6
- *
7
- * Portable: no mobile-specific imports.
8
- * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).
9
- *
10
- * Key differences from HyperLiquid:
11
- * - Prices use 30 decimals
12
- * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)
13
- * - Multiple pools can exist per symbol (MPM model)
14
- * - USDT collateral (vs USDC)
15
- */
16
- import { fromMYXPrice } from "../constants/myxConfig.mjs";
17
- import { MYX_HL_OVERLAPPING_MARKETS } from "../types/myx-types.mjs";
18
- /**
19
- * Format a price change value with sign prefix.
20
- * Uses injected formatters (same pattern as marketDataTransform.ts formatChange).
21
- *
22
- * @param change - The price change value to format.
23
- * @param formatters - Injectable formatters for platform-agnostic formatting.
24
- * @returns The formatted change string with sign and dollar symbol.
25
- */
26
- function formatChange(change, formatters) {
27
- if (isNaN(change) || !isFinite(change)) {
28
- return '$0.00';
29
- }
30
- if (change === 0) {
31
- return '$0.00';
32
- }
33
- const formatted = formatters.formatPerpsFiat(Math.abs(change), {
34
- ranges: formatters.priceRangesUniversal,
35
- });
36
- const valueWithoutDollar = formatted.replace('$', '');
37
- return change > 0 ? `+$${valueWithoutDollar}` : `-$${valueWithoutDollar}`;
38
- }
39
- // ============================================================================
40
- // Market Transformation
41
- // ============================================================================
42
- /**
43
- * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format
44
- *
45
- * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)
46
- * @returns MetaMask Perps API market info object
47
- */
48
- export function adaptMarketFromMYX(pool) {
49
- // Extract base symbol from pool data
50
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
51
- // MYX uses fixed 18 decimals for sizes
52
- const szDecimals = 18;
53
- // Default max leverage - MYX supports up to 100x on most markets
54
- // Will be refined when pool level config is fetched
55
- const maxLeverage = 100;
56
- return {
57
- name: symbol,
58
- szDecimals,
59
- maxLeverage,
60
- marginTableId: 0, // MYX doesn't use margin tables like HyperLiquid
61
- minimumOrderSize: 10, // MYX minimum order size is $10
62
- providerId: 'myx',
63
- };
64
- }
65
- /**
66
- * Convert MYX ticker data to price and change values
67
- *
68
- * @param ticker - Ticker data from MYX SDK
69
- * @returns Object with price string and 24h change percentage
70
- */
71
- export function adaptPriceFromMYX(ticker) {
72
- // MYX ticker prices are in 30-decimal format
73
- const priceNum = fromMYXPrice(ticker.price);
74
- // Change is provided as a percentage string (e.g., "2.5" means 2.5%)
75
- const change24h = ticker.change ? parseFloat(ticker.change) : 0;
76
- return {
77
- price: priceNum.toString(),
78
- change24h,
79
- };
80
- }
81
- /**
82
- * Transform MYX pool and ticker to PerpsMarketData for UI display
83
- *
84
- * @param pool - Pool symbol data from MYX SDK
85
- * @param ticker - Optional ticker data for price info
86
- * @param formatters - Injectable formatters for platform-agnostic formatting
87
- * @returns Formatted market data for UI display
88
- */
89
- export function adaptMarketDataFromMYX(pool, ticker, formatters) {
90
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
91
- // Get price data from ticker if available
92
- let price = '0';
93
- let change24h = 0;
94
- let volume = '0';
95
- if (ticker) {
96
- const priceData = adaptPriceFromMYX(ticker);
97
- price = priceData.price;
98
- change24h = priceData.change24h;
99
- // Volume is already in USD (not 30-decimal format)
100
- volume = ticker.volume || '0';
101
- }
102
- // Format using injected formatters (consistent with HyperLiquid via marketDataTransform.ts)
103
- const priceNum = parseFloat(price);
104
- const formattedPrice = formatters.formatPerpsFiat(priceNum);
105
- const priceChange = priceNum * (change24h / 100);
106
- const formattedChange = formatChange(priceChange, formatters);
107
- const formattedChangePercent = formatters.formatPercentage(change24h);
108
- const formattedVolume = formatters.formatVolume(parseFloat(volume));
109
- return {
110
- symbol,
111
- name: getTokenName(symbol),
112
- maxLeverage: '100x', // MYX default
113
- price: formattedPrice,
114
- change24h: formattedChange,
115
- change24hPercent: formattedChangePercent,
116
- volume: formattedVolume,
117
- providerId: 'myx',
118
- };
119
- }
120
- // ============================================================================
121
- // Market Filtering
122
- // ============================================================================
123
- /**
124
- * Filter MYX markets to only include MYX-exclusive markets
125
- * Removes markets that overlap with HyperLiquid
126
- *
127
- * @param pools - Array of MYX pool symbols
128
- * @returns Filtered array with only MYX-exclusive markets
129
- */
130
- export function filterMYXExclusiveMarkets(pools) {
131
- return pools.filter((pool) => {
132
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
133
- // Exclude markets that overlap with HyperLiquid
134
- return !MYX_HL_OVERLAPPING_MARKETS.includes(symbol);
135
- });
136
- }
137
- /**
138
- * Check if a symbol overlaps with HyperLiquid markets
139
- *
140
- * @param symbol - Market symbol to check
141
- * @returns true if the symbol is available on both MYX and HyperLiquid
142
- */
143
- export function isOverlappingMarket(symbol) {
144
- return MYX_HL_OVERLAPPING_MARKETS.includes(symbol);
145
- }
146
- // ============================================================================
147
- // Pool ID Utilities
148
- // ============================================================================
149
- /**
150
- * Build a map of poolId to symbol for quick lookup
151
- *
152
- * @param pools - Array of MYX pool symbols
153
- * @returns Map of poolId to symbol
154
- */
155
- export function buildPoolSymbolMap(pools) {
156
- const map = new Map();
157
- for (const pool of pools) {
158
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
159
- map.set(pool.poolId, symbol);
160
- }
161
- return map;
162
- }
163
- /**
164
- * Build a map of symbol to poolIds (for multi-pool support)
165
- *
166
- * @param pools - Array of MYX pool symbols
167
- * @returns Map of symbol to array of poolIds
168
- */
169
- export function buildSymbolPoolsMap(pools) {
170
- const map = new Map();
171
- for (const pool of pools) {
172
- const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);
173
- const existing = map.get(symbol) ?? [];
174
- existing.push(pool.poolId);
175
- map.set(symbol, existing);
176
- }
177
- return map;
178
- }
179
- /**
180
- * Extract symbol from pool ID
181
- * Pool IDs typically contain the symbol as a suffix or can be parsed
182
- *
183
- * @param poolId - MYX pool ID string
184
- * @returns Extracted symbol or poolId as fallback
185
- */
186
- export function extractSymbolFromPoolId(poolId) {
187
- // Pool IDs in MYX typically look like "0x..." hex addresses
188
- // The actual symbol comes from the pool's baseSymbol field
189
- // This is a fallback when baseSymbol is not available
190
- return poolId;
191
- }
192
- /**
193
- * Get full token name from symbol
194
- * Returns the symbol as name if not found (MYX-specific tokens)
195
- *
196
- * @param symbol - The market symbol to look up.
197
- * @returns The human-readable token name, or the symbol itself if not found.
198
- */
199
- function getTokenName(symbol) {
200
- const tokenNames = {
201
- BTC: 'Bitcoin',
202
- ETH: 'Ethereum',
203
- BNB: 'BNB',
204
- MYX: 'MYX Protocol',
205
- RHEA: 'Rhea Finance',
206
- PARTI: 'Particle Network',
207
- SKYAI: 'SkyAI',
208
- PUMP: 'PumpFun',
209
- WLFI: 'World Liberty Financial',
210
- };
211
- return tokenNames[symbol] || symbol;
212
- }
213
- //# sourceMappingURL=myxAdapter.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"myxAdapter.mjs","sourceRoot":"","sources":["../../src/utils/myxAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,mCAA+B;AAMtD,OAAO,EAAE,0BAA0B,EAAE,+BAA2B;AAGhE;;;;;;;GAOG;AACH,SAAS,YAAY,CACnB,MAAc,EACd,UAAgC;IAEhC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC7D,MAAM,EAAE,UAAU,CAAC,oBAAoB;KACxC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;AAC5E,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAmB;IACpD,qCAAqC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvE,uCAAuC;IACvC,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,iEAAiE;IACjE,oDAAoD;IACpD,MAAM,WAAW,GAAG,GAAG,CAAC;IAExB,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,UAAU;QACV,WAAW;QACX,aAAa,EAAE,CAAC,EAAE,iDAAiD;QACnE,gBAAgB,EAAE,EAAE,EAAE,gCAAgC;QACtD,UAAU,EAAE,KAAK;KAClB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IAIjD,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C,qEAAqE;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;QAC1B,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAmB,EACnB,MAA6B,EAC7B,UAAgC;IAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvE,0CAA0C;IAC1C,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,MAAM,GAAG,GAAG,CAAC;IAEjB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACxB,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QAChC,mDAAmD;QACnD,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;IAChC,CAAC;IAED,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,sBAAsB,GAAG,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpE,OAAO;QACL,MAAM;QACN,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,EAAE,cAAc;QACnC,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,eAAe;QAC1B,gBAAgB,EAAE,sBAAsB;QACxC,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,KAAK;KAClB,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAsB;IAEtB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,gDAAgD;QAChD,OAAO,CAAC,0BAA0B,CAAC,QAAQ,CACzC,MAAqD,CACtD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,0BAA0B,CAAC,QAAQ,CACxC,MAAqD,CACtD,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,4DAA4D;IAC5D,2DAA2D;IAC3D,sDAAsD;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,UAAU,GAA2B;QACzC,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,UAAU;QACf,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,yBAAyB;KAChC,CAAC;IAEF,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AACtC,CAAC","sourcesContent":["/**\n * MYX SDK Adapter Utilities\n *\n * Stage 1 adapters for transforming between MetaMask Perps API types and MYX SDK types.\n * Only includes adapters needed for market display and price fetching.\n *\n * Portable: no mobile-specific imports.\n * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).\n *\n * Key differences from HyperLiquid:\n * - Prices use 30 decimals\n * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)\n * - Multiple pools can exist per symbol (MPM model)\n * - USDT collateral (vs USDC)\n */\n\nimport { fromMYXPrice } from '../constants/myxConfig';\nimport type {\n MarketInfo,\n PerpsMarketData,\n MarketDataFormatters,\n} from '../types';\nimport { MYX_HL_OVERLAPPING_MARKETS } from '../types/myx-types';\nimport type { MYXPoolSymbol, MYXTicker } from '../types/myx-types';\n\n/**\n * Format a price change value with sign prefix.\n * Uses injected formatters (same pattern as marketDataTransform.ts formatChange).\n *\n * @param change - The price change value to format.\n * @param formatters - Injectable formatters for platform-agnostic formatting.\n * @returns The formatted change string with sign and dollar symbol.\n */\nfunction formatChange(\n change: number,\n formatters: MarketDataFormatters,\n): string {\n if (isNaN(change) || !isFinite(change)) {\n return '$0.00';\n }\n if (change === 0) {\n return '$0.00';\n }\n\n const formatted = formatters.formatPerpsFiat(Math.abs(change), {\n ranges: formatters.priceRangesUniversal,\n });\n\n const valueWithoutDollar = formatted.replace('$', '');\n return change > 0 ? `+$${valueWithoutDollar}` : `-$${valueWithoutDollar}`;\n}\n\n// ============================================================================\n// Market Transformation\n// ============================================================================\n\n/**\n * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format\n *\n * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)\n * @returns MetaMask Perps API market info object\n */\nexport function adaptMarketFromMYX(pool: MYXPoolSymbol): MarketInfo {\n // Extract base symbol from pool data\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n\n // MYX uses fixed 18 decimals for sizes\n const szDecimals = 18;\n\n // Default max leverage - MYX supports up to 100x on most markets\n // Will be refined when pool level config is fetched\n const maxLeverage = 100;\n\n return {\n name: symbol,\n szDecimals,\n maxLeverage,\n marginTableId: 0, // MYX doesn't use margin tables like HyperLiquid\n minimumOrderSize: 10, // MYX minimum order size is $10\n providerId: 'myx',\n };\n}\n\n/**\n * Convert MYX ticker data to price and change values\n *\n * @param ticker - Ticker data from MYX SDK\n * @returns Object with price string and 24h change percentage\n */\nexport function adaptPriceFromMYX(ticker: MYXTicker): {\n price: string;\n change24h: number;\n} {\n // MYX ticker prices are in 30-decimal format\n const priceNum = fromMYXPrice(ticker.price);\n\n // Change is provided as a percentage string (e.g., \"2.5\" means 2.5%)\n const change24h = ticker.change ? parseFloat(ticker.change) : 0;\n\n return {\n price: priceNum.toString(),\n change24h,\n };\n}\n\n/**\n * Transform MYX pool and ticker to PerpsMarketData for UI display\n *\n * @param pool - Pool symbol data from MYX SDK\n * @param ticker - Optional ticker data for price info\n * @param formatters - Injectable formatters for platform-agnostic formatting\n * @returns Formatted market data for UI display\n */\nexport function adaptMarketDataFromMYX(\n pool: MYXPoolSymbol,\n ticker: MYXTicker | undefined,\n formatters: MarketDataFormatters,\n): PerpsMarketData {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n\n // Get price data from ticker if available\n let price = '0';\n let change24h = 0;\n let volume = '0';\n\n if (ticker) {\n const priceData = adaptPriceFromMYX(ticker);\n price = priceData.price;\n change24h = priceData.change24h;\n // Volume is already in USD (not 30-decimal format)\n volume = ticker.volume || '0';\n }\n\n // Format using injected formatters (consistent with HyperLiquid via marketDataTransform.ts)\n const priceNum = parseFloat(price);\n const formattedPrice = formatters.formatPerpsFiat(priceNum);\n const priceChange = priceNum * (change24h / 100);\n const formattedChange = formatChange(priceChange, formatters);\n const formattedChangePercent = formatters.formatPercentage(change24h);\n const formattedVolume = formatters.formatVolume(parseFloat(volume));\n\n return {\n symbol,\n name: getTokenName(symbol),\n maxLeverage: '100x', // MYX default\n price: formattedPrice,\n change24h: formattedChange,\n change24hPercent: formattedChangePercent,\n volume: formattedVolume,\n providerId: 'myx',\n };\n}\n\n// ============================================================================\n// Market Filtering\n// ============================================================================\n\n/**\n * Filter MYX markets to only include MYX-exclusive markets\n * Removes markets that overlap with HyperLiquid\n *\n * @param pools - Array of MYX pool symbols\n * @returns Filtered array with only MYX-exclusive markets\n */\nexport function filterMYXExclusiveMarkets(\n pools: MYXPoolSymbol[],\n): MYXPoolSymbol[] {\n return pools.filter((pool) => {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n // Exclude markets that overlap with HyperLiquid\n return !MYX_HL_OVERLAPPING_MARKETS.includes(\n symbol as (typeof MYX_HL_OVERLAPPING_MARKETS)[number],\n );\n });\n}\n\n/**\n * Check if a symbol overlaps with HyperLiquid markets\n *\n * @param symbol - Market symbol to check\n * @returns true if the symbol is available on both MYX and HyperLiquid\n */\nexport function isOverlappingMarket(symbol: string): boolean {\n return MYX_HL_OVERLAPPING_MARKETS.includes(\n symbol as (typeof MYX_HL_OVERLAPPING_MARKETS)[number],\n );\n}\n\n// ============================================================================\n// Pool ID Utilities\n// ============================================================================\n\n/**\n * Build a map of poolId to symbol for quick lookup\n *\n * @param pools - Array of MYX pool symbols\n * @returns Map of poolId to symbol\n */\nexport function buildPoolSymbolMap(\n pools: MYXPoolSymbol[],\n): Map<string, string> {\n const map = new Map<string, string>();\n for (const pool of pools) {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n map.set(pool.poolId, symbol);\n }\n return map;\n}\n\n/**\n * Build a map of symbol to poolIds (for multi-pool support)\n *\n * @param pools - Array of MYX pool symbols\n * @returns Map of symbol to array of poolIds\n */\nexport function buildSymbolPoolsMap(\n pools: MYXPoolSymbol[],\n): Map<string, string[]> {\n const map = new Map<string, string[]>();\n for (const pool of pools) {\n const symbol = pool.baseSymbol || extractSymbolFromPoolId(pool.poolId);\n const existing = map.get(symbol) ?? [];\n existing.push(pool.poolId);\n map.set(symbol, existing);\n }\n return map;\n}\n\n/**\n * Extract symbol from pool ID\n * Pool IDs typically contain the symbol as a suffix or can be parsed\n *\n * @param poolId - MYX pool ID string\n * @returns Extracted symbol or poolId as fallback\n */\nexport function extractSymbolFromPoolId(poolId: string): string {\n // Pool IDs in MYX typically look like \"0x...\" hex addresses\n // The actual symbol comes from the pool's baseSymbol field\n // This is a fallback when baseSymbol is not available\n return poolId;\n}\n\n/**\n * Get full token name from symbol\n * Returns the symbol as name if not found (MYX-specific tokens)\n *\n * @param symbol - The market symbol to look up.\n * @returns The human-readable token name, or the symbol itself if not found.\n */\nfunction getTokenName(symbol: string): string {\n const tokenNames: Record<string, string> = {\n BTC: 'Bitcoin',\n ETH: 'Ethereum',\n BNB: 'BNB',\n MYX: 'MYX Protocol',\n RHEA: 'Rhea Finance',\n PARTI: 'Particle Network',\n SKYAI: 'SkyAI',\n PUMP: 'PumpFun',\n WLFI: 'World Liberty Financial',\n };\n\n return tokenNames[symbol] || symbol;\n}\n"]}