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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/PerpsController.cjs +2224 -66
  3. package/dist/PerpsController.cjs.map +1 -1
  4. package/dist/PerpsController.d.cts +933 -79
  5. package/dist/PerpsController.d.cts.map +1 -1
  6. package/dist/PerpsController.d.mts +933 -79
  7. package/dist/PerpsController.d.mts.map +1 -1
  8. package/dist/PerpsController.mjs +2221 -64
  9. package/dist/PerpsController.mjs.map +1 -1
  10. package/dist/__mocks__/hyperliquidMock.cjs +68 -0
  11. package/dist/__mocks__/hyperliquidMock.cjs.map +1 -0
  12. package/dist/__mocks__/hyperliquidMock.d.cts +15 -0
  13. package/dist/__mocks__/hyperliquidMock.d.cts.map +1 -0
  14. package/dist/__mocks__/hyperliquidMock.d.mts +15 -0
  15. package/dist/__mocks__/hyperliquidMock.d.mts.map +1 -0
  16. package/dist/__mocks__/hyperliquidMock.mjs +65 -0
  17. package/dist/__mocks__/hyperliquidMock.mjs.map +1 -0
  18. package/dist/__mocks__/providerMocks.cjs +144 -0
  19. package/dist/__mocks__/providerMocks.cjs.map +1 -0
  20. package/dist/__mocks__/providerMocks.d.cts +44 -0
  21. package/dist/__mocks__/providerMocks.d.cts.map +1 -0
  22. package/dist/__mocks__/providerMocks.d.mts +44 -0
  23. package/dist/__mocks__/providerMocks.d.mts.map +1 -0
  24. package/dist/__mocks__/providerMocks.mjs +136 -0
  25. package/dist/__mocks__/providerMocks.mjs.map +1 -0
  26. package/dist/__mocks__/serviceMocks.cjs +187 -0
  27. package/dist/__mocks__/serviceMocks.cjs.map +1 -0
  28. package/dist/__mocks__/serviceMocks.d.cts +58 -0
  29. package/dist/__mocks__/serviceMocks.d.cts.map +1 -0
  30. package/dist/__mocks__/serviceMocks.d.mts +58 -0
  31. package/dist/__mocks__/serviceMocks.d.mts.map +1 -0
  32. package/dist/__mocks__/serviceMocks.mjs +180 -0
  33. package/dist/__mocks__/serviceMocks.mjs.map +1 -0
  34. package/dist/aggregation/SubscriptionMultiplexer.cjs +459 -0
  35. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +1 -0
  36. package/dist/aggregation/SubscriptionMultiplexer.d.cts +222 -0
  37. package/dist/aggregation/SubscriptionMultiplexer.d.cts.map +1 -0
  38. package/dist/aggregation/SubscriptionMultiplexer.d.mts +222 -0
  39. package/dist/aggregation/SubscriptionMultiplexer.d.mts.map +1 -0
  40. package/dist/aggregation/SubscriptionMultiplexer.mjs +455 -0
  41. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +1 -0
  42. package/dist/aggregation/index.cjs +9 -0
  43. package/dist/aggregation/index.cjs.map +1 -0
  44. package/dist/aggregation/index.d.cts +6 -0
  45. package/dist/aggregation/index.d.cts.map +1 -0
  46. package/dist/aggregation/index.d.mts +6 -0
  47. package/dist/aggregation/index.d.mts.map +1 -0
  48. package/dist/aggregation/index.mjs +5 -0
  49. package/dist/aggregation/index.mjs.map +1 -0
  50. package/dist/constants/eventNames.cjs +117 -0
  51. package/dist/constants/eventNames.cjs.map +1 -0
  52. package/dist/constants/eventNames.d.cts +106 -0
  53. package/dist/constants/eventNames.d.cts.map +1 -0
  54. package/dist/constants/eventNames.d.mts +106 -0
  55. package/dist/constants/eventNames.d.mts.map +1 -0
  56. package/dist/constants/eventNames.mjs +114 -0
  57. package/dist/constants/eventNames.mjs.map +1 -0
  58. package/dist/constants/hyperLiquidConfig.cjs +366 -0
  59. package/dist/constants/hyperLiquidConfig.cjs.map +1 -0
  60. package/dist/constants/hyperLiquidConfig.d.cts +276 -0
  61. package/dist/constants/hyperLiquidConfig.d.cts.map +1 -0
  62. package/dist/constants/hyperLiquidConfig.d.mts +276 -0
  63. package/dist/constants/hyperLiquidConfig.d.mts.map +1 -0
  64. package/dist/constants/hyperLiquidConfig.mjs +357 -0
  65. package/dist/constants/hyperLiquidConfig.mjs.map +1 -0
  66. package/dist/constants/index.cjs +23 -0
  67. package/dist/constants/index.cjs.map +1 -0
  68. package/dist/constants/index.d.cts +7 -0
  69. package/dist/constants/index.d.cts.map +1 -0
  70. package/dist/constants/index.d.mts +7 -0
  71. package/dist/constants/index.d.mts.map +1 -0
  72. package/dist/constants/index.mjs +7 -0
  73. package/dist/constants/index.mjs.map +1 -0
  74. package/dist/constants/orderTypes.cjs +31 -0
  75. package/dist/constants/orderTypes.cjs.map +1 -0
  76. package/dist/constants/orderTypes.d.cts +19 -0
  77. package/dist/constants/orderTypes.d.cts.map +1 -0
  78. package/dist/constants/orderTypes.d.mts +19 -0
  79. package/dist/constants/orderTypes.d.mts.map +1 -0
  80. package/dist/constants/orderTypes.mjs +27 -0
  81. package/dist/constants/orderTypes.mjs.map +1 -0
  82. package/dist/constants/performanceMetrics.cjs +61 -0
  83. package/dist/constants/performanceMetrics.cjs.map +1 -0
  84. package/dist/constants/performanceMetrics.d.cts +44 -0
  85. package/dist/constants/performanceMetrics.d.cts.map +1 -0
  86. package/dist/constants/performanceMetrics.d.mts +44 -0
  87. package/dist/constants/performanceMetrics.d.mts.map +1 -0
  88. package/dist/constants/performanceMetrics.mjs +58 -0
  89. package/dist/constants/performanceMetrics.mjs.map +1 -0
  90. package/dist/constants/perpsConfig.cjs +461 -0
  91. package/dist/constants/perpsConfig.cjs.map +1 -0
  92. package/dist/constants/perpsConfig.d.cts +343 -0
  93. package/dist/constants/perpsConfig.d.cts.map +1 -0
  94. package/dist/constants/perpsConfig.d.mts +343 -0
  95. package/dist/constants/perpsConfig.d.mts.map +1 -0
  96. package/dist/constants/perpsConfig.mjs +458 -0
  97. package/dist/constants/perpsConfig.mjs.map +1 -0
  98. package/dist/constants/perpsErrorCodes.cjs +79 -0
  99. package/dist/constants/perpsErrorCodes.cjs.map +1 -0
  100. package/dist/constants/perpsErrorCodes.d.cts +64 -0
  101. package/dist/constants/perpsErrorCodes.d.cts.map +1 -0
  102. package/dist/constants/perpsErrorCodes.d.mts +64 -0
  103. package/dist/constants/perpsErrorCodes.d.mts.map +1 -0
  104. package/dist/constants/perpsErrorCodes.mjs +76 -0
  105. package/dist/constants/perpsErrorCodes.mjs.map +1 -0
  106. package/dist/index.cjs +32 -1
  107. package/dist/index.cjs.map +1 -1
  108. package/dist/index.d.cts +6 -2
  109. package/dist/index.d.cts.map +1 -1
  110. package/dist/index.d.mts +6 -2
  111. package/dist/index.d.mts.map +1 -1
  112. package/dist/index.mjs +9 -1
  113. package/dist/index.mjs.map +1 -1
  114. package/dist/platform-services/HyperLiquidClientService.cjs +857 -0
  115. package/dist/platform-services/HyperLiquidClientService.cjs.map +1 -0
  116. package/dist/platform-services/HyperLiquidClientService.d.cts +263 -0
  117. package/dist/platform-services/HyperLiquidClientService.d.cts.map +1 -0
  118. package/dist/platform-services/HyperLiquidClientService.d.mts +263 -0
  119. package/dist/platform-services/HyperLiquidClientService.d.mts.map +1 -0
  120. package/dist/platform-services/HyperLiquidClientService.mjs +853 -0
  121. package/dist/platform-services/HyperLiquidClientService.mjs.map +1 -0
  122. package/dist/platform-services/HyperLiquidSubscriptionService.cjs +2170 -0
  123. package/dist/platform-services/HyperLiquidSubscriptionService.cjs.map +1 -0
  124. package/dist/platform-services/HyperLiquidSubscriptionService.d.cts +424 -0
  125. package/dist/platform-services/HyperLiquidSubscriptionService.d.cts.map +1 -0
  126. package/dist/platform-services/HyperLiquidSubscriptionService.d.mts +424 -0
  127. package/dist/platform-services/HyperLiquidSubscriptionService.d.mts.map +1 -0
  128. package/dist/platform-services/HyperLiquidSubscriptionService.mjs +2166 -0
  129. package/dist/platform-services/HyperLiquidSubscriptionService.mjs.map +1 -0
  130. package/dist/platform-services/HyperLiquidWalletService.cjs +140 -0
  131. package/dist/platform-services/HyperLiquidWalletService.cjs.map +1 -0
  132. package/dist/platform-services/HyperLiquidWalletService.d.cts +78 -0
  133. package/dist/platform-services/HyperLiquidWalletService.d.cts.map +1 -0
  134. package/dist/platform-services/HyperLiquidWalletService.d.mts +78 -0
  135. package/dist/platform-services/HyperLiquidWalletService.d.mts.map +1 -0
  136. package/dist/platform-services/HyperLiquidWalletService.mjs +136 -0
  137. package/dist/platform-services/HyperLiquidWalletService.mjs.map +1 -0
  138. package/dist/providers/AggregatedPerpsProvider.cjs +777 -0
  139. package/dist/providers/AggregatedPerpsProvider.cjs.map +1 -0
  140. package/dist/providers/AggregatedPerpsProvider.d.cts +466 -0
  141. package/dist/providers/AggregatedPerpsProvider.d.cts.map +1 -0
  142. package/dist/providers/AggregatedPerpsProvider.d.mts +466 -0
  143. package/dist/providers/AggregatedPerpsProvider.d.mts.map +1 -0
  144. package/dist/providers/AggregatedPerpsProvider.mjs +773 -0
  145. package/dist/providers/AggregatedPerpsProvider.mjs.map +1 -0
  146. package/dist/providers/HyperLiquidProvider.cjs +5172 -0
  147. package/dist/providers/HyperLiquidProvider.cjs.map +1 -0
  148. package/dist/providers/HyperLiquidProvider.d.cts +881 -0
  149. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -0
  150. package/dist/providers/HyperLiquidProvider.d.mts +881 -0
  151. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -0
  152. package/dist/providers/HyperLiquidProvider.mjs +5168 -0
  153. package/dist/providers/HyperLiquidProvider.mjs.map +1 -0
  154. package/dist/providers/index.cjs +11 -0
  155. package/dist/providers/index.cjs.map +1 -0
  156. package/dist/providers/index.d.cts +6 -0
  157. package/dist/providers/index.d.cts.map +1 -0
  158. package/dist/providers/index.d.mts +6 -0
  159. package/dist/providers/index.d.mts.map +1 -0
  160. package/dist/providers/index.mjs +6 -0
  161. package/dist/providers/index.mjs.map +1 -0
  162. package/dist/routing/ProviderRouter.cjs +148 -0
  163. package/dist/routing/ProviderRouter.cjs.map +1 -0
  164. package/dist/routing/ProviderRouter.d.cts +124 -0
  165. package/dist/routing/ProviderRouter.d.cts.map +1 -0
  166. package/dist/routing/ProviderRouter.d.mts +124 -0
  167. package/dist/routing/ProviderRouter.d.mts.map +1 -0
  168. package/dist/routing/ProviderRouter.mjs +144 -0
  169. package/dist/routing/ProviderRouter.mjs.map +1 -0
  170. package/dist/routing/index.cjs +9 -0
  171. package/dist/routing/index.cjs.map +1 -0
  172. package/dist/routing/index.d.cts +6 -0
  173. package/dist/routing/index.d.cts.map +1 -0
  174. package/dist/routing/index.d.mts +6 -0
  175. package/dist/routing/index.d.mts.map +1 -0
  176. package/dist/routing/index.mjs +5 -0
  177. package/dist/routing/index.mjs.map +1 -0
  178. package/dist/selectors.cjs +161 -0
  179. package/dist/selectors.cjs.map +1 -0
  180. package/dist/selectors.d.cts +345 -0
  181. package/dist/selectors.d.cts.map +1 -0
  182. package/dist/selectors.d.mts +345 -0
  183. package/dist/selectors.d.mts.map +1 -0
  184. package/dist/selectors.mjs +153 -0
  185. package/dist/selectors.mjs.map +1 -0
  186. package/dist/services/AccountService.cjs +313 -0
  187. package/dist/services/AccountService.cjs.map +1 -0
  188. package/dist/services/AccountService.d.cts +53 -0
  189. package/dist/services/AccountService.d.cts.map +1 -0
  190. package/dist/services/AccountService.d.mts +53 -0
  191. package/dist/services/AccountService.d.mts.map +1 -0
  192. package/dist/services/AccountService.mjs +309 -0
  193. package/dist/services/AccountService.mjs.map +1 -0
  194. package/dist/services/DataLakeService.cjs +219 -0
  195. package/dist/services/DataLakeService.cjs.map +1 -0
  196. package/dist/services/DataLakeService.d.cts +49 -0
  197. package/dist/services/DataLakeService.d.cts.map +1 -0
  198. package/dist/services/DataLakeService.d.mts +49 -0
  199. package/dist/services/DataLakeService.d.mts.map +1 -0
  200. package/dist/services/DataLakeService.mjs +215 -0
  201. package/dist/services/DataLakeService.mjs.map +1 -0
  202. package/dist/services/DepositService.cjs +96 -0
  203. package/dist/services/DepositService.cjs.map +1 -0
  204. package/dist/services/DepositService.d.cts +37 -0
  205. package/dist/services/DepositService.d.cts.map +1 -0
  206. package/dist/services/DepositService.d.mts +37 -0
  207. package/dist/services/DepositService.d.mts.map +1 -0
  208. package/dist/services/DepositService.mjs +92 -0
  209. package/dist/services/DepositService.mjs.map +1 -0
  210. package/dist/services/EligibilityService.cjs +156 -0
  211. package/dist/services/EligibilityService.cjs.map +1 -0
  212. package/dist/services/EligibilityService.d.cts +48 -0
  213. package/dist/services/EligibilityService.d.cts.map +1 -0
  214. package/dist/services/EligibilityService.d.mts +48 -0
  215. package/dist/services/EligibilityService.d.mts.map +1 -0
  216. package/dist/services/EligibilityService.mjs +152 -0
  217. package/dist/services/EligibilityService.mjs.map +1 -0
  218. package/dist/services/FeatureFlagConfigurationService.cjs +258 -0
  219. package/dist/services/FeatureFlagConfigurationService.cjs.map +1 -0
  220. package/dist/services/FeatureFlagConfigurationService.d.cts +100 -0
  221. package/dist/services/FeatureFlagConfigurationService.d.cts.map +1 -0
  222. package/dist/services/FeatureFlagConfigurationService.d.mts +100 -0
  223. package/dist/services/FeatureFlagConfigurationService.d.mts.map +1 -0
  224. package/dist/services/FeatureFlagConfigurationService.mjs +254 -0
  225. package/dist/services/FeatureFlagConfigurationService.mjs.map +1 -0
  226. package/dist/services/MarketDataService.cjs +875 -0
  227. package/dist/services/MarketDataService.cjs.map +1 -0
  228. package/dist/services/MarketDataService.d.cts +289 -0
  229. package/dist/services/MarketDataService.d.cts.map +1 -0
  230. package/dist/services/MarketDataService.d.mts +289 -0
  231. package/dist/services/MarketDataService.d.mts.map +1 -0
  232. package/dist/services/MarketDataService.mjs +871 -0
  233. package/dist/services/MarketDataService.mjs.map +1 -0
  234. package/dist/services/RewardsIntegrationService.cjs +94 -0
  235. package/dist/services/RewardsIntegrationService.cjs.map +1 -0
  236. package/dist/services/RewardsIntegrationService.d.cts +30 -0
  237. package/dist/services/RewardsIntegrationService.d.cts.map +1 -0
  238. package/dist/services/RewardsIntegrationService.d.mts +30 -0
  239. package/dist/services/RewardsIntegrationService.d.mts.map +1 -0
  240. package/dist/services/RewardsIntegrationService.mjs +90 -0
  241. package/dist/services/RewardsIntegrationService.mjs.map +1 -0
  242. package/dist/services/ServiceContext.cjs +3 -0
  243. package/dist/services/ServiceContext.cjs.map +1 -0
  244. package/dist/services/ServiceContext.d.cts +110 -0
  245. package/dist/services/ServiceContext.d.cts.map +1 -0
  246. package/dist/services/ServiceContext.d.mts +110 -0
  247. package/dist/services/ServiceContext.d.mts.map +1 -0
  248. package/dist/services/ServiceContext.mjs +2 -0
  249. package/dist/services/ServiceContext.mjs.map +1 -0
  250. package/dist/services/TradingService.cjs +1481 -0
  251. package/dist/services/TradingService.cjs.map +1 -0
  252. package/dist/services/TradingService.d.cts +308 -0
  253. package/dist/services/TradingService.d.cts.map +1 -0
  254. package/dist/services/TradingService.d.mts +308 -0
  255. package/dist/services/TradingService.d.mts.map +1 -0
  256. package/dist/services/TradingService.mjs +1477 -0
  257. package/dist/services/TradingService.mjs.map +1 -0
  258. package/dist/services/index.cjs +26 -0
  259. package/dist/services/index.cjs.map +1 -0
  260. package/dist/services/index.d.cts +11 -0
  261. package/dist/services/index.d.cts.map +1 -0
  262. package/dist/services/index.d.mts +11 -0
  263. package/dist/services/index.d.mts.map +1 -0
  264. package/dist/services/index.mjs +10 -0
  265. package/dist/services/index.mjs.map +1 -0
  266. package/dist/services/utils.cjs +16 -0
  267. package/dist/services/utils.cjs.map +1 -0
  268. package/dist/services/utils.d.cts +8 -0
  269. package/dist/services/utils.d.cts.map +1 -0
  270. package/dist/services/utils.d.mts +8 -0
  271. package/dist/services/utils.d.mts.map +1 -0
  272. package/dist/services/utils.mjs +12 -0
  273. package/dist/services/utils.mjs.map +1 -0
  274. package/dist/types/chart.cjs +42 -0
  275. package/dist/types/chart.cjs.map +1 -0
  276. package/dist/types/chart.d.cts +62 -0
  277. package/dist/types/chart.d.cts.map +1 -0
  278. package/dist/types/chart.d.mts +62 -0
  279. package/dist/types/chart.d.mts.map +1 -0
  280. package/dist/types/chart.mjs +39 -0
  281. package/dist/types/chart.mjs.map +1 -0
  282. package/dist/types/hyperliquid-types.cjs +3 -0
  283. package/dist/types/hyperliquid-types.cjs.map +1 -0
  284. package/dist/types/hyperliquid-types.d.cts +52 -0
  285. package/dist/types/hyperliquid-types.d.cts.map +1 -0
  286. package/dist/types/hyperliquid-types.d.mts +52 -0
  287. package/dist/types/hyperliquid-types.d.mts.map +1 -0
  288. package/dist/types/hyperliquid-types.mjs +2 -0
  289. package/dist/types/hyperliquid-types.mjs.map +1 -0
  290. package/dist/types/index.cjs +96 -0
  291. package/dist/types/index.cjs.map +1 -0
  292. package/dist/types/index.d.cts +1153 -0
  293. package/dist/types/index.d.cts.map +1 -0
  294. package/dist/types/index.d.mts +1153 -0
  295. package/dist/types/index.d.mts.map +1 -0
  296. package/dist/types/index.mjs +79 -0
  297. package/dist/types/index.mjs.map +1 -0
  298. package/dist/types/transactionTypes.cjs +28 -0
  299. package/dist/types/transactionTypes.cjs.map +1 -0
  300. package/dist/types/transactionTypes.d.cts +64 -0
  301. package/dist/types/transactionTypes.d.cts.map +1 -0
  302. package/dist/types/transactionTypes.d.mts +64 -0
  303. package/dist/types/transactionTypes.d.mts.map +1 -0
  304. package/dist/types/transactionTypes.mjs +23 -0
  305. package/dist/types/transactionTypes.mjs.map +1 -0
  306. package/dist/utils/accountUtils.cjs +65 -0
  307. package/dist/utils/accountUtils.cjs.map +1 -0
  308. package/dist/utils/accountUtils.d.cts +26 -0
  309. package/dist/utils/accountUtils.d.cts.map +1 -0
  310. package/dist/utils/accountUtils.d.mts +26 -0
  311. package/dist/utils/accountUtils.d.mts.map +1 -0
  312. package/dist/utils/accountUtils.mjs +61 -0
  313. package/dist/utils/accountUtils.mjs.map +1 -0
  314. package/dist/utils/amountConversion.cjs +61 -0
  315. package/dist/utils/amountConversion.cjs.map +1 -0
  316. package/dist/utils/amountConversion.d.cts +16 -0
  317. package/dist/utils/amountConversion.d.cts.map +1 -0
  318. package/dist/utils/amountConversion.d.mts +16 -0
  319. package/dist/utils/amountConversion.d.mts.map +1 -0
  320. package/dist/utils/amountConversion.mjs +54 -0
  321. package/dist/utils/amountConversion.mjs.map +1 -0
  322. package/dist/utils/chartUtils.cjs +98 -0
  323. package/dist/utils/chartUtils.cjs.map +1 -0
  324. package/dist/utils/chartUtils.d.cts +14 -0
  325. package/dist/utils/chartUtils.d.cts.map +1 -0
  326. package/dist/utils/chartUtils.d.mts +14 -0
  327. package/dist/utils/chartUtils.d.mts.map +1 -0
  328. package/dist/utils/chartUtils.mjs +94 -0
  329. package/dist/utils/chartUtils.mjs.map +1 -0
  330. package/dist/utils/errorUtils.cjs +22 -0
  331. package/dist/utils/errorUtils.cjs.map +1 -0
  332. package/dist/utils/errorUtils.d.cts +13 -0
  333. package/dist/utils/errorUtils.d.cts.map +1 -0
  334. package/dist/utils/errorUtils.d.mts +13 -0
  335. package/dist/utils/errorUtils.d.mts.map +1 -0
  336. package/dist/utils/errorUtils.mjs +18 -0
  337. package/dist/utils/errorUtils.mjs.map +1 -0
  338. package/dist/utils/formatUtils.cjs +987 -0
  339. package/dist/utils/formatUtils.cjs.map +1 -0
  340. package/dist/utils/formatUtils.d.cts +387 -0
  341. package/dist/utils/formatUtils.d.cts.map +1 -0
  342. package/dist/utils/formatUtils.d.mts +387 -0
  343. package/dist/utils/formatUtils.d.mts.map +1 -0
  344. package/dist/utils/formatUtils.mjs +966 -0
  345. package/dist/utils/formatUtils.mjs.map +1 -0
  346. package/dist/utils/hyperLiquidAdapter.cjs +454 -0
  347. package/dist/utils/hyperLiquidAdapter.cjs.map +1 -0
  348. package/dist/utils/hyperLiquidAdapter.d.cts +158 -0
  349. package/dist/utils/hyperLiquidAdapter.d.cts.map +1 -0
  350. package/dist/utils/hyperLiquidAdapter.d.mts +158 -0
  351. package/dist/utils/hyperLiquidAdapter.d.mts.map +1 -0
  352. package/dist/utils/hyperLiquidAdapter.mjs +439 -0
  353. package/dist/utils/hyperLiquidAdapter.mjs.map +1 -0
  354. package/dist/utils/hyperLiquidOrderBookProcessor.cjs +89 -0
  355. package/dist/utils/hyperLiquidOrderBookProcessor.cjs.map +1 -0
  356. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts +58 -0
  357. package/dist/utils/hyperLiquidOrderBookProcessor.d.cts.map +1 -0
  358. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts +58 -0
  359. package/dist/utils/hyperLiquidOrderBookProcessor.d.mts.map +1 -0
  360. package/dist/utils/hyperLiquidOrderBookProcessor.mjs +84 -0
  361. package/dist/utils/hyperLiquidOrderBookProcessor.mjs.map +1 -0
  362. package/dist/utils/hyperLiquidValidation.cjs +426 -0
  363. package/dist/utils/hyperLiquidValidation.cjs.map +1 -0
  364. package/dist/utils/hyperLiquidValidation.d.cts +143 -0
  365. package/dist/utils/hyperLiquidValidation.d.cts.map +1 -0
  366. package/dist/utils/hyperLiquidValidation.d.mts +143 -0
  367. package/dist/utils/hyperLiquidValidation.d.mts.map +1 -0
  368. package/dist/utils/hyperLiquidValidation.mjs +413 -0
  369. package/dist/utils/hyperLiquidValidation.mjs.map +1 -0
  370. package/dist/utils/idUtils.cjs +50 -0
  371. package/dist/utils/idUtils.cjs.map +1 -0
  372. package/dist/utils/idUtils.d.cts +38 -0
  373. package/dist/utils/idUtils.d.cts.map +1 -0
  374. package/dist/utils/idUtils.d.mts +38 -0
  375. package/dist/utils/idUtils.d.mts.map +1 -0
  376. package/dist/utils/idUtils.mjs +42 -0
  377. package/dist/utils/idUtils.mjs.map +1 -0
  378. package/dist/utils/marginUtils.cjs +137 -0
  379. package/dist/utils/marginUtils.cjs.map +1 -0
  380. package/dist/utils/marginUtils.d.cts +64 -0
  381. package/dist/utils/marginUtils.d.cts.map +1 -0
  382. package/dist/utils/marginUtils.d.mts +64 -0
  383. package/dist/utils/marginUtils.d.mts.map +1 -0
  384. package/dist/utils/marginUtils.mjs +131 -0
  385. package/dist/utils/marginUtils.mjs.map +1 -0
  386. package/dist/utils/marketDataTransform.cjs +227 -0
  387. package/dist/utils/marketDataTransform.cjs.map +1 -0
  388. package/dist/utils/marketDataTransform.d.cts +45 -0
  389. package/dist/utils/marketDataTransform.d.cts.map +1 -0
  390. package/dist/utils/marketDataTransform.d.mts +45 -0
  391. package/dist/utils/marketDataTransform.d.mts.map +1 -0
  392. package/dist/utils/marketDataTransform.mjs +220 -0
  393. package/dist/utils/marketDataTransform.mjs.map +1 -0
  394. package/dist/utils/marketUtils.cjs +420 -0
  395. package/dist/utils/marketUtils.cjs.map +1 -0
  396. package/dist/utils/marketUtils.d.cts +227 -0
  397. package/dist/utils/marketUtils.d.cts.map +1 -0
  398. package/dist/utils/marketUtils.d.mts +227 -0
  399. package/dist/utils/marketUtils.d.mts.map +1 -0
  400. package/dist/utils/marketUtils.mjs +404 -0
  401. package/dist/utils/marketUtils.mjs.map +1 -0
  402. package/dist/utils/orderBookGrouping.cjs +151 -0
  403. package/dist/utils/orderBookGrouping.cjs.map +1 -0
  404. package/dist/utils/orderBookGrouping.d.cts +76 -0
  405. package/dist/utils/orderBookGrouping.d.cts.map +1 -0
  406. package/dist/utils/orderBookGrouping.d.mts +76 -0
  407. package/dist/utils/orderBookGrouping.d.mts.map +1 -0
  408. package/dist/utils/orderBookGrouping.mjs +143 -0
  409. package/dist/utils/orderBookGrouping.mjs.map +1 -0
  410. package/dist/utils/orderCalculations.cjs +283 -0
  411. package/dist/utils/orderCalculations.cjs.map +1 -0
  412. package/dist/utils/orderCalculations.d.cts +107 -0
  413. package/dist/utils/orderCalculations.d.cts.map +1 -0
  414. package/dist/utils/orderCalculations.d.mts +107 -0
  415. package/dist/utils/orderCalculations.d.mts.map +1 -0
  416. package/dist/utils/orderCalculations.mjs +274 -0
  417. package/dist/utils/orderCalculations.mjs.map +1 -0
  418. package/dist/utils/orderUtils.cjs +159 -0
  419. package/dist/utils/orderUtils.cjs.map +1 -0
  420. package/dist/utils/orderUtils.d.cts +66 -0
  421. package/dist/utils/orderUtils.d.cts.map +1 -0
  422. package/dist/utils/orderUtils.d.mts +66 -0
  423. package/dist/utils/orderUtils.d.mts.map +1 -0
  424. package/dist/utils/orderUtils.mjs +151 -0
  425. package/dist/utils/orderUtils.mjs.map +1 -0
  426. package/dist/utils/pnlCalculations.cjs +107 -0
  427. package/dist/utils/pnlCalculations.cjs.map +1 -0
  428. package/dist/utils/pnlCalculations.d.cts +79 -0
  429. package/dist/utils/pnlCalculations.d.cts.map +1 -0
  430. package/dist/utils/pnlCalculations.d.mts +79 -0
  431. package/dist/utils/pnlCalculations.d.mts.map +1 -0
  432. package/dist/utils/pnlCalculations.mjs +97 -0
  433. package/dist/utils/pnlCalculations.mjs.map +1 -0
  434. package/dist/utils/positionCalculations.cjs +176 -0
  435. package/dist/utils/positionCalculations.cjs.map +1 -0
  436. package/dist/utils/positionCalculations.d.cts +85 -0
  437. package/dist/utils/positionCalculations.d.cts.map +1 -0
  438. package/dist/utils/positionCalculations.d.mts +85 -0
  439. package/dist/utils/positionCalculations.d.mts.map +1 -0
  440. package/dist/utils/positionCalculations.mjs +165 -0
  441. package/dist/utils/positionCalculations.mjs.map +1 -0
  442. package/dist/utils/sortMarkets.cjs +88 -0
  443. package/dist/utils/sortMarkets.cjs.map +1 -0
  444. package/dist/utils/sortMarkets.d.cts +21 -0
  445. package/dist/utils/sortMarkets.d.cts.map +1 -0
  446. package/dist/utils/sortMarkets.d.mts +21 -0
  447. package/dist/utils/sortMarkets.d.mts.map +1 -0
  448. package/dist/utils/sortMarkets.mjs +84 -0
  449. package/dist/utils/sortMarkets.mjs.map +1 -0
  450. package/dist/utils/standaloneInfoClient.cjs +34 -0
  451. package/dist/utils/standaloneInfoClient.cjs.map +1 -0
  452. package/dist/utils/standaloneInfoClient.d.cts +31 -0
  453. package/dist/utils/standaloneInfoClient.d.cts.map +1 -0
  454. package/dist/utils/standaloneInfoClient.d.mts +31 -0
  455. package/dist/utils/standaloneInfoClient.d.mts.map +1 -0
  456. package/dist/utils/standaloneInfoClient.mjs +30 -0
  457. package/dist/utils/standaloneInfoClient.mjs.map +1 -0
  458. package/dist/utils/stringParseUtils.cjs +49 -0
  459. package/dist/utils/stringParseUtils.cjs.map +1 -0
  460. package/dist/utils/stringParseUtils.d.cts +35 -0
  461. package/dist/utils/stringParseUtils.d.cts.map +1 -0
  462. package/dist/utils/stringParseUtils.d.mts +35 -0
  463. package/dist/utils/stringParseUtils.d.mts.map +1 -0
  464. package/dist/utils/stringParseUtils.mjs +44 -0
  465. package/dist/utils/stringParseUtils.mjs.map +1 -0
  466. package/dist/utils/time.cjs +37 -0
  467. package/dist/utils/time.cjs.map +1 -0
  468. package/dist/utils/time.d.cts +17 -0
  469. package/dist/utils/time.d.cts.map +1 -0
  470. package/dist/utils/time.d.mts +17 -0
  471. package/dist/utils/time.d.mts.map +1 -0
  472. package/dist/utils/time.mjs +33 -0
  473. package/dist/utils/time.mjs.map +1 -0
  474. package/dist/utils/tpslValidation.cjs +505 -0
  475. package/dist/utils/tpslValidation.cjs.map +1 -0
  476. package/dist/utils/tpslValidation.d.cts +182 -0
  477. package/dist/utils/tpslValidation.d.cts.map +1 -0
  478. package/dist/utils/tpslValidation.d.mts +182 -0
  479. package/dist/utils/tpslValidation.d.mts.map +1 -0
  480. package/dist/utils/tpslValidation.mjs +482 -0
  481. package/dist/utils/tpslValidation.mjs.map +1 -0
  482. package/dist/utils/transactionUtils.cjs +36 -0
  483. package/dist/utils/transactionUtils.cjs.map +1 -0
  484. package/dist/utils/transactionUtils.d.cts +17 -0
  485. package/dist/utils/transactionUtils.d.cts.map +1 -0
  486. package/dist/utils/transactionUtils.d.mts +17 -0
  487. package/dist/utils/transactionUtils.d.mts.map +1 -0
  488. package/dist/utils/transactionUtils.mjs +32 -0
  489. package/dist/utils/transactionUtils.mjs.map +1 -0
  490. package/dist/utils/wait.cjs +12 -0
  491. package/dist/utils/wait.cjs.map +1 -0
  492. package/dist/utils/wait.d.cts +8 -0
  493. package/dist/utils/wait.d.cts.map +1 -0
  494. package/dist/utils/wait.d.mts +8 -0
  495. package/dist/utils/wait.d.mts.map +1 -0
  496. package/dist/utils/wait.mjs +8 -0
  497. package/dist/utils/wait.mjs.map +1 -0
  498. package/package.json +19 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregatedPerpsProvider.mjs","sourceRoot":"","sources":["../../src/providers/AggregatedPerpsProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-restricted-syntax, @typescript-eslint/naming-convention, jsdoc/require-param, jsdoc/check-param-names, jsdoc/require-returns */\n// TODO: Fix ESLint errors in this file - tracked for Phase 6 cleanup\n/**\n * AggregatedPerpsProvider - Multi-provider aggregation wrapper\n *\n * Implements PerpsProvider interface to enable seamless multi-provider support.\n * Aggregates read operations from all providers, routes write operations to specific\n * providers based on params.providerId or default provider.\n *\n * Phase 1 Implementation:\n * - Read operations: Aggregate from all providers using Promise.allSettled()\n * - Write operations: Route to params.providerId ?? defaultProvider\n * - Subscriptions: Multiplex via SubscriptionMultiplexer\n * - Lifecycle: Delegate to default provider\n *\n * All returned data includes providerId field for UI differentiation.\n */\n\nimport type { CaipAccountId } from '@metamask/utils';\n\nimport { SubscriptionMultiplexer } from '../aggregation/SubscriptionMultiplexer';\nimport { ProviderRouter } from '../routing/ProviderRouter';\nimport type {\n AccountState,\n AggregatedProviderConfig,\n AggregationMode,\n AssetRoute,\n BatchCancelOrdersParams,\n CancelOrderParams,\n CancelOrderResult,\n CancelOrdersResult,\n ClosePositionParams,\n ClosePositionsParams,\n ClosePositionsResult,\n DepositParams,\n DisconnectResult,\n EditOrderParams,\n FeeCalculationParams,\n FeeCalculationResult,\n Funding,\n GetAccountStateParams,\n GetAvailableDexsParams,\n GetFundingParams,\n GetHistoricalPortfolioParams,\n GetMarketsParams,\n GetOrderFillsParams,\n GetOrdersParams,\n GetPositionsParams,\n GetSupportedPathsParams,\n HistoricalPortfolioResult,\n InitializeResult,\n PerpsPlatformDependencies,\n PerpsProvider,\n LiquidationPriceParams,\n LiveDataConfig,\n MaintenanceMarginParams,\n MarginResult,\n MarketInfo,\n Order,\n OrderFill,\n OrderParams,\n OrderResult,\n PerpsMarketData,\n PerpsProviderType,\n Position,\n ReadyToTradeResult,\n SubscribeAccountParams,\n SubscribeCandlesParams,\n SubscribeOICapsParams,\n SubscribeOrderBookParams,\n SubscribeOrderFillsParams,\n SubscribeOrdersParams,\n SubscribePositionsParams,\n SubscribePricesParams,\n ToggleTestnetResult,\n UpdateMarginParams,\n UpdatePositionTPSLParams,\n UserHistoryItem,\n WithdrawParams,\n WithdrawResult,\n RawHyperLiquidLedgerUpdate,\n} from '../types';\n\n/**\n * AggregatedPerpsProvider implements PerpsProvider by coordinating\n * multiple backend providers.\n *\n * Design principles:\n * 1. Read operations aggregate from all providers (parallel)\n * 2. Write operations route to specific provider (explicit > default)\n * 3. Lifecycle operations delegate to default provider\n * 4. All returned data includes providerId for UI differentiation\n *\n * @example\n * ```typescript\n * const aggregated = new AggregatedPerpsProvider({\n * providers: new Map([\n * ['hyperliquid', hlProvider],\n * ['myx', myxProvider],\n * ]),\n * defaultProvider: 'hyperliquid',\n * infrastructure: deps,\n * });\n *\n * // Read: returns positions from all providers\n * const positions = await aggregated.getPositions();\n *\n * // Write: routes to specific or default provider\n * await aggregated.placeOrder({ symbol: 'BTC', providerId: 'myx', ... });\n * ```\n */\nexport class AggregatedPerpsProvider implements PerpsProvider {\n readonly protocolId = 'aggregated';\n\n private readonly providers: Map<PerpsProviderType, PerpsProvider>;\n\n private readonly defaultProvider: PerpsProviderType;\n\n private readonly aggregationMode: AggregationMode;\n\n private readonly deps: PerpsPlatformDependencies;\n\n private readonly router: ProviderRouter;\n\n private readonly subscriptionMux: SubscriptionMultiplexer;\n\n /**\n * Create a new AggregatedPerpsProvider.\n *\n * @param config - Configuration for the aggregated provider\n */\n constructor(config: AggregatedProviderConfig) {\n this.providers = config.providers;\n this.defaultProvider = config.defaultProvider;\n this.aggregationMode = config.aggregationMode ?? 'all';\n this.deps = config.infrastructure;\n\n // Initialize router with default provider\n this.router = new ProviderRouter({\n defaultProvider: this.defaultProvider,\n });\n\n // Initialize subscription multiplexer with logger for error reporting\n this.subscriptionMux = new SubscriptionMultiplexer({\n logger: this.deps.logger,\n });\n\n this.deps.debugLogger.log('[AggregatedPerpsProvider] Initialized', {\n providers: Array.from(this.providers.keys()),\n defaultProvider: this.defaultProvider,\n aggregationMode: this.aggregationMode,\n });\n }\n\n // ============================================================================\n // Helper Methods\n // ============================================================================\n\n /**\n * Get list of active providers as tuples for iteration.\n * Returns array of [providerId, provider] pairs.\n *\n * @returns Array of provider tuples\n */\n private getActiveProviders(): [PerpsProviderType, PerpsProvider][] {\n return Array.from(this.providers.entries());\n }\n\n /**\n * Get the default provider instance.\n * Throws if default provider is not available.\n *\n * @returns Default provider instance\n */\n private getDefaultProvider(): PerpsProvider {\n const provider = this.providers.get(this.defaultProvider);\n if (!provider) {\n throw new Error(\n `[AggregatedPerpsProvider] Default provider '${this.defaultProvider}' not available`,\n );\n }\n return provider;\n }\n\n /**\n * Get provider by ID, falling back to default if not found.\n *\n * @param providerId - Optional provider ID\n * @returns Tuple of [providerId, provider]\n */\n private getProviderOrDefault(\n providerId?: PerpsProviderType,\n ): [PerpsProviderType, PerpsProvider] {\n const id = providerId ?? this.defaultProvider;\n const provider = this.providers.get(id);\n if (!provider) {\n this.deps.debugLogger.log(\n `[AggregatedPerpsProvider] Provider '${id}' not found, using default`,\n );\n return [this.defaultProvider, this.getDefaultProvider()];\n }\n return [id, provider];\n }\n\n /**\n * Extract successful results from Promise.allSettled.\n * Logs errors for failed promises.\n *\n * @param results - Results from Promise.allSettled\n * @param context - Context string for logging\n * @returns Array of successful values\n */\n private extractSuccessfulResults<T>(\n results: PromiseSettledResult<T>[],\n context: string,\n ): T[] {\n const successful: T[] = [];\n results.forEach((result, index) => {\n if (result.status === 'fulfilled') {\n successful.push(result.value);\n } else {\n this.deps.debugLogger.log(\n `[AggregatedPerpsProvider] ${context} failed for provider ${index}`,\n { error: result.reason },\n );\n }\n });\n return successful;\n }\n\n // ============================================================================\n // Asset Routes (Synchronous - delegate to default provider)\n // ============================================================================\n\n /**\n * Get deposit routes from default provider.\n *\n * @param params - Optional parameters\n * @returns Array of asset routes\n */\n getDepositRoutes(params?: GetSupportedPathsParams): AssetRoute[] {\n return this.getDefaultProvider().getDepositRoutes(params);\n }\n\n /**\n * Get withdrawal routes from default provider.\n *\n * @param params - Optional parameters\n * @returns Array of asset routes\n */\n getWithdrawalRoutes(params?: GetSupportedPathsParams): AssetRoute[] {\n return this.getDefaultProvider().getWithdrawalRoutes(params);\n }\n\n // ============================================================================\n // Read Operations (Aggregate from all providers)\n // ============================================================================\n\n /**\n * Get positions from all providers.\n *\n * @param params - Optional parameters\n * @returns Aggregated positions with providerId\n */\n async getPositions(params?: GetPositionsParams): Promise<Position[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([id, provider]) => {\n const positions = await provider.getPositions(params);\n return positions.map((pos) => ({ ...pos, providerId: id }));\n }),\n );\n\n return this.extractSuccessfulResults(results, 'getPositions').flat();\n }\n\n /**\n * Get account state from default provider.\n *\n * @param params - Optional parameters\n * @returns Account state with providerId\n */\n async getAccountState(params?: GetAccountStateParams): Promise<AccountState> {\n // Return account state from default provider with providerId injected\n const provider = this.getDefaultProvider();\n const state = await provider.getAccountState(params);\n return { ...state, providerId: this.defaultProvider };\n }\n\n /**\n * Get markets from all providers.\n *\n * @param params - Optional parameters\n * @returns Deduplicated markets with providerId\n */\n async getMarkets(params?: GetMarketsParams): Promise<MarketInfo[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([id, provider]) => {\n const markets = await provider.getMarkets(params);\n return markets.map((market) => ({ ...market, providerId: id }));\n }),\n );\n\n const allMarkets = this.extractSuccessfulResults(\n results,\n 'getMarkets',\n ).flat();\n\n // Deduplicate markets by name (keep first occurrence)\n const seen = new Set<string>();\n return allMarkets.filter((market) => {\n // Use providerId:name as unique key to allow same market from different providers\n const key = `${market.providerId}:${market.name}`;\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n }\n\n /**\n * Get market data with prices from all providers.\n *\n * @returns Aggregated market data with providerId\n */\n async getMarketDataWithPrices(): Promise<PerpsMarketData[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([id, provider]) => {\n const data = await provider.getMarketDataWithPrices();\n return data.map((item) => ({ ...item, providerId: id }));\n }),\n );\n\n return this.extractSuccessfulResults(\n results,\n 'getMarketDataWithPrices',\n ).flat();\n }\n\n /**\n * Get order fills from all providers.\n *\n * @param params - Optional parameters\n * @returns Aggregated order fills with providerId\n */\n async getOrderFills(params?: GetOrderFillsParams): Promise<OrderFill[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([id, provider]) => {\n const fills = await provider.getOrderFills(params);\n return fills.map((fill) => ({ ...fill, providerId: id }));\n }),\n );\n\n return this.extractSuccessfulResults(results, 'getOrderFills').flat();\n }\n\n /**\n * Get orders from all providers.\n *\n * @param params - Optional parameters\n * @returns Aggregated orders with providerId\n */\n async getOrders(params?: GetOrdersParams): Promise<Order[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([id, provider]) => {\n const orders = await provider.getOrders(params);\n return orders.map((order) => ({ ...order, providerId: id }));\n }),\n );\n\n return this.extractSuccessfulResults(results, 'getOrders').flat();\n }\n\n /**\n * Get open orders from all providers.\n *\n * @param params - Optional parameters\n * @returns Aggregated open orders with providerId\n */\n async getOpenOrders(params?: GetOrdersParams): Promise<Order[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([id, provider]) => {\n const orders = await provider.getOpenOrders(params);\n return orders.map((order) => ({ ...order, providerId: id }));\n }),\n );\n\n return this.extractSuccessfulResults(results, 'getOpenOrders').flat();\n }\n\n /**\n * Get funding from all providers.\n *\n * @param params - Optional parameters\n * @returns Aggregated funding data\n */\n async getFunding(params?: GetFundingParams): Promise<Funding[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([_providerId, provider]) => {\n const funding = await provider.getFunding(params);\n // Funding type doesn't have providerId - we could add it if needed\n return funding;\n }),\n );\n\n return this.extractSuccessfulResults(results, 'getFunding').flat();\n }\n\n /**\n * Get historical portfolio from default provider.\n *\n * @param params - Optional parameters\n * @returns Historical portfolio result\n */\n async getHistoricalPortfolio(\n params?: GetHistoricalPortfolioParams,\n ): Promise<HistoricalPortfolioResult> {\n // Delegate to default provider\n return this.getDefaultProvider().getHistoricalPortfolio(params);\n }\n\n /**\n * Get user non-funding ledger updates from default provider.\n *\n * @param params - Optional parameters\n * @returns Raw ledger updates\n */\n async getUserNonFundingLedgerUpdates(params?: {\n accountId?: string;\n startTime?: number;\n endTime?: number;\n }): Promise<RawHyperLiquidLedgerUpdate[]> {\n // Delegate to default provider (protocol-specific)\n return this.getDefaultProvider().getUserNonFundingLedgerUpdates(params);\n }\n\n /**\n * Get user history from all providers.\n *\n * @param params - Optional parameters\n * @returns Aggregated user history with providerId\n */\n async getUserHistory(params?: {\n accountId?: CaipAccountId;\n startTime?: number;\n endTime?: number;\n }): Promise<UserHistoryItem[]> {\n const results = await Promise.allSettled(\n this.getActiveProviders().map(async ([id, provider]) => {\n const history = await provider.getUserHistory(params);\n return history.map((item) => ({ ...item, providerId: id }));\n }),\n );\n\n return this.extractSuccessfulResults(results, 'getUserHistory').flat();\n }\n\n // ============================================================================\n // Write Operations (Route to specific provider)\n // ============================================================================\n\n /**\n * Place an order via routed provider.\n *\n * @param params - Order parameters\n * @returns Order result with providerId\n */\n async placeOrder(params: OrderParams): Promise<OrderResult> {\n const [providerId, provider] = this.getProviderOrDefault(params.providerId);\n\n this.deps.debugLogger.log('[AggregatedPerpsProvider] placeOrder routing', {\n requestedProvider: params.providerId,\n actualProvider: providerId,\n symbol: params.symbol,\n });\n\n const result = await provider.placeOrder(params);\n return { ...result, providerId };\n }\n\n /**\n * Edit an order via routed provider.\n *\n * @param params - Edit order parameters\n * @returns Order result with providerId\n */\n async editOrder(params: EditOrderParams): Promise<OrderResult> {\n // EditOrderParams contains OrderParams in newOrder which may have providerId\n const [providerId, provider] = this.getProviderOrDefault(\n params.newOrder.providerId,\n );\n const result = await provider.editOrder(params);\n return { ...result, providerId };\n }\n\n /**\n * Cancel an order via routed provider.\n *\n * @param params - Cancel order parameters\n * @returns Cancel result with providerId\n */\n async cancelOrder(params: CancelOrderParams): Promise<CancelOrderResult> {\n const [providerId, provider] = this.getProviderOrDefault(params.providerId);\n const result = await provider.cancelOrder(params);\n return { ...result, providerId };\n }\n\n /**\n * Cancel multiple orders via default provider.\n *\n * @param params - Batch cancel parameters\n * @returns Batch cancel result\n */\n async cancelOrders(\n params: BatchCancelOrdersParams,\n ): Promise<CancelOrdersResult> {\n // Batch cancel delegates to default provider\n const provider = this.getDefaultProvider();\n if (!provider.cancelOrders) {\n return {\n success: false,\n successCount: 0,\n failureCount: params.length,\n results: params.map((param) => ({\n orderId: param.orderId,\n symbol: param.symbol,\n success: false,\n error: 'Batch cancel not supported',\n })),\n };\n }\n return provider.cancelOrders(params);\n }\n\n /**\n * Close a position via routed provider.\n *\n * @param params - Close position parameters\n * @returns Order result with providerId\n */\n async closePosition(params: ClosePositionParams): Promise<OrderResult> {\n const [providerId, provider] = this.getProviderOrDefault(params.providerId);\n const result = await provider.closePosition(params);\n return { ...result, providerId };\n }\n\n /**\n * Close multiple positions via default provider.\n *\n * @param params - Close positions parameters\n * @returns Batch close result\n */\n async closePositions(\n params: ClosePositionsParams,\n ): Promise<ClosePositionsResult> {\n // Batch close delegates to default provider\n const provider = this.getDefaultProvider();\n if (!provider.closePositions) {\n return {\n success: false,\n successCount: 0,\n failureCount: 0,\n results: [],\n };\n }\n return provider.closePositions(params);\n }\n\n /**\n * Update position TP/SL via routed provider.\n *\n * @param params - Update TP/SL parameters\n * @returns Order result with providerId\n */\n async updatePositionTPSL(\n params: UpdatePositionTPSLParams,\n ): Promise<OrderResult> {\n const [providerId, provider] = this.getProviderOrDefault(params.providerId);\n const result = await provider.updatePositionTPSL(params);\n return { ...result, providerId };\n }\n\n /**\n * Update margin via routed provider.\n *\n * @param params - Update margin parameters\n * @returns Margin result\n */\n async updateMargin(params: UpdateMarginParams): Promise<MarginResult> {\n const [, provider] = this.getProviderOrDefault(params.providerId);\n return provider.updateMargin(params);\n }\n\n /**\n * Withdraw via routed provider.\n *\n * @param params - Withdraw parameters\n * @returns Withdraw result\n */\n async withdraw(params: WithdrawParams): Promise<WithdrawResult> {\n const [, provider] = this.getProviderOrDefault(params.providerId);\n return provider.withdraw(params);\n }\n\n // ============================================================================\n // Validation (Route to specific provider)\n // ============================================================================\n\n /**\n * Validate deposit via default provider.\n *\n * @param params - Deposit parameters\n * @returns Validation result\n */\n async validateDeposit(\n params: DepositParams,\n ): Promise<{ isValid: boolean; error?: string }> {\n return this.getDefaultProvider().validateDeposit(params);\n }\n\n /**\n * Validate order via routed provider.\n *\n * @param params - Order parameters\n * @returns Validation result\n */\n async validateOrder(\n params: OrderParams,\n ): Promise<{ isValid: boolean; error?: string }> {\n const [, provider] = this.getProviderOrDefault(params.providerId);\n return provider.validateOrder(params);\n }\n\n /**\n * Validate close position via routed provider.\n *\n * @param params - Close position parameters\n * @returns Validation result\n */\n async validateClosePosition(\n params: ClosePositionParams,\n ): Promise<{ isValid: boolean; error?: string }> {\n const [, provider] = this.getProviderOrDefault(params.providerId);\n return provider.validateClosePosition(params);\n }\n\n /**\n * Validate withdrawal via routed provider.\n *\n * @param params - Withdraw parameters\n * @returns Validation result\n */\n async validateWithdrawal(\n params: WithdrawParams,\n ): Promise<{ isValid: boolean; error?: string }> {\n const [, provider] = this.getProviderOrDefault(params.providerId);\n return provider.validateWithdrawal(params);\n }\n\n // ============================================================================\n // Protocol Calculations (Delegate to default or route)\n // ============================================================================\n\n /**\n * Calculate liquidation price via default provider.\n *\n * @param params - Liquidation price parameters\n * @returns Liquidation price as string\n */\n async calculateLiquidationPrice(\n params: LiquidationPriceParams,\n ): Promise<string> {\n return this.getDefaultProvider().calculateLiquidationPrice(params);\n }\n\n /**\n * Calculate maintenance margin via default provider.\n *\n * @param params - Maintenance margin parameters\n * @returns Maintenance margin as number\n */\n async calculateMaintenanceMargin(\n params: MaintenanceMarginParams,\n ): Promise<number> {\n return this.getDefaultProvider().calculateMaintenanceMargin(params);\n }\n\n /**\n * Get max leverage for asset via default provider.\n *\n * @param asset - Asset symbol\n * @returns Max leverage as number\n */\n async getMaxLeverage(asset: string): Promise<number> {\n return this.getDefaultProvider().getMaxLeverage(asset);\n }\n\n /**\n * Calculate fees via default provider.\n *\n * @param params - Fee calculation parameters\n * @returns Fee calculation result\n */\n async calculateFees(\n params: FeeCalculationParams,\n ): Promise<FeeCalculationResult> {\n return this.getDefaultProvider().calculateFees(params);\n }\n\n // ============================================================================\n // Subscriptions (Multiplex via SubscriptionMultiplexer)\n // ============================================================================\n\n /**\n * Subscribe to prices from all providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToPrices(params: SubscribePricesParams): () => void {\n return this.subscriptionMux.subscribeToPrices({\n ...params,\n providers: this.getActiveProviders(),\n aggregationMode: 'merge',\n });\n }\n\n /**\n * Subscribe to positions from all providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToPositions(params: SubscribePositionsParams): () => void {\n return this.subscriptionMux.subscribeToPositions({\n ...params,\n providers: this.getActiveProviders(),\n });\n }\n\n /**\n * Subscribe to order fills from all providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToOrderFills(params: SubscribeOrderFillsParams): () => void {\n return this.subscriptionMux.subscribeToOrderFills({\n ...params,\n providers: this.getActiveProviders(),\n });\n }\n\n /**\n * Subscribe to orders from all providers.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToOrders(params: SubscribeOrdersParams): () => void {\n return this.subscriptionMux.subscribeToOrders({\n ...params,\n providers: this.getActiveProviders(),\n });\n }\n\n /**\n * Subscribe to account from default provider.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToAccount(params: SubscribeAccountParams): () => void {\n // For account subscriptions, we emit as array for multi-provider\n // but the callback expects single AccountState\n // Delegate to default provider for now\n return this.getDefaultProvider().subscribeToAccount(params);\n }\n\n /**\n * Subscribe to OI caps from default provider.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToOICaps(params: SubscribeOICapsParams): () => void {\n // Delegate to default provider\n return this.getDefaultProvider().subscribeToOICaps(params);\n }\n\n /**\n * Subscribe to candles from default provider.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToCandles(params: SubscribeCandlesParams): () => void {\n // Delegate to default provider\n return this.getDefaultProvider().subscribeToCandles(params);\n }\n\n /**\n * Subscribe to order book from default provider.\n *\n * @param params - Subscription parameters\n * @returns Unsubscribe function\n */\n subscribeToOrderBook(params: SubscribeOrderBookParams): () => void {\n // Delegate to default provider\n return this.getDefaultProvider().subscribeToOrderBook(params);\n }\n\n // ============================================================================\n // Configuration\n // ============================================================================\n\n /**\n * Set live data config on all providers.\n *\n * @param config - Partial live data config\n */\n setLiveDataConfig(config: Partial<LiveDataConfig>): void {\n // Apply config to all providers\n this.providers.forEach((provider) => {\n provider.setLiveDataConfig(config);\n });\n }\n\n /**\n * Set user fee discount on all providers.\n *\n * @param discountBips - Discount in basis points\n */\n setUserFeeDiscount(discountBips: number | undefined): void {\n // Apply to all providers that support it\n this.providers.forEach((provider) => {\n if (provider.setUserFeeDiscount) {\n provider.setUserFeeDiscount(discountBips);\n }\n });\n }\n\n // ============================================================================\n // Lifecycle (Delegate to default provider)\n // ============================================================================\n\n /**\n * Toggle testnet on default provider.\n *\n * @returns Toggle result\n */\n async toggleTestnet(): Promise<ToggleTestnetResult> {\n return this.getDefaultProvider().toggleTestnet();\n }\n\n /**\n * Initialize the default provider.\n *\n * @returns Initialize result\n */\n async initialize(): Promise<InitializeResult> {\n // Initialize default provider\n const result = await this.getDefaultProvider().initialize();\n\n // Optionally initialize other providers in background\n // For Phase 1, we only initialize default provider\n return result;\n }\n\n /**\n * Check if ready to trade via default provider.\n *\n * @returns Ready to trade result\n */\n async isReadyToTrade(): Promise<ReadyToTradeResult> {\n return this.getDefaultProvider().isReadyToTrade();\n }\n\n /**\n * Disconnect all providers.\n *\n * @returns Disconnect result\n */\n async disconnect(): Promise<DisconnectResult> {\n // Disconnect all providers\n const results = await Promise.allSettled(\n this.getActiveProviders().map(([, provider]) => provider.disconnect()),\n );\n\n // Clear subscription cache\n this.subscriptionMux.clearCache();\n\n // Return success if at least one succeeded\n const successCount = results.filter(\n (res) => res.status === 'fulfilled' && res.value.success,\n ).length;\n\n return {\n success: successCount > 0,\n };\n }\n\n /**\n * Ping default provider.\n *\n * @param timeoutMs - Optional timeout in milliseconds\n */\n async ping(timeoutMs?: number): Promise<void> {\n return this.getDefaultProvider().ping(timeoutMs);\n }\n\n // ============================================================================\n // Block Explorer\n // ============================================================================\n\n /**\n * Get block explorer URL from default provider.\n *\n * @param address - Optional address\n * @returns Block explorer URL\n */\n getBlockExplorerUrl(address?: string): string {\n return this.getDefaultProvider().getBlockExplorerUrl(address);\n }\n\n // ============================================================================\n // HIP-3 (Optional)\n // ============================================================================\n\n /**\n * Get available DEXs from default provider.\n *\n * @param params - Optional parameters\n * @returns Array of DEX names\n */\n async getAvailableDexs(params?: GetAvailableDexsParams): Promise<string[]> {\n const provider = this.getDefaultProvider();\n if (!provider.getAvailableDexs) {\n return [];\n }\n return provider.getAvailableDexs(params);\n }\n\n // ============================================================================\n // Provider Management\n // ============================================================================\n\n /**\n * Add a new provider to the aggregated provider.\n *\n * @param providerId - Unique identifier for the provider\n * @param provider - Provider instance\n */\n addProvider(providerId: PerpsProviderType, provider: PerpsProvider): void {\n this.providers.set(providerId, provider);\n this.deps.debugLogger.log('[AggregatedPerpsProvider] Provider added', {\n providerId,\n });\n }\n\n /**\n * Remove a provider from the aggregated provider.\n *\n * @param providerId - Provider to remove\n * @returns true if removed, false if not found\n */\n removeProvider(providerId: PerpsProviderType): boolean {\n const removed = this.providers.delete(providerId);\n if (removed) {\n this.deps.debugLogger.log('[AggregatedPerpsProvider] Provider removed', {\n providerId,\n });\n }\n return removed;\n }\n\n /**\n * Get list of all registered provider IDs.\n *\n * @returns Array of provider IDs\n */\n getProviderIds(): PerpsProviderType[] {\n return Array.from(this.providers.keys());\n }\n\n /**\n * Check if a provider is registered.\n *\n * @param providerId - Provider ID to check\n * @returns true if registered\n */\n hasProvider(providerId: PerpsProviderType): boolean {\n return this.providers.has(providerId);\n }\n\n /**\n * Get the router instance for external configuration.\n *\n * @returns Provider router\n */\n getRouter(): ProviderRouter {\n return this.router;\n }\n}\n"]}